如何在沙盒内正确测试苹果应用内购买?
How does one properly test within the sandbox for apple in-app purchases?
我有一个全新的应用程序,尚未发布。我在代码中添加了应用内购买,完成了在“应用商店连接”中将产品添加到应用的过程,并在那里添加了一个沙盒用户。
为了测试,我将 phone 插入 mac,然后从 xcode (13.3.1) 运行 我的 [=27] 上的应用程序=].应用程序 运行s,我看到产品出现在应用程序中。当我点击“购买”按钮时,我立即得到一个对话框来输入凭据。我输入沙盒凭据,然后收到另一个警告,提示“Apple ID 验证,打开设置以继续使用...登录”
我这样做了,然后它弹出一个 2 因素对话框,说明代码已发送,但在通过短信将代码发送到同一设备后,该对话框就消失了。没有地方可以输入该代码,就好像它知道“哦,代码正在发送到需要它的设备”。几秒钟后,我最终进入了“设置”->“应用商店”,但在那里我看不到任何有用的东西。
然后我回到应用程序,w/o在应用程序中做任何事情我立即在调试控制台中收到消息:
Payment Queue Error: Optional(Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x28160ee80 {Error Domain=ASDErrorDomain Code=500 "Unhandled exception" UserInfo={NSUnderlyingError=0x2816dc150 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed" UserInfo={NSMultipleUnderlyingErrorsKey=(
"Error Domain=AMSErrorDomain Code=2 \"An unknown error occurred. Please try again.\" UserInfo={NSLocalizedDescription=An unknown error occurred. Please try again.}",
"Error Domain=AMSServerErrorDomain Code=-5000 \"(null)\" UserInfo={failureType=-5000, m-allowed=false, pings=(\n), cancel-purchase-batch=true, customerMessage=The Apple\U00a0ID you entered couldn\U2019t be found or your password was incorrect. Please try again.}"
), NSLocalizedDescription=Authentication Failed, NSLocalizedFailureReason=The authentication failed.}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}}})
我知道帐户凭据是正确的(尝试了几次并验证了它们)。就好像我并没有真正点击“沙盒”用户数据库,更像是生产。但是我读到的所有内容都说当我 运行 这样的事情时我应该处于开发模式(基于 )
有没有更精确的方法来确定我是否处于开发模式?也许某些设置被调整了或什么的。
对不起,我的错。我在“普通用户”部分创建了测试帐户,而不是在“App store connect”的“沙盒用户”部分(这就是我收到身份验证错误的原因)。
使用真正的沙盒测试员帐户一切正常。
我有一个全新的应用程序,尚未发布。我在代码中添加了应用内购买,完成了在“应用商店连接”中将产品添加到应用的过程,并在那里添加了一个沙盒用户。
为了测试,我将 phone 插入 mac,然后从 xcode (13.3.1) 运行 我的 [=27] 上的应用程序=].应用程序 运行s,我看到产品出现在应用程序中。当我点击“购买”按钮时,我立即得到一个对话框来输入凭据。我输入沙盒凭据,然后收到另一个警告,提示“Apple ID 验证,打开设置以继续使用...登录”
我这样做了,然后它弹出一个 2 因素对话框,说明代码已发送,但在通过短信将代码发送到同一设备后,该对话框就消失了。没有地方可以输入该代码,就好像它知道“哦,代码正在发送到需要它的设备”。几秒钟后,我最终进入了“设置”->“应用商店”,但在那里我看不到任何有用的东西。
然后我回到应用程序,w/o在应用程序中做任何事情我立即在调试控制台中收到消息:
Payment Queue Error: Optional(Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x28160ee80 {Error Domain=ASDErrorDomain Code=500 "Unhandled exception" UserInfo={NSUnderlyingError=0x2816dc150 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed" UserInfo={NSMultipleUnderlyingErrorsKey=(
"Error Domain=AMSErrorDomain Code=2 \"An unknown error occurred. Please try again.\" UserInfo={NSLocalizedDescription=An unknown error occurred. Please try again.}",
"Error Domain=AMSServerErrorDomain Code=-5000 \"(null)\" UserInfo={failureType=-5000, m-allowed=false, pings=(\n), cancel-purchase-batch=true, customerMessage=The Apple\U00a0ID you entered couldn\U2019t be found or your password was incorrect. Please try again.}"
), NSLocalizedDescription=Authentication Failed, NSLocalizedFailureReason=The authentication failed.}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}}})
我知道帐户凭据是正确的(尝试了几次并验证了它们)。就好像我并没有真正点击“沙盒”用户数据库,更像是生产。但是我读到的所有内容都说当我 运行 这样的事情时我应该处于开发模式(基于
有没有更精确的方法来确定我是否处于开发模式?也许某些设置被调整了或什么的。
对不起,我的错。我在“普通用户”部分创建了测试帐户,而不是在“App store connect”的“沙盒用户”部分(这就是我收到身份验证错误的原因)。
使用真正的沙盒测试员帐户一切正常。