macOS App公证在上传过程中卡住了

时间:2019-04-19 16:31:21

标签: xcode macos appstoreconnect notarize

我有一个基于Xcode编写和维护的基于Swift的简单应用程序,现在我想通过Apple的Developer-ID“公证”服务运行该软件进行分发。但是,每当我尝试上载该应用程序的存档版本时,Xcode都会卡在该过程的"Uploading package to Apple Services..."步骤中。

This is where Xcode gets stuck for extended periods of time

我的过程如下:
 -在Xcode中“构建->存档”
 -在Xcode的管理器中:分发应用程序->开发人员ID->上传->自动代码签名  -现在,该问题发生在上传过程中。

我已经尝试过公证一个简单的示例应用程序,而没有任何代码超出标准Swift macOS项目模板所包含的范围,并且该应用程序在此步骤中也卡住了。 (因此,这应该可以消除项目本身的代码/二进制文件的问题。)

我还尝试使用xcrun altool使用xcrun altool --notarize-app --primary-bundle-id "com.me.myapp" --username "myuser@memyselfandi" --password "mypasswd" --file myfile.zip命令将我的二进制文件上传到公证服务。
此处的结果类似:该命令不提供任何输出并挂起。

每次我尝试上载到Apple Services时,我还注意到一个名为ascp的进程正在上载大量数据,是我尝试上载到Apple的档案大小的许多倍。我不确定100%的关联方式,但是在通过管理器或xcrun altool命令上传时,该过程始终会出现。

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

2 个答案:

答案 0 :(得分:1)

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

itunesconnect using application loader behind a firewall

Upload iOS App to AppStore using port 443

答案 1 :(得分:1)

@Tochiji指出了正确的方向,以下是解决我的问题的方法:

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

previous answers on similar issues之后,我测试了在禁用Aspera协议的情况下使用Application Loader上传到Mac App Store的过程,并且确实可以完成上传。

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

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

这样,Xcode可以检测到Aspera不是一个选项,并选择一个可以正常使用的后备协议。使用此变通办法,即使在限制性防火墙之后/通过ISP做出有趣的决定,也可以上传到Developer-ID公证服务。