【问题标题】:Can't generate release build for Cordova iOS App无法为 Cordova iOS 应用程序生成发布版本
【发布时间】:2013-11-06 14:00:59
【问题描述】:

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

方法一(使用xcodebuild)

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

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

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 .编译器

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 .编译器

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

【问题讨论】:

    标签: ios xcode cordova xcodebuild xcrun


    【解决方案1】:

    问题是你没有合适的方案。生成 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 来生成方案,但我没有找到任何其他解决方案来解决这个问题。如果有人知道如何使用命令行生成方案,他会很高兴把它写下来。

    【讨论】:

    • 您找到解决方案了吗?我面临同样的问题。非常感谢任何帮助。
    • @coolphon 有没有办法使用命令行生成方案?我正在尝试使建筑物自动化,所以我真的不能做类似'open en close xcode'之类的事情..
    • 您可以使用xcodeproj Ruby gem(即:gem install xcodeproj)和以下小脚本gist.github.com/shanesmith/8b88720c19b910cc9900自动生成方案
    • 我有一个项目,其中方案是从 GUI 创建并共享的,当我运行 xcodebuild 命令时它不工作,显示找不到 coredova。有 coredova 项目的解决方案吗?
    【解决方案2】:

    首先,您需要在 iTunes Connect 中创建您的应用程序(位于您的 iOS 开发者帐户的会员中心)。如果您已经创建了配置文件和证书,那么您可以在 iTunes Connect 中选择正确的。在这里,您可以为您的应用命名、设置价格、编写描述以及上传屏幕截图和一个大图标。确保填写所有信息并为您的应用上传所有图片。完成后,您会知道您的应用状态更改为“等待上传”。

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

    选择“构建设置”。然后转到代码签名部分。对于“发布”,确保选择了正确的 iPhone 分发标识或配置文件。

    “Release”下方应显示“Any iOS SDK”。确保它旁边显示“IOS Distribution”。

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

    如果没有构建,请按运行按钮构建您的项目。 Xcode 应该说它正在归档。

    存档成功后,进入管理器。在顶部的菜单中,选择“窗口”>“管理器”。现在单击存档。

    如果您的项目成功存档,您将在此处看到它。首先,您需要使用 iTunes Connect 验证您的项目。您需要输入您的 iOS 开发者登录信息。 Xcode 5 在检测正确的配置文件方面做得很好,所以你应该在那里看到它。

    如果您的应用通过验证,那么您可以将其分发到 App Store 或作为 Ad-Hoc 分发。取决于您拥有的个人资料。

    这是分发 Native 或 Phonegap 应用程序的过程。没关系,我两个都建好了。

    我建议这样做,以防您的应用无法验证。然后 Xcode 会告诉你需要做什么来修复。然后,一旦您解决了所有问题。创建一个新存档并尝试直到它验证。

    【讨论】:

    • 正如我已经提到的,我不想使用 xcode gui 功能。我知道如何使用 XCode GUI 为发布和 Adhoc 构建应用程序。我不想打开 xcode。我想使用命令行做同样的事情。比如使用 xcodebuild、xcrun 或 cordova build 命令。
    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多