我有一个项目需要制作两个可执行文件,一个是64位(x64_86),另一个是32位(i386);它们不能合并。
该项目包括链接到第三方框架。
在XCode中编译没有问题。
当仅使用xcodebuild(不传递参数)时,64位二进制文件会按预期构建,并将第三方框架与正确的引用链接在一起。使用otool -L显示
@rpath/Frameworks/thirdpartybundle.framework/Versions/A/thirdpartybundle
然而,当我编译32位二进制文件时,所引用的框架是错误的,并且otool -L显示如下:-
@rpath/Frameworks/mytool32.framework/Versions/A/mytool32
其中'mytool32'是传递给xcodebuild的产品名称。 我尝试使用以下命令构建32位版本:
xcodebuild -project mytool.xcodeproj -scheme mytool VALID_ARCHS=i386 CURRENT_ARCH=i386 ONLY_ACTIVE_ARCH=NO ARCHS=i386 PRODUCT_NAME=mytool32
我也尝试过这个:-
xcodebuild -project mytool.xcodeproj -destination 'platform=OS X,arch=i386' -target mytool PRODUCT_NAME=mytool32
无论哪种方式,它们都会生成一个二进制文件,并将产品名称替换为框架名称而导致路径错误。
如何使用xcodebuild构建32位版本,指定产品名称,但是正确指向第三方框架的路径?
PRDUCT_NAME
”参数是一个笔误吗? - Michael Dautermann