我正在使用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"
请帮忙......
答案 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并立即正常工作。