新的 iOS 14 StoreKit 不推荐使用 SKStoreReviewController.requestReview() 好的,我创建了请求 iOS 14 反馈的方法
func rateApp() {
var ud = UserDefaults.standard.integer(forKey: "rew")
NSLog("rew show count is %d", ud)
if(ud >= 1)
{
if #available(iOS 14.0, *) {
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
NSLog("rateappios14")
}
} else {
// Fallback on earlier versions
SKStoreReviewController.requestReview()
NSLog("rateappotherios")
}
}
ud = ud + 1
UserDefaults.standard.setValue(ud, forKey: "rew")
UserDefaults.standard.synchronize()
}
我在从 Xcode 部署的设备上测试了它,在模拟器上一切正常。但后来我上传到 App Store 并下载它,然后审查请求完全不起作用。在 TestFlight 中也不起作用。
if #available(iOS 14.0, *) {
if let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}
} else {
SKStoreReviewController.requestReview()
}
这可能是几个问题之一:
如果需要它始终显示,您可以使用深层链接替代方案,即打开指向您的 App Store 页面的链接,并附加
?action=write-review
。
我编写了一份指南,涵盖了这些限制,包含可解决大多数限制的代码,并提供了与上面类似的替代方案:https://riticmoments.io/blog/skstorereviewcontroller_guide_with_examples