无法为Cordova iOS App生成发布版本

Aar*_*ush 11 xcode xcodebuild ios cordova xcrun

我正在使用Phonegap CLI 3.1XCode5.我想通过命令行为iPhone应用程序生成发布版本,我有有效的分发证书移动配置文件.我想完全通过命令生成发布版本,不想使用XCode GUI或Phonegap Build.我用xcodebuild,xcrun甚至corodva build命令都做了太多尝试,但它们都没有为我提供发布版本文件(无论是.app格式还是.ipa).

方法1(使用xcodebuild)

a) xcodebuild -project MyApp.xcodeproj -alltargets -sdk iphoneos7.0 PROVISIONING_PROFILE="PROFILE_UUID.mobileprovision" -configuration Release
Run Code Online (Sandbox Code Playgroud)

**BUILD FAILED**
以下构建命令失败:

CompileC build/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/AppDelegate.o MyApp/Classes/AppDelegate.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler

CompileC build/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/MainViewController.o MyApp/Classes/MainViewController.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler

CompileC build/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7s/AppDelegate.o MyApp/Classes/AppDelegate.m normal armv7s objective-c com.apple.compilers.llvm.clang.1_0.compiler
( 3次失败)


方法2(使用corodova build和xcrun签署应用程序)

a) cordova build ios -release
Run Code Online (Sandbox Code Playgroud)

通过命令"/ Users/Macuser/Desktop/MyApp/platforms/ios/cordova/build"在平台"ios"上编译应用程序 - 发布平台"ios"编译成功.

b) xcrun -sdk iphoneos PackageApplication -v "build/Release-iphoneos/MyApp.app" -o "build/Release-iphoneos/MyApp.ipa" --sign "iPhone Distribution: NAME (ID)" --embed "PROFILE_UUID.mobileprovision"
Run Code Online (Sandbox Code Playgroud)

error: Failed to read entitlements from '/tmp/iyibGn3aUv/Payload/MyApp.app

coo*_*hon 10

问题是你没有适当的方案.生成phonegap项目时,它不包含任何方案,因此链接到phonegap文件不正确.

在控制台中转到phonegap生成的项目,并在输出中输入 ' xcodebuild -list ',您将获得项目中没有方案.

打开由xcode中的phonegap项目生成 - 这将生成方案.

现在您可以使用xcodebuild构建它(请记住填写正确的方案名称):

xcodebuild -scheme YOURSCHEMENAME -project MyApp.xcodeproj -alltargets -sdk iphoneos7.0 PROVISIONING_PROFILE ="PROFILE_UUID.mobileprovision"-configuration Release

对于持续集成,这是一个糟糕的解决方案,因为你必须启动xcode GUI来生成方案,但我没有找到任何其他解决方案来解决这个问题.如果有人知道如何使用命令行生成方案,那么将其写下来会很好.

  • 您可以使用`xcodeproj` Ruby gem(即:gem install xcodeproj)和以下小脚本自动生成方案https://gist.github.com/shanesmith/8b88720c19b910cc9900 (5认同)