我正在开发一个使用StoreKit进行应用程序购买的苹果应用程序。在发布时,它会检查appStoreReceiptURL是否存在,如果不存在,则退出并返回代码173,如以下苹果技术报告中所述:
https://developer.apple.com/library/ios/technotes/tn2259/_index.html
我已经使用“导出为Mac应用程序”导出了该应用程序,就像我过去多次将其分发给我们的测试版测试人员一样。正常情况下,带着173代码退出会导致OS显示一个“登录到从应用商店下载”对话框;直到上周晚些时候,这还在起作用。然而,对于我今天使用Xcode6.1导出的应用程序,它不能做到这一点。在过去,我一直使用Xcode5.1进行输出。
还有其他人看到这种行为吗?有没有什么我应该做的不同的事情,以确保测试人员将看到应用商店登录提示?
编辑:在我正在构建的目标的构建设置中,我已经选择了Mac开发人员代码签名身份和自动配置配置文件。存档过程的日志显示它使用了预期的Mac开发人员签名身份。然后在管理器窗口中,我选择“导出为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生成了收据检查代码,当我使用它生成的代码时,会看到相同的结果。
发布于 2014-12-11 05:58:28
即使看起来一切正常,有时storeagent守护进程也会出错。这可能会导致:
the receipt
中检索到错误的版本
一个重新开始的好方法是杀死storeagent
OS X 10.6到10.9上的
打开Activity Monitor应用程序并终止storeagent进程(最初的技巧来自Apple Developer论坛)。重试启动您的应用程序。应该检索正确的收据。或者,您可以打开终端窗口并启动命令sudo pkill -f storeagent
OS X 10.10上的
打开终端窗口并启动命令sudo pkill -f CommerceKit
发布于 2015-02-18 12:26:49
当从管理器中导出应用程序时,选择Export as a Mac Application而不是Export a Developer ID-signed Application -它为我解决了这个问题。
https://stackoverflow.com/questions/27071066
复制相似问题