如何使用 Xcode 6.1 分发测试版 Mac App Store 应用程序?
Posted
技术标签:
【中文标题】如何使用 Xcode 6.1 分发测试版 Mac App Store 应用程序?【英文标题】:How can I distribute a beta Mac App Store app using Xcode 6.1? 【发布时间】:2014-11-21 21:57:36 【问题描述】:我正在开发一个使用 StoreKit 进行应用内购买的 Mac 应用。启动时,它会检查 appStoreReceiptURL 是否存在,如果不存在则退出代码 173,如 Apple 的此技术说明中所述:
https://developer.apple.com/library/ios/technotes/tn2259/_index.html
我已经使用“导出为 Mac 应用程序”来导出应用程序,就像我在过去多次分发给我们的 beta 测试人员所做的那样。通常以代码 173 退出导致 OS X 显示“登录以从 App Store 下载”对话框;这在上周晚些时候还在工作。但是,对于我今天使用 Xcode 6.1 导出的应用程序,它并没有这样做。过去我一直使用 Xcode 5.1 进行导出。
还有其他人看到这种行为吗?我应该做些什么不同的事情来确保测试人员会看到应用商店登录提示?
编辑:在我正在构建的目标的构建设置中,我选择了 Mac 开发人员代码签名身份和自动配置文件。存档过程的日志显示它使用了预期的 Mac Developer 签名身份。然后在管理器窗口中,我选择“导出为 Mac 应用程序”将其导出到磁盘,然后通过在 Finder 窗口中双击它的图标来启动该应用程序。这是我双击后在控制台中看到的日志(第一行是应用程序在退出前输出的日志消息,代码为 173):
2014-11-21 3:58:43.146 PM MyApp[4144]: to get sandbox receipt, the app must be launched from outside xcode
2014-11-21 3:58:43.148 PM com.apple.xpc.launchd[1]: (com.mycompany.MyApp.337424[4144]) Service exited with abnormal code: 173
2014-11-21 3:58:43.151 PM storeassetd[398]: AssetServiceDelegate: Accepting new connection <NSXPCConnection: 0x7f8d61f2f990> connection from pid 378 with interface <AssetServiceInterface: 0x7f8d606f6cf0> (PID 378)
2014-11-21 3:58:43.151 PM storeassetd[398]: addOperation <FetchReceiptOperation: 0x7f8d61f560a0>name = '(null)'
我应该补充一点,我正在 Yosemite 上测试导出的 Mac 应用程序。
编辑:我还使用 Receigen 生成收据检查代码,当我使用它生成的代码时看到相同的结果。
【问题讨论】:
不,我还没弄明白。 【参考方案1】:即使看起来一切正常,有时storeagent
守护程序也会出错。这可能会导致:
重新开始的好方法是杀死storeagent
:
打开 Activity Monitor 应用程序并终止 storeagent 进程(原始提示来自 Apple Developer Forums)。
重试启动您的应用程序。应检索正确的收据。
或者您可以打开终端窗口并启动命令sudo pkill -f storeagent
打开终端窗口并启动命令sudo pkill -f CommerceKit
【讨论】:
【参考方案2】:从管理器中导出应用程序时,选择 Export as a Mac Application
而不是 Export a Developer ID-signed Application
- 这为我解决了问题。
【讨论】:
是的!我一直试图让应用商店登录提示在代码 173 之后弹出至少一个小时,这终于为我做到了。谢谢!以上是关于如何使用 Xcode 6.1 分发测试版 Mac App Store 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X Yosemite 上下载 XCode 6.1 时遇到问题
当设备连接由 iOS 8.3 供电时,设备在 Xcode 6.1 中不合格