【问题标题】:Create .ipa using multiple targets使用多个目标创建 .ipa
【发布时间】:2015-04-23 20:38:30
【问题描述】:

目前我正在使用 bash 脚本来构建和归档我们的 iOS 应用程序。随着“Watch”的引入,我发现我的脚本不再能够像以前那样创建必要的 .ipa 文件。

构建将生成单个 .app 文件,我将使用 XCRUN 调用 PackageApplication 以创建 .ipa。现在我希望将 2 个 .app 文件和 1 个 .appex 文件一起归档。

有没有人能够通过命令行/脚本成功地创建一个带有多个 .app 文件的 .ipa 文件?

使用 Xcode 6.2

更新

现在使用 Xcode 7 GM 和 OSX 10.10.4。

对于“TEST”构建,我遇到了开发人员总是更改配置文件的困难时期,因此我进行了 2 个构建;一个来自命令行,另一个通过 IDE (Xcode)。我将 .ipa 扩展名更改为 .zip 并比较了 2。

IDE 的良好构建生成了一个名为“archived-expanded-entitlements.xcent”的文件,其中正确定义了所有签名身份。

我将此文件复制到不同的目录,并使用它与所有其他后续构建一起注入。现在可以将构建加载到手机上并观看测试。

以下是如何执行此操作的示例。有点破解,但它的工作原理。

security -v unlock-keychain -p "password" "keychainPath"

xcodebuild -configuration Test -scheme YourAppName -archivePath somePath/YourAppName.xcarchive archive

xcodebuild -exportArchive -exportFormat IPA -archivePath somePath/YourAppName.xcarchive -exportPath somePath/YourAppName.ipa

unzip -o somePath/YourAppName.ipa -d somePath

cp somePath/archived-expanded-entitlements.xcent somePath/Payload/YourAppName.app

zip -qr somePath/YourAppName.ipa Payload

【问题讨论】:

    标签: ios bash watchkit archive xcode7


    【解决方案1】:

    我找到了一个解决方案,该解决方案正在处理具有手表、应用程序和扩展名的项目的存档文件。

    xcodebuild -exportArchive -archivePath AppName.xcarchive/ -exportPath AppName.ipa -exportFormat ipa -exportWithOriginalSigningIdentity
    

    此命令基本上使用相同的签名标识和配置文件从原始 xcarchive 文件中导出 ipa。

    【讨论】:

      【解决方案2】:

      我们有办法生成包含 iPhone 应用和 Apple Watch 应用的 .ipa。

      使用 Xcodebuild 生成 .app 后,在 bash 脚本中我们执行以下操作

      一)

      1. 使用应用程序名称创建目录

      2. 在 Application 目录中创建名为 Payload 的子目录

      3. 复制.app到Payload目录

      B)

      1. 在 Application 目录中创建名为 WatchKitSupport 的子目录作为 Payload 的同级目录。

      2. 将名为“WK”的二进制文件从 Xcode 中的 iOS 8.2 SDK 复制到新的 WatchKitSupport 目录。此二进制文件位于:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/

      3. 确保“WK”二进制文件没有以任何方式被触及/重新签名。这对于设备上的验证很重要。

      4. 压缩应用程序文件夹

      5. 将 .zip 重命名为 .ipa

      扩展后的 IPA 应包含(至少): xxx.ipa |________有效载荷/ |________WatchKit支持/ |_____周

      这对我们有用。

      【讨论】:

        猜你喜欢
        • 2012-01-14
        • 2012-07-15
        • 2014-06-11
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多