当前位置:   article > 正文

Xcode - VALID_ARCHS_xcode valid_archs

xcode valid_archs

背景

使用模拟器编译时报如下错误:

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)
  • 1
  • 2
  • 3
  • 4

原因是编译时,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

  1. Architectures,set to Standard architectures - $(ARCHS_STANDARD)
    In
  2. Build Active Architectures Only,set Debug to Yes,Release to No
  3. let Excluded Architectures empty
  4. 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 https://blog.csdn.net/Morris_/article/details/114022229?spm=1001.2014.3001.5501

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/382941
推荐阅读
相关标签
  

闽ICP备14008679号