上传期间macOS App notarisation卡住了

问题描述 投票:1回答:2

我有一个简单的,基于Swift的macOS应用程序,在Xcode中编写和维护,我现在想通过Apple的Developer-ID“notarisation”服务进行分发。但是,每当我尝试上传应用程序的存档版本时,Xcode就会陷入"Uploading package to Apple Services..."的过程中。

This is where Xcode gets stuck for extended periods of time

我的流程如下: - 在Xcode“Build - > Archive”中 - 在Xcode的管理器中:分发应用程序 - >开发者ID - >上传 - >自动代码签名 - 现在问题出现在上传过程中。

我已经尝试过公证一个简单的示例应用程序,除了标准的Swift macOS项目模板所包含的代码之外没有任何代码,并且该应用程序也会在此步骤中陷入困境。 (因此,这应该消除我的项目本身的代码/二进制问题。)

我还尝试使用xcrun altool将我的二进制文件上传到notarisation服务使用命令:xcrun altool --notarize-app --primary-bundle-id "com.me.myapp" --username "myuser@memyselfandi" --password "mypasswd" --file myfile.zip。 这里的结果是类似的:该命令没有输出并挂起。

每当我尝试上传到Apple服务时,我也注意到一个名为ascp的进程正在上传相当大量的数据,这是我试图上传到Apple的存档大小的倍数。我不是100%肯定这可能是如何相关的,但是当通过Organizer或xcrun altool命令上传时,始终会显示该过程。

我正在使用Xcode 10.2.1和macOS Mojave 10.14.4。

xcode macos appstoreconnect notarize
2个回答
1
投票

如果防火墙阻止了除HTTPS之外的传输端口,以下答案可能会对您有所帮助。

itunesconnect using application loader behind a firewall

Upload iOS App to AppStore using port 443


1
投票

由@Tochiji指出正确的方向,这是我的问题的解决方法:

看起来我的网络或ISP在使用Apple选择的上传到公证服务的传输协议方面存在问题。通过使用Little Snitch查看ascp的流量,我得出了这个结论。该程序正在从33001端口上传和下载数据包到多个.apple.com域。然而,它永远不会“到达任何地方”并且上传仍然停滞不前,让我相信我的ISP不支持在端口"Aspera"上运行的33001协议存在问题。

previous answers on similar issues之后,我测试了使用Application Loader上传到Mac App Store并禁用了Aspera协议,果然,上传完成了。

问题是:Application Loader不支持上传到Developer-ID公证系统,而Xcode的集成上传器与Application Loader没有相同的选项。

我的解决方法如下: 使用Little Snitch(或任何其他有能力的macOS防火墙)我现在阻止端口33001上的所有连接。

通过这种方式,Xcode可以检测到Aspera不是一个选项,并选择一个可以正常工作的回退协议。使用此解决方法,甚至可以在限制性防火墙/ ISP之后上传到Developer-ID公证服务,从而做出有趣的决策。

© www.soinside.com 2019 - 2024. All rights reserved.