Xcode8报错:**Framework not found IOSurface for architecture arm64** 或者 *...
Xcode8 编译报错:
Framework not found IOSurface for architecture arm64
或者
Framework not found FileProvider for architecture x86_64/arm64.
原因
IOSurface.framework和 FileProvider.framework是 iOS11 新增加的库,但 Xcode8下没有这个库。打包静态库的时候,有一个Link Frameworks Automatically设置,默认为YES,会自动链接框架。所以Xcode 9打包的静态库时,在Xcode 8项目编译时候会提示找不到 IOSurface.framework和 FileProvider.framework。
题外话,这个在 Xcode5 和 Xcode6 过度时,Metal.framework 时发生过,可能过了就忘记了。也发现 Xcode 很多特性平时没有注意,有空真要多看看 LLVM 的知识。
结果
如果升级到 Xcode9,则不受影响。如果 Xcode8 编译报错,网上最初给出的方案,在 Xcode8 中添加IOSurface.framework和 FileProvider.framework后打包,结果最后还是会被坑哦!
在 Xcode8 中添加IOSurface.framework和 FileProvider.framework后打包,上传iTunes Connet 报错:
正确解决方案
Build Settings 中 Link Frameworks Automatically 把默认Yes 改成 No ,重新打Framework或.a文件,添加到 Xcode8 编译就能通过。
参考&扩展阅读
- ios8 - XCode 6 GM: linker error when building for device (Metal not found) - Stack Overflow
- New Features in Xcode 5
- XCode’s New “Link Frameworks Automatically” & How to Fix “framework not found Metal for architecture armv7”
- ios - Framework not found IOSurface for architecture arm64 - Stack Overflow
- ios - When do you have to link Frameworks and Libraries to an XCode project? - Stack Overflow
- Don't we need to link framework to XCode project anymore?
- objective c - @import vs #import - iOS 7 - Stack Overflow
- Modules和Autolinking的介绍与使用 - 简书
- xcode 新特性的 一点理解 enable module 和 link frameworks automatically - 滴水成川 - CSDN博客
注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android Loader详解一:概述
From:http://blog.csdn.net/nkmnkm/article/details/7244117 装载器从android3.0开始引进。它使得在activity或fragment中异步加载数据变得简单。装载器具有如下特性: 它们对每个Activity和Fragment都有效。 他们提供了异步加载数据的能力。 它们监视数据源的一将一动并在内容改变时传送新的结果。 当由于配置改变而被重新创建后,它们自动重连到上一个加载器的游标,所以不必重新查询数据。 装载器API概述 在使用装载器时,会涉及很多类和接口们,我们在下表中对它们总结一下: Class/Interface 说明 LoaderManager 一个抽像类,关联到一个Activity或Fragment,管理一个或多个装载器的实例。这帮助一个应用管理那些与Activity或Fragment的生命周期相关的长时间运行的的操作。最常见的方式是与一个CursorLoader一起使用,然而应用是可以随便写它们自己的装载器以加载其它类型的数据。 每个activity或fragment只有一个LoaderManager。但...
- 下一篇
Android 扫一扫----ZXing 的使用
1. 首先现在ZXing的lib 2. 在Android Studio集成ZXing。 1 2 3 public void scan(View view){ startActivityForResult( new Intent(MainActivity. this , CaptureActivity. class ), 0 ); } 以上是打开扫一扫。 二维码的生成可以去http://cli.im/ 3. 创建二维码 1 2 3 4 5 6 7 8 9 10 public void make(View view){ String input = mInput.getText().toString(); if (input.equals( "" )){ Toast.makeText(MainActivity. this , "输入不能为空" , Toast.LENGTH_LONG).show(); } else { Bitmap bitmap = EncodingUtils.createQRCode(input, 500 , 500 , BitmapFactory.deco...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果