在Travis CI上如何签署iOS应用程序代码并将其上传到Apple TestFlight?

Jon*_*Cox 5 itunesconnect ios testflight travis-ci

我一直在尝试将Travis CI设置为构建服务器,但是我遇到了对应用程序进行代码签名并将其上传到TestFlight的问题.

主要问题是上传到Apple TestFlight.我可以在网上找到很多关于如何在testflightapp.com上传到旧版TestFlight的指南,但我还没弄清楚如何上传到iTunes Connect.

我试图使用altool命令:

altool --upload-app -f "$OUTPUTDIR/$APP_NAME.ipa" -u '$ITUNES_CONNECT_USERNAME' -p '$ITUNES_CONNECT_PASSWORD'
Run Code Online (Sandbox Code Playgroud)

但是在特拉维斯CI上,它不起作用: altool: command not found

-

我主要使用以下教程来实现这一目标:http://www.raywenderlich.com/109418/travis-ci-tutorialhttps://www.objc.io/issues/6-build-tools/travis -ci /#应用程序签名

这是一个有用的官方页面:http: //docs.travis-ci.com/user/languages/objective-c/

-

这是我的项目设置:

.travis.yml文件:

language: objective-c
osx_image: xcode7.1
xcode_workspace: XXXXXXX.xcworkspace
xcode_scheme: XXXXXXX
env:
  global:
  - APP_NAME="XXXXXX"
  - DEVELOPER_NAME="iPhone Distribution: XXXXXXX (XXXXXXX)"
  - PROFILE_NAME="XXXXXXXXXXXXX"
  - ITUNES_CONNECT_USERNAME="XXXXXX@XXXXXX.com"
  - secure: XXXXXXXXXXXXXXXXXXXXXX
before_script:
- ./scripts/add-key.sh
- ./scripts/update-bundle.sh
script:
- xctool -workspace XXXXXXX.xcworkspace -scheme XXXXXXX -sdk iphoneos -configuration
  Release OBJROOT=$PWD/build SYMROOT=$PWD/build ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY=""
  CODE_SIGNING_REQUIRED=NO
after_success:
- ./scripts/sign-and-upload.sh
after_script:
- ./scripts/remove-key.sh
Run Code Online (Sandbox Code Playgroud)

请注意,CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO构建命令的末尾是存在的,因为否则应用程序无法构建(有关详细信息,请参阅https://github.com/travis-ci/travis-ci/issues/3047,以及https:// stackoverflow. com/a/11647504/404409了解更多信息).这可能是下面描述的代码签名问题的原因.

add-key.sh,sign-and-upload.shremove-key.sh脚本基本上只是复制直接从https://www.objc.io/issues/6-build-tools/travis-ci/#添加的脚本

除了这行添加了sign-and-upload.sh的结尾:

altool --upload-app -f "$OUTPUTDIR/$APP_NAME.ipa" -u '$ITUNES_CONNECT_USERNAME' -p '$ITUNES_CONNECT_PASSWORD'
Run Code Online (Sandbox Code Playgroud)

-

应用程序构建,但这是最后sign-and-upload.sh脚本的输出:

env SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication /Users/travis/build/XXXXXX/ios/build/Release-iphoneos/XXXXXXX.app -o /Users/travis/build/XXXXXX/ios/build/Release-iphoneos/XXXXXXX.ipa -sign iPhone\ Distribution\=XXXXXXXXXXXX -embed /Users/travis/Library/MobileDevice/Provisioning\ Profiles/XXXXXXXXXXX.mobileprovision
error: Failed to read entitlements from '/var/folders/my/XXXXXXXXXXXXXXXXXXX/X/XXXXXXXXX/Payload/Kimono.app'
./scripts/sign-and-upload.sh: line 20: altool: command not found
Run Code Online (Sandbox Code Playgroud)

-

如果您有关于如何在Travis CI上完成iOS应用程序的任何线索,或者如何通过命令行向TestFlight提交构建,我将永远感激不尽!

谢谢.

小智 0

在我的机器上,我的 PATH 中没有altool,但xcrun altool可以工作。也许尝试一下?