macOS应用程序公证在上传过程中卡住了

3
我有一个基于Swift的简单macOS应用程序,使用Xcode编写和维护,现在我想通过苹果的开发者ID“公证”服务进行分发。但是,每当我尝试上传应用程序的存档构建时,Xcode会在过程的“将软件包上传到Apple服务”步骤卡住。

This is where Xcode gets stuck for extended periods of time

我的流程如下:
- 在Xcode中选择“Build -> Archive”
- 在Xcode的组织器中:Distribute App -> Developer ID -> Upload -> Automatic Code Signing
- 现在问题出现在上传过程中。
我已经尝试对一个简单的样例应用程序进行非正式认证,其中没有超出标准Swift macOS项目模板所包含的代码,该应用程序也卡在了这一步。 (因此,这应该消除了我的项目本身的代码/二进制问题。)
我还尝试使用“xcrun altool”通过命令将我的二进制文件上传到认证服务:“xcrun altool --notarize-app --primary-bundle-id“com.me.myapp”--username“myuser@memyselfandi”--password“mypasswd”--file myfile.zip”。结果类似:该命令没有输出并挂起。
每次我试图上传到苹果服务时,我也注意到一个名为ascp的进程正在上传大量数据,远远超过我正在尝试上传到苹果的归档文件的大小。我不确定这可能是如何相关的,但当通过组织者或xcrun altool命令上传时,该进程总是出现。

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

2个回答

5

@Tochiji指出正确方向后,我找到了解决问题的方法:

看起来我的网络或ISP在上传到公证服务时使用的传输协议上存在问题。通过使用Little Snitch查看ascp的流量,我得出这个结论。程序正在从多个.apple.com域上传和下载数据包,使用端口33001。然而,它从未“走得更远”,上传一直停滞不前,导致我认为我的ISP不支持运行在33001端口上的"Aspera"协议。

根据类似问题的之前答案,我尝试禁用Aspera协议使用应用加载器(Application Loader)上传到Mac App Store,并成功上传。

问题是:应用加载器不支持上传到开发者ID公证系统,而Xcode内置的上传工具没有与应用加载器相同的选项。

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

这样,Xcode就可以检测到Aspera不是一个选项,并选择一个可行的备选协议。使用这个解决方法,即使在限制性防火墙/具有做出有趣决策的ISP后面,也可以上传到开发者ID公证服务。


2

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