Xcodebuild不使用x86_64架构生成动态框架

时间:2014-10-08 07:24:39

标签: ios objective-c iphone xcode xcodebuild

我正在使用xcodebuild命令来生成动态框架。为了使它与iPhone 5s模拟器兼容,我需要使用x86_64架构来构建它。但它没有构建框架。

我正在使用下面的命令。

xcodebuild -project $PROJECT_PATH -configuration 'Release' -sdk 'iphonesimulator7.0' clean build ARCHS='x86_64' VALID_ARCHS='x86_64' IPHONEOS_DEPLOYMENT_TARGET='7.0' TARGET_BUILD_DIR="$BUILD_DIR/build-x86_64" BUILT_PRODUCTS_DIR="BUILD_DIR/build-x86_64"

请帮忙......

3 个答案:

答案 0 :(得分:0)

您可能缺少-target "MyTarget"参数。默认情况下,如果未传递此参数,xcodebuild将构建项目中列出的第一个目标。您希望的目标是项目中的第一个目标吗?

您可以尝试的另一个选项是使用经过验证的方法为iOS构建通用框架。我已经使用了这里描述的方法和许多具有完美结果的框架:https://github.com/jverkoey/iOS-Framework。我不是这种方法的开发者。

如果没有发布任何错误消息,或者甚至不知道它是如何失败的,那么很难向您提供更多详细信息。它是否无法构建(因此您收到错误消息)?它是否失败,因为您在最终框架中没有看到x86_64架构?

答案 1 :(得分:0)

在参数列表中尝试这样的事情 xcodebuild manual link

-destination "platform=iOS Simulator,OS=8.0,name=iPhone 6"

这是为项目显示的内容(我根据您的上下文做出此假设)

 xcodebuild [-project projectname] -scheme schemename [-destination destinationspecifier]
            [-destination-timeout value] [-configuration configurationname]
            [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...]
            [-userdefault=value ...]

在其中一个示例中,您还可以列出多个目的地。

xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'platform=iOS
          Simulator,name=iPhone' -destination 'platform=iOS,name=My iPad' test

我个人在一个使用工作区的项目中,所以我必须列出一个方案。

旁注,我注意到你正在设置TARGET_BUILD_DIR和BUILD_PRODUCTS。我设置了OBJROOT和SYMROOT,这些目录与我使用Xcode GUI时的目录相同。

最后这里是使用目标标志的真实示例

BUILDDIR="<path/to/build/directory>"
xcodebuild -workspace "<path/to/workspace/>my.xcworkspace" -scheme "NameOfMySchemeToBuild" -destination "platform=iOS Simulator,OS=8.0,name=iPhone 6" -configuration "Release" OBJROOT=$BUILDDIR SYMROOT=$BUILDDIR

希望这有帮助!

答案 2 :(得分:0)

感谢您的回答..

我刚发现我的机器上没有安装iphonesimulator7.0 SDK,因此在构建时失败了。

我将它更改为iphonesimulator并立即正常工作。