我有一个基于Xcode编写和维护的基于Swift的简单应用程序,现在我想通过Apple的Developer-ID“公证”服务运行该软件进行分发。但是,每当我尝试上载该应用程序的存档版本时,Xcode都会卡在该过程的"Uploading package to Apple Services..."
步骤中。
我的过程如下:
-在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。
答案 0 :(得分:1)
如果您的防火墙阻止除HTTPS之外的其他端口进行传输,则以下答案可能会对您有所帮助。
答案 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公证服务。