如何通过命令行将 iOS 应用上传到应用商店

Posted

技术标签:

【中文标题】如何通过命令行将 iOS 应用上传到应用商店【英文标题】:How to upload an iOS app to the app store via command line 【发布时间】:2012-08-09 16:44:35 【问题描述】:

作为我的 iPhone 应用程序 countinues 集成过程的一部分,我想创建一个将应用程序 (.ipa) 文件自动上传到苹果应用商店的过程。我已经设法创建包并验证它。 有没有办法通过命令行将ipa文件上传到appstore?

【问题讨论】:

您可以尝试自动化 Xcode 或 AppleScripting Xcode,然后从命令行调用该自动化脚本。 【参考方案1】:

    确保您的应用程序处于“等待上传”状态。

    创建一个名为:Xcode:itunesconnect.apple.com 的新钥匙串项目,将您的凭据提供给 itunes connect。

    从命令行:xcrun -sdk iphoneos Validation -online -upload -verbose "path to ipa"

【讨论】:

这是完美的。我有很多客户和客户。我想代表我的客户/客户上传应用程序,如何创建相应的密钥链项并在“xcrun”命令期间提供它们? 您可以在运行 xcrun 之前创建一个 ad-hoc 密钥,并在上传完成后丢弃它security add-generic-password -s Xcode:itunesconnect.apple.com -a LOGIN -w PASSWORD -Uxcrun -sdk iphoneos Validation -online -upload -verbose "path to ipa"security delete-generic-password -s Xcode:itunesconnect.apple.com -a LOGIN 这是真的吗?我正在尝试通过命令行发送已构建好的 IPA 文件,但它返回了一些错误。 @MR.GEWA 你没有迈出第一步 警告任何人在一段时间后发现此建议,就像我在 2014 年 9 月所做的那样,mobilecraft.tumblr.com/post/23486904489/… 声称截至 2013 年 2 月“Apple 终于承认这些工具没有记录并表示它们不受支持用于命令行。”我还没有验证他们的说法。【参考方案2】:

之前的回复不再适用于新的 iTunes Connect。

您需要使用iTunes Transporter 将您的应用上传到 iTunes Connect。在GitHub上查看deliver的源代码:https://github.com/fastlane/fastlane/blob/master/fastlane_core/lib/fastlane_core/itunes_transporter.rb

您可以使用deliver 自动将新更新上传到 App Store:https://fastlane.tools/deliver

【讨论】:

【参考方案3】:

上传 IPA 到 TESTFLIGHT

altool --upload-app -f "$APP_NAME.ipa" -u $APP_STORE_USERNAME -p $APP_STORE_PASSWORD

要在终端的任何位置使用altool,您可以将其添加到您的 通过在终端中键入 PATH 环境变量:

Xcode 11 之前的版本:

MacBook-Pro:~ denis$ export PATH=$PATH:/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/
MacBook-Pro:~ denis$ source ~/.bash_profile

来自 Xcode 11 及更高版本:(altool 已更改位置)

MacBook-Pro:~ denis$ export PATH=$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin/
MacBook-Pro:~ denis$ source ~/.bash_profile

【讨论】:

altool 现在位于 /Applications/Xcode.app//Contents/Developer/usr/bin/altool @EionRobb 感谢您帮助更新这个旧答案 :) 自 Xcode 11 起,我只是把新位置的信息放在了【参考方案4】:

你应该使用应用加载工具:altool --upload-app -f file -u username [-p password] [--output-format xml]

如中所述: https://help.apple.com/itc/apploader/#/apdATD1E53-D1E1A1303-D1E53A1126

【讨论】:

【参考方案5】:

如果需要,您可以尝试直接使用Transporter 来摆脱快车道。它也可以安装在任何操作系统上,因此理论上可以基于容器(docker)上传。

设置完成后,请尝试以下操作:

iTMSTransporter -m upload -u <usename_email> -p <password> -k 10000 -itc_provider <provider_id> -assetFile MyApp.ipa -assetDescription AppStoreInfo.plist

提供者 ID 是您需要使用传输器的 -m provider 命令查找的东西

【讨论】:

以上是关于如何通过命令行将 iOS 应用上传到应用商店的主要内容,如果未能解决你的问题,请参考以下文章

上传到 iOS 应用商店时出现错误“您的二进制文件无效”

使用命令行上传到 iTunesConnect 时如何指定应用程序 ID

将phonegap iOS应用程序上传到应用商店不起作用

将 Apple Watch 上传到应用商店(iPhone 应用已上传)

Firebase 推送通知在上传到应用商店 ios 后不起作用

iOS6 和 XCode 4.5 - 无法将应用上传到应用商店