1

目前我正在使用 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
4

2 回答 2

1

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

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

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

于 2015-05-14T00:15:49.477 回答
-1

我们有一些工作可以生成包含 iPhone 应用程序和 Apple Watch 应用程序的 .ipa。

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

一个)

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

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

  3. 将 .app 复制到 Payload 目录

二)

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

  2. 将 Xcode 中 iOS 8.2 SDK 中名为“WK”的二进制文件复制到新的 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 |________Payload/ |____WatchKitSupport/ |_____WK

这对我们有用。

于 2015-04-24T20:24:25.667 回答