使用多个目标创建.ipa



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

构建将生成一个.app文件,我将使用XCRUN调用PackageApplication来创建.ipa。

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

使用Xcode 6.2

更新

现在使用Xcode 7 GM和OSX 10.10.4。

对于"测试"构建,我遇到了一段困难,因为开发人员总是更改配置文件,所以我制作了2个构建;一个通过命令行,另一个通过IDE(Xcode)。我将.ipa扩展名改为.zip,并比较了2。

IDE的良好构建生成了一个名为"归档的扩展权限.exent"的文件,该文件正确定义了所有签名标识。

我将这个文件复制到另一个目录,并使用它来注入所有其他后续构建。构建现在可以在手机上加载&注意测试。

下面是一个如何做到这一点的例子。有点黑客,但它是有效的。

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

我找到了一个解决方案,该解决方案正在处理具有watch、app和扩展名的项目的归档文件。

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

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

我们有一些工作要生成包含iPhone应用程序和apple watch应用程序的.ipa。

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

A)

  1. 创建应用程序名为的目录

  2. 在应用程序目录内创建名为Payload 的子目录

  3. 将.app复制到Payload目录中

B)

  1. 在应用程序目录内部创建名为WatchKitSupport的子目录,作为Payload的同级目录。

  2. 将名为"WK"的二进制文件从Xcode中的iOS 8.2 SDK复制到新的WatchKitSupport目录中。此二进制文件可在以下位置找到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Libary/Application Support/WatchKit/

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

  4. 压缩应用程序文件夹

  5. 将.zip重命名为.ipa

展开时,IPA应(至少)包含:xxx.ipa|________有效载荷/|________WatchKitSupport/|_____WK-

这对我们有用。

相关内容

  • 没有找到相关文章

最新更新