admin管理员组文章数量:1794759
Xcode
背景
使用模拟器编译时报如下错误:
ld: in /Users/xxx/Documents/xx/svn/xxx/xxx/External/Captuvo/libCaptuvo
SDK.a(Captuvo.o), building for iOS Simulator, but linking in
object file built for iOS, for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
原因是编译时,Xcode 链接 Captuvo 这个SDK的时候,链接到了真机构建的SDK上,所以提示的是arm64。而模拟器编译时候需要链接到模拟器编译的SDK,应该是x864或者i386。这个做过SDK开发的应该都知道。
Captuvo这个SDK其实是支持真机和模拟器的,只是Xcode编译项目时没链接到正确的SDK路径。
Xcode12以及之后需要对VALID_ARCHS做一些设置。
VALID_ARCHS
Xcode 12
TARGET -> BuildSetting -> User-Defined -> VALID_ARCHS
这个设置告诉编译器去链接什么样的库,是模拟器类型的x864还是真机arm64。
如果使用真机进行编译或打包,需要将VALID_ARCHS设置为arm64,这样真机就可以正常编译了。如果使用模拟器编译或者打包的话,将arm64的设置删除掉就可以了,设置为空。
但是这样在模拟器合真机之间切换的话还是比较麻烦的。
In your project Build Settings
- Architectures,set to Standard architectures - $(ARCHS_STANDARD)
In - Build Active Architectures Only,set Debug to Yes,Release to No
- let Excluded Architectures empty
- VALID_ARCHS, set to arm64 arm64e x86_64
相关
[1] The file “xxx” couldn’t be opened because you don’t have permission to view it. You don’t have permi =1001.2014.3001.5501
本文标签: xcode
版权声明:本文标题:Xcode 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1696280593a324096.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论