我正在编写与StoreKit相关的代码,当我试图将购买添加到队列时,我得到了一些相当麻烦的错误代码。
到目前为止,我已经经历了错误代码-1003和-1004,我找不到任何关于这些代码在互联网上。
运行产品请求会返回有效的产品编号,所以我不知道为什么对[[SKPaymentQueue defaultQueue] addPayment:aPayment];
的调用会因为这个未记录的问题而失败。
同样的代码也可以在一个设备上正常工作,但在另一个设备上却不能。
我的问题,到目前为止,还没有答案:
这些代码是什么意思?如何缓解此问题?为什么它们发生在购买尝试而不是产品请求中?
我所做的故障排除包括重新生成签名证书和配置文件,更改WiFi网络,清理和构建并重新安装所有相关软件和组件,这些事情都没有单独或一起帮助解决问题。
编辑:
在苹果开发者论坛上发现了关于这一点的讨论,但没有一个来自苹果的人做出回应:https://devforums.apple.com/thread/107121?tstart=75(需要iOS开发者账号才能查看)
编辑:
我今天遇到了错误代码-1001,添加到这个莫名其妙和间歇性问题的列表中。我还没有找到苹果的责任。
编辑:
我怀疑这些错误代码是随机生成的,实际上只表明沙箱已关闭。还有其他人遇到过这个问题吗?
7条答案
按热度按时间envsm3lx1#
所有错误代码都在文档(link)的“CFNetwork Errors Codes References”中
CFURL和CFURLConnection错误的小提取:
j0pj023g2#
我有类似的问题,在我的情况下似乎与网络连接:
错误域=NSURLErrorDomain Code=-1001“请求超时。”
检查事项:
对不起,不知道如何修复。只是调试这个,试图找出问题所在(-1021,-1001,-1009)
**更新:**Google搜索很好地找到了这个:
qco9c6ql3#
参见NSURLError.h定义
xwbd5t1u4#
我在我的项目中使用以下方法
然后,我只是检查错误代码,并显示警报,如果它是在列表中
但是正如你所看到的,我注解掉了我认为不符合我对“没有互联网”的定义的代码。例如代码-1012(验证失败)。您可以根据需要编辑列表。
在我的项目中,我使用它在用户名/密码输入从用户。在我看来(物理)网络连接错误可能是在基于网络的应用程序中显示警报视图的唯一原因。在任何其他情况下(例如:不正确的用户名/密码对)我更喜欢做一些自定义的用户友好的动画,或者只是重复失败的尝试再次没有任何注意的用户。特别是如果用户没有明确地发起网络呼叫。
请参考martinezdelariva提供的文档链接。
omjgkv6w5#
我发现了一个新的错误代码,上面没有记录:CFNetworkErrorCode-1022
iyzzxitl6#
我在文档中发现了这个页面,其中有一个针对NSURLErrorDomain下所有错误代码的objective-c枚举。
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/index.html#//apple_ref/doc/constant_group/URL_Loading_System_Error_Codes
xe55xuns7#
以下网站对于查找未记录或难以找到的Apple API错误代码也非常有用:
https://www.osstatus.com/
您可以只提供错误代码(如-1001或
kCFURLErrorTimedOut
),甚至是您正在使用的Framework或API(如CFNetwork
,NSURL
或AVAudioSession
),该网站将列出所有与您的搜索匹配的潜在错误,显示错误名称,相关的Framework和定义错误的头文件。