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

我正在使用Phonegap CLI 3.1XCode5 。 我想通过命令行生成iPhone应用程序的发布版本,我有有效的发行证书移动configuration文件 。 我想完全通过命令生成发布版本,不想使用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 

**build立失败**
以下生成命令失败:

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 

通过命令“/ Users / Macuser / Desktop / MyApp / platforms / ios / cordova / build”在平台“ios”上编译应用程序–release平台“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" 

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

问题是你没有合适的scheme。 当phonegap项目生成时,它不包含任何计划,因此链接到phonegap文件是不正确的。

转到在控制台phonegap生成的项目,并把' xcodebuild的列表 '在输出,你会得到,没有计划在项目中。

在xcode中由phonegap项目生成的开放 – 这将生成计划。

现在,您可以使用xcodebuild来构build它(请记住填写正确的scheme名称):

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

对于持续集成来说,这是一个糟糕的解决scheme,因为您必须启动xcode GUI来生成这些scheme,但是我没有find针对此问题的任何其他解决scheme。 如果有人知道如何使用命令行生成scheme,他会很高兴把它写下来。

首先,您需要在iTunes Connect中创build应用程序(位于iOS开发人员帐户的成员中心)。 如果您已经创build了configuration文件和证书,则可以在iTunes Connect中select正确的configuration文件和证书。 这里是你的名字你的应用程序,设置一个价格,写一个描述,并上传屏幕截图和一个大图标。 确保您填写所有信息并上传您应用的所有图片。 你会知道你什么时候完成你的应用程序状态更改为“等待上传”。

在iTunes Connect中成功创build应用程序后,要在Xcode中生成用于分发的.IPA文件(用于AppStore或Ad-Hoc),您需要在文件树中select您的项目(在树的顶部) 。 然后确保你的“目标”被选中。

select“Build Settings”,然后进入代码签名部分,对于'Release',确保select正确的iPhone Distribution标识或configuration文件。

在'发布'下面应该说'任何iOS SDK'。 确保它旁边显示“IOS Distribution”。

如果您在钥匙串中拥有正确的证书和configuration文件,现在可以在顶部的菜单中select产品>存档。

如果它不生成,然后按运行button来build立你的项目。 Xcode应该说它正在归档。

成功存档后,转到“组织者”。 在顶部的菜单中select“窗口”>“pipe理器”。 现在点击档案。

如果你的项目成功存档,你会在这里看到它。 首先,您需要使用iTunes Connectvalidation您的项目。 您将需要input您的iOS开发者login信息。 Xcode 5在检测正确的configuration文件方面做得非常好,所以你应该在这里看到它。

如果您的应用程序validation,则可以将其分发到App Store或作为Ad-Hoc分发。 取决于您拥有的configuration文件。

这是分发应用程序Native或Phonegap的过程。 没关系,我已经build立了两个。

我会build议这样做,以防您的应用程序不validation。 Xcode会告诉你你需要做些什么来修复。 那么一旦你解决了一切。 创build一个新的档案,并尝试,直到它validation。