什么是Xcode的PackageApplication的替代品?

asp*_*net 10 xcode xcode8

使用Xcode 8.3 PackageApplication不见了.我确实使用它将*.app包/目录转换为*.ipa文件(重新签名后):

xcrun -sdk iphoneos PackageApplication -v "MyApp.app" -o "MyApp.ipa"
Run Code Online (Sandbox Code Playgroud)

有没有替代品,所以我可以继续将.app转换为.ipa?

asp*_*net 21

显然,不需要使用任何其他工具,也没有必要更改导致*.app包的过程(换句话说:不需要使用xcodebuild -exportArchive).

我们所要做的就是压缩*.app包:

pushd "/build"
mkdir ./Payload
cp -R "$PATH_TO_SIGNED_APP_PACKAGE.app" ./Payload
zip -qyr MyApp.ipa ./Payload
rm -r ./Payload
popd
Run Code Online (Sandbox Code Playgroud)

注意:

  1. 跳转到目标目录,这里/build.这可确保我们以后在zip存档中没有完整路径.
  2. 创建一个名为的文件夹Payload(重要,这不能改变)
  3. 将*.app包复制到该Payload文件夹
  4. 压缩文件夹而不是*.zip使用*.ipa作为扩展名
  5. 跳回你来自的地方


twj*_*twj 9

另一种解决方法是将PackageApplication工具的副本从以前的Xcode放入Xcode 8.3目录

PackageApplication从Xcode 8.2.1 获取脚本:https://gist.github.com/anonymous/48f3e4c5ae25313dc0fe10d9ec50c3fc

记得让它可执行

chmod +x PackageApplication
Run Code Online (Sandbox Code Playgroud)

然后将其放入您的8.3 Xcode.app中

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication
Run Code Online (Sandbox Code Playgroud)