这是我请求审核的代码:
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
}
else{
print("Review is not available with in the app")
}
在开发模式下它工作正常并且我能够像这样获得弹出窗口: 但在从应用程序商店下载的 Live 应用程序中,应用程序不会显示此评级弹出窗口,并且如果用户点击评级按钮也不会发生任何情况。
来自文档:
尽管您应该在应用程序的用户体验流程中有意义时调用此方法,但评级/评论请求视图的实际显示受 App Store 政策的约束。由于此方法可能会或可能不会显示警报,不适合调用它来响应按钮点击或其他用户操作。
(突出显示我的)
如果您有一个像您在问题中所说的评级按钮,您不应该指望它会显示提示。
仅在以下情况下才会显示提示:
如果您必须在用户交互时请求审核,则必须使用如下代码将用户引导至应用程序的 App Store 页面(取自请求 App Store 审核示例代码):
@IBAction func requestReviewManually() {
// Note: Replace the XXXXXXXXXX below with the App Store ID for your app
// You can find the App Store ID in your app's product URL
guard let writeReviewURL = URL(string: "https://itunes.apple.com/app/idXXXXXXXXXX?action=write-review")
else { fatalError("Expected a valid URL") }
UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil)
}
Andy 的回答很好,但只是补充说,还有一些原因可能导致它在调用时不会出现:
requestReviewInScene
:提供错误的 UIWindowScene,或改为 UIScene。如果您有评分按钮,则需要使用
?action=write-review
,如上面安迪的建议。
如果您通过用户操作触发它但仍然没有看到它,则可能是上述问题之一。
我编写了一份指南,涵盖了这些限制,并包含一个可以解决大多数限制的帮助程序类:https://riticmoments.io/blog/skstorereviewcontroller_guide_with_examples