目前,我正在使用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-entitmentments.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
答案 0 :(得分:1)
我找到了一个解决方案,该解决方案正在处理项目的归档文件,该文件包含监视,应用和扩展。
xcodebuild -exportArchive -archivePath AppName.xcarchive/ -exportPath AppName.ipa -exportFormat ipa -exportWithOriginalSigningIdentity
此命令基本上使用相同的签名标识和配置文件从原始xcarchive文件中导出ipa。
答案 1 :(得分:-1)
我们有一些工作来生成包含iPhone应用程序和Apple Watch应用程序的.ipa。
使用Xcodebuild生成.app后,在bash脚本中我们执行以下操作
A)
使用应用程序名称创建目录
在应用程序目录内创建名为Payload的子目录
将.app复制到Payload目录
B)
在应用程序目录内创建名为WatchKitSupport的子目录作为Payload的兄弟。
将名为“WK”的二进制文件从Xcode中的iOS 8.2 SDK复制到新的WatchKitSupport目录。这个二进制文件可以在以下位置找到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support / WatchKit /
确保未以任何方式触摸/重新签名“WK”二进制文件。这对于设备验证很重要。
压缩应用程序文件夹
将.zip重命名为.ipa
扩展时,IPA应包含(至少): xxx.ipa | ________有效载荷/ | ________ WatchKitSupport / | _____ WK
这对我们有用。