Macos 如何使用xcodebuild构建特定的体系结构?
我有一个依赖于指针为32位的遗留代码,我想使用Macos 如何使用xcodebuild构建特定的体系结构?,macos,command-line,xcode4,xcodebuild,Macos,Command Line,Xcode4,Xcodebuild,我有一个依赖于指针为32位的遗留代码,我想使用xCodeBuild从命令行构建代码。出于某种原因,这不起作用。以下是我使用的命令: xcodebuild -configuration Debug -arch i386 -workspace MyProject.xcworkspace -scheme MyLib 这是我得到的输出 [BEROR]No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_
xCodeBuild
从命令行构建代码。出于某种原因,这不起作用。以下是我使用的命令:
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\u 64
代码,但失败得很惨,因为我只在xCode项目设置中启用了i386
fromVALID\u ARCHS
有没有办法让它明白我不想要一个64位
库?如果你想xcodebuild
使用ARCHS
参数,你必须将ONLY\u ACTIVE\u ARCH
设置为NO
。通过传递这些参数,您可以强制使用适当的体系结构
xcodebuild ARCHS=i386 ONLY_ACTIVE_ARCH=NO -configuration Debug -workspace MyProject.xcworkspace -scheme MyLib
有关详细信息,请参阅。xcodebuild ONLY\u ACTIVE\u ARCH
xcodebuild ONLY_ACTIVE_ARCH...
//or
Build Settings -> Build Active Architecture Only -> ONLY_ACTIVE_ARCH
是
-为连接的设备构建具有单一体系结构的二进制文件
否
-为特定的-arch
(有效架构
aka有效架构
)生成二进制文件(如果指定了),或者在其他情况下为所有架构生成二进制文件
建议使用Yes
进行调试(这样可以节省构建时间),使用No进行发布构建
注:在模拟器上运行是安全的
要检查版本,请根据提供的参考使用lipo-info
,看起来仅使用“活动”和“当前”两个变量应该可以满足我的要求,但“当前”变量(或具有相同含义的“本机”变量)显然无法覆盖(文档中似乎没有任何提示). 建议的方法确实有效(而且,一旦您了解了ActiveArch是构建系统的体系结构,而不是您在Xcode中选择的体系结构,它实际上是有意义的),但对于该定义来说,选择一个更好的词可能会有所帮助。谢谢您可以使用xcodebuild VALID\u ARCHS=i386 CURRENT\u ARCH=i386 ONLY\u ACTIVE\u ARCH=YES….
只需添加\u ACTIVE\u ARCH=NO即可为64位模拟器/os:ARCHS='x86\u 64'VALID\u ARCHS='x86\u 64'执行此操作的Geoptima有何作用?ONLY\u ACTIVE\u ARCH=NO
答案是正确的,您的评论是无用的