我有依赖于指针
32-bit
的遗留代码,并且想要使用 xCodeBuild
从 command line
构建该代码。由于某种原因这不起作用。这是我使用的命令:
xcodebuild -configuration Debug -arch i386
-workspace MyProject.xcworkspace -scheme MyLib
这是我得到的输出
[BEROR]No architectures to compile for
(ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
显然它正在尝试构建
x86_64
代码并惨败,因为我只在 xCode 项目设置中从 i386
启用了 VALID_ARCHS
。
有没有办法让它明白我不需要
64-bit
图书馆?
如果您希望
ONLY_ACTIVE_ARCH
使用 NO
参数,则必须将 xcodebuild
设置为 ARCHS
。通过传递这些参数,您可以强制采用正确的架构。
xcodebuild ARCHS=i386 ONLY_ACTIVE_ARCH=NO -configuration Debug -workspace MyProject.xcworkspace -scheme MyLib
请参阅此参考资料了解详细信息。
仅构建活动架构(ONLY_ACTIVE_ARCH)
xcodebuild ONLY_ACTIVE_ARCH...
//or
Build Settings -> Build Active Architecture Only -> ONLY_ACTIVE_ARCH
YES
- 使用单一架构为连接的设备构建二进制文件
NO
- 为特定的-arch
(valid architectures
又名VALID_ARCHS
)构建二进制文件(如果已指定)或在其他情况下为所有架构
建议使用
Yes
进行调试(以节省构建时间),使用 No
进行发布构建。
注意:在模拟器上运行是安全的
要检查版本,请使用
lipo -info
[关于]