iOS

Xcode11 或 Transporter 上传app store 一直卡在Authenticating with the App Store 的解决方案

简介:不管适用Xcode 还是Transporter,在上传app时都卡在了App store 认证这一步,解决方案是更新iTMSTransporter。

Xcode11 或 Transporter 上传app store 一直卡在Authenticating with the App Store 的解决方案

适用于Xcode11.3.1 和Transporter.app

有时候上传iOS app 到app store 时 一直卡在Authenticating with the App Store,不管适用Xcode11 或是Transporter,等了2天一夜,都无法得到解决,就这样一直处于这个状态。
下图是使用Transporter遇到的问题:
截屏2020-02-22下午6.26.57.png

此问题,一般是在Mac 使用某些清理工具清理后,亦或是Xcode 的组件需要更新时出现,这都要归功于Xcode 中上传ipa的组件iTMSTransporter。不管是被Apple 移除的Application Loader 还是新成员Transporter,都要使用到iTransporter。

Mac 中iTMSTransporter的位置

如果你的mac 中安装了Transporter.app,iTMSTransporter会有三个位置存在

  • iTransporter 在Xcode11 的位置,这是个可执行文件

    /Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/itms/bin/iTMSTransporter
    

    截屏2020-02-22下午7.27.23.png

  • iTransporter 在Transporter 中的位置,这是个可执行文件

    /Applications/Transporter.app/Contents/itms/bin/iTMSTransporter
    

    截屏2020-02-22下午7.28.33.png

  • 缓存文件 在当前用户的Caches 目录下

    ~/Library/Caches/com.apple.amp.itmstransporter
    

    截屏2020-02-22下午7.33.13.png

此前,我尝试卸载Xcode.app,问题还是无法得到解决,根据以往的经验我猜测是iTMSTransporter出了问题,在stackoverflow找到了解决方案。

iTmstransporter无法上传app的原因是因为iTMSTransporter需要下载一组jar包,并缓存到~/Library/Caches/目录下。可想而知,问题出在了缓存缓存文件。

解决方法

根据上面的分析,罪魁祸首就是~/Library/Caches/目录下的com.apple.amp.itmstransporter缓存文件导致iTmstransporter无法上传ipa,我们尝试删除~/Library/Caches/com.apple.amp.itmstransporter,然后执行(iTransporter 在Xcode11 的位置) 或者 (iTransporter 在Transporter 中的位置)的可执行文件。

按照下面步骤操作,以完成新的缓存文件下载

# 删除缓存文件
rm -r  ~/Library/Caches/com.apple.amp.itmstransporter/
 # 执行iTransporter的可执行文件(将iTMSTransporter的可执行文件拖入终端),Transporter.app 或者 Xcode.app 目录下的都可以
 /Applications/Transporter.app/Contents/itms/bin/iTMSTransporter

一旦在终端执行完成后,重启你的Transporter.app,既可以成功上传ipa。

注意事项

目前仅限于Xcode11

在执行/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter时,可能会很慢,甚至在终端你感受不到是否正在下载。此时莫要慌,我们已经明确了执行是为了下载缓存文件,那么我们看一下~/Library/Caches/com.apple.amp.itmstransporter这个文件夹的大小就知道正在下载的状态了,实在还不行,换成4G也是可以解决的哦。

以下是终端一直没有变化的截图,但是文件的大小却一直在变:
截屏2020-02-22下午6.55.43.png

下载完成后的截图,总大小56.4m:
截屏2020-02-22下午6.59.48.png

解决完成后,使用和Transporter.app 上传ipa 的速度还是很快的
截屏2020-02-22下午7.03.38.png

参考资料

以下翻译自[stackoverflow](https://stackoverflow.com/questions/22443425/application-loader-stuck-at-authenticating-with-the-itunes-store-when-uploadin/59261475#59261475
旧的应用程序加载程序或最新的Xcode使用Java程序iTMSTransporter来处理ipa文件上载。

要正常工作,iTMSTransporter需要一组从Internet下载并缓存在本地文件夹中的jar文件。

如果你的缓存以某种方式被破坏,或者根本不存在,直接调用iTMSTransporter函数参数,比如–upload app在我们的例子中,iTMSTransporter不会警告你,也不会自己修复缓存,它只是被卡在那里,什么都不说!(不管是谁写的这个iTMSTransporter,你都需要提高你的编程意识)。

在不使用任何参数的情况下调用iTMSTransporter可以修复缓存

推荐阅读

目录