我的应用程序没有主动提示用户对App Store上的应用程序进行评级,它只包含一个"评价此应用程序"应用设置中的页面。因此,用户可以手动访问该页面,只有在他点击Do Rate
按钮后,他才会被重定向到App Store。
当然,SKStoreReviewController
的用户界面比将用户重定向到App Store应用程序留下他的评论要简单得多。所以我只是将对App Store URL的调用更改为[SKStoreReviewController requestReview]
。
这在我的所有测试中都能正常工作:每次点击查看按钮时都会显示评级对话框。
但是我想知道这将如何在实际的调试环境之外表现。根据Apple文档,[SKStoreReviewController requestReview]
仅限于每个应用每年 3个提示。
[SKStoreReviewController requestReview]
)会没有效果还是会有某种反馈?[SKStoreReviewController requestReview]
或者是否必须手动将用户发送到商店?[SKStoreReviewController requestReview]
来电之间的时间间隔是否有限制?连续三天使用它与每4个月使用它一样合理吗?答案 0 :(得分:5)
虽然我不能引用官方回复(并且我无法保证这些发现能保持多久),但我只花了一些时间对逻辑进行逆向工程,这看起来非常简单。 / p>
当您请求审核时,StoreKit会向com.apple.itunesstored.xpc
发送一条消息,该消息负责执行和跟踪限制。如果尚未达到请求限制,则XPC流程会跟踪请求并使用应用审核令牌进行响应。否则,它以零响应。
收到XPC响应后,StoreKit会检查令牌是否为零。如果它是非零的,则SKStoreReviewViewController
被实例化并呈现在内部UIWindow
中。否则,将以静默方式忽略该请求。没有可以收听的回调或通知,虽然XPC处理程序中有一些代码用于记录错误,但我没有在XPC过程中看到任何错误来源。
就限制背后的逻辑而言,它非常简单。必须满足两个条件:
在过去365天内,不论申请版本如何,都不得提示用户超过三次。
如果用户在之前的请求中对应用进行了评分,则系统不会提示用户,除非:
虽然Apple建议在请求另一个提示之前几周等待进一步参与,但目前没有任何逻辑可以阻止您在三分钟内三次提示用户。这些提示将计入接下来365天的所有三个提示。
StoreKit会默默地忽略任何多余的请求,您无法确定何时发生这种情况。
虽然您可以自己跟踪您的请求以了解何时需要重定向到App Store而不是请求审核,但Apple可能会在任何时间点更改逻辑。无法以编程方式查询您的限制。
每年三次提示意味着在过去365天内有三次提示,无论应用版本如何。 (更新应用程序会清除"但不会再次提示"要求。)
两次请求审核调用之间没有间隔限制。
根据您的情况,我建议您使用新的App Store网址,将用户直接带到评论合成屏幕。这样可以更加一致地工作,同时仍然遵循HIG指南(因为它是对按钮按下的响应)。
要自动打开用户可以在App Store中撰写评论的页面,请将查询参数action = write-review附加到您的产品网址。