如何在 Xcode 11 中上传 IPA,现在 Application Loader 已不再包含在其中?

92
我有点害怕问这个问题,因为这个问题对我来说似乎很大,但我并没有看到任何人因此惊慌。我有点害怕听起来像个疯子,但还是要试一试:

正如我们可以在苹果的帖子提交更新中读到的那样:

从Xcode 11开始,Application Loader不再包含在Xcode中。有关如何使用Xcode将您的应用程序上传到App Store Connect的详细信息,请参阅Xcode Help。

使用Phonegap构建服务的个人和组织合法地会问自己如何将我们的IPA在线上发布,而我们又没有访问Xcode项目文件的权限。

苹果给我们提供了一个新工具叫做档案组织器,但正如我们在文档中所看到的那样:

在档案组织器中,选择要上传的档案,然后单击分发应用程序。

好吧,我的档案在哪里? IPA是否被视为存档? 我该如何将我的IPA集成到这个软件中?

也许我还没有找到正好在我面前的解决方案,但目前我特别担心Phonegap Build的未来,因为如果没有替代应用程序加载程序的工具,就会出现这种情况。

那么,您是否面临同样的问题并找到了解决方案?(除了迁移到Cordova)

我知道混合应用程序没有长久的生命,因为UIWebView的折旧和cordova与WKWebView的低兼容性,但我无法相信苹果会在没有警告的情况下杀死Phonegap Build。而且像往常一样,Phonegap的团队并不是很健谈。

编辑

好吧,您可以使用以下命令传输您的ipa,但是它是否有效,因为我有旧版本的Xcode(10),所以当Xcode 11发布时,它将被弃用?

xcrun altool --upload-app --type ios --file "path/to/application.ipa" --username "YOUR_ITMC_USER" --password "YOUR_ITMC_PASSWORD"

答案 可能会解决你的问题。 - DawnSong
你得到这个问题的答案了吗?“好的,我的档案在哪里?IPA是否被认为是一个档案?我如何将我的IPA集成到这个软件中?” - SatelBill
11个回答

80

苹果公司今天宣布,在Mac App Store上推出了Transporter开发者应用程序的新版本。该应用程序使开发人员能够轻松地上传文件到App Store Connect等平台。

在 Mac AppStore 上提供

Transporter


这是最接近OP需求的,因为它可以做到Application Loaded所做的事情。 - Vering

66

2019年11月 - 新的"运输工具"应用程序

在此输入图像描述

  1. 您需要从普通的Mac应用商店下载苹果应用程序"Transporter"。请清楚点击Mac电脑上的普通“应用商店”图标,就像您是一个普通消费者而不是开发者一样。搜索“Apple Transporter”并下载它。(“Transporter”完全免费)。

  2. 在当前的Xcode中,像往常一样增加构建号码,断开连接的电话,并像往常一样点击"档案"。(别忘了不要选择模拟器!)

  3. 完成后,以通常的方式点击“分发应用程序”。以通常的方式选择“App Store Connect”。但是。然后选择导出...不要选择上传。

在此输入图像描述

  1. 您将被要求保存到哪里 - 请务必选择您的桌面。

  • 您的桌面上会留下一个文件夹(而不是文件)。请注意当前时间以区分正确的文件夹。(选错文件夹很烦人!)

  • 文件夹中有一个.ipa文件。其他所有内容都没有用/价值

  • 启动“传送工具”应用程序。只需将ipa文件拖到传输工具应用程序中即可。

  • 传输工具应用程序提示:

    务必查看传输工具应用程序的首选项。可以消除其中一个无用的“OK”点击。

    --

    历史注释 -

    2019年9月左右,令人难以置信的是,appstoreconnect在数月内*无法在Safari中正常工作。必须使用Chrome。(不是开玩笑!)这现在已经无关紧要了。


    1
    不要进行(验证),执行所有这些步骤。 - developer1996
    @developer1996 - 现在所有的工作都是自动完成的。 - Fattie
    1
    太棒了! - dbenitobaldeon

    46

    我正在使用 XCode 11 GM Seed 2 (11A420a)。 我尝试过

    xcrun altool --upload-app --type ios --file "path/to/application.ipa"
    --username "YOUR_ITMC_USER" --password "YOUR_ITMC_PASSWORD"
    

    但对我来说它没有起作用,因为它生成了一个类似于"Error Domain=ITunesSoftwareServiceErrorDomain Code=-22014"的错误代码。

    我生成了一个应用商店API密钥(请参见https://appstoreconnect.apple.com/access/api),将其保存在我的~/.appstoreconnect/private_keys目录中,并创建了这个名为applicationloader.sh的bash脚本:

    #!/bin/bash
    APPFILE=$1
    set -euo pipefail
    
    # key is in ~/.appstoreconnect/private_keys
    KEY="<the key part of the AuthKey_key.p8 file>"
    ISSUER="<YOUR ISSUER ID>"
    xcrun altool --upload-app --type ios --file $APPFILE --apiKey $KEY --apiIssuer $ISSUER
    

    然后(在执行 chmod a+x applicationloader.sh 后),我只需输入以下命令:

    applicationloader.sh app.ipa
    

    应用程序已经成功上传到TestFlight。

    希望这可以帮助。


    1
    谢谢您提供这段代码。个人认为使用标识符的altool很好用。这个问题可能看起来有些愚蠢,但是您是否使用了在https://appleid.apple.com上生成的密码? - Enzo B.
    实际上,我上传到的是一个不同于我的 Apple ID - 我上传到了我的客户的 Apple 开发者账户。这可能是导致用户名/密码无法使用的原因。 - Mazzaroth
    我在我的账户上启用了双重身份验证,并能够使用生成的应用程序密码。 - trebor
    您所说的发行者ID是什么意思?是我用来登录App Store的Apple ID吗? - AlexS
    现在在Xcode 11.6中没有altool,你该怎么做呢?我需要对分发到App Store之外的应用程序进行公证,但我不知道如何进行公证。我是在QtCreator中使用Qt进行开发的,因此altool是我的首选。 - Andrej Fogelton

    24

    1
    这对我也有效。重要的是省略双引号。 否则,您会收到类似“Error Domain=ITunesSoftwareServiceErrorDomain Code=-22014”的错误代码。 - Sander
    这应该被标记为答案。非常感谢。!!! 另外,重要的是,请不要忘记省略 PATH、USERNAME 和 PASSWORD 的双引号。此外,密码不是您的 Apple Id 密码,而是应用程序特定的一次性密码) 谢谢。 - Gag Baghdasaryan
    使用 $ 加数字设置密码是否可行?如果我使用单引号会有问题吗?目前看来好像不行。 - bbc_danang
    我尝试从AppStore下载Transporter到我的Mac,但无法下载,有人遇到过这个问题吗? - EriK
    一次性密码,当然没问题。谢谢,这终于解决了数月的挫败感。 - Rand
    现在在Xcode 11.6中没有altool,你该怎么做呢?我需要对分发到App Store之外的应用程序进行公证,但我不知道如何进行公证。我是在QtCreator中使用Qt进行开发的,因此altool是我的首选。 - Andrej Fogelton

    7

    5
    Enzo的答案非常有效。但是对于像我这样感到困惑的人,您需要在此处生成一个应用程序专用密码:https://appleid.apple.com/account/manage (我知道,我正在回复Enzo的答案,但我无法评论)

    5

    Xcode支持从组织者窗口或使用xcodebuild或xcrun altool命令行上传应用程序。应用程序加载器不再包含在Xcode中。(29008875)

    xcrun altool --upload-app --type ios --file <Path> --username <Username> --password <One-time-pass>
    

    苹果公司还推出了运输工具应用程序,可直接将IPA文件上传至iTunes Connect。


    2
    Xcode支持从组织器窗口上传应用程序,但不支持IPA文件。 - Enzo B.

    2
    这句话的意思是“AuthKey_key.p8文件的关键部分是什么?”很抱歉,无法发表评论,为什么现在所有的事情都变得非常麻烦,而本来并不需要这样呢?

    这意味着,例如,如果您的密钥命名为:AuthKey_123456ABC.p8,则应该只使用“123456ABC”。请记住,您的AuthKey_123456ABC.p8文件必须存储在此位置:~/.appstoreconnect/private_keys/。 - Biba
    啊,换句话说,“key id” 实际上是什么。谢谢。 - Matt Hough

    2

    苹果已经在应用商店上推出了Transporter App,您可以下载并使用它来代替Application Loader。


    0
    “好的,我的存档在哪里?IPA文件算是一个存档吗?我该如何将我的IPA文件整合到这个软件中呢?”
    “存档部分将创建您的IPA文件,并让您直接上传到苹果开发者区域,准备提交到商店。”
    “在Xcode中,从顶部菜单中点击'Product',然后选择'Archive'。按照屏幕上的指示进行操作。此时您的IPA文件已经创建完成。您可以选择自动分发您的文件到应用商店,但我建议先点击'Validate App'选项,以重新请求正确的证书/预置文件,并给您提供任何问题的摘要。如果没有问题,您可以点击'Distribute App',它会将IPA文件上传到您的Appstore Connect(以前的iTunes Connect)区域。”

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接