SKStoreReviewController requestReview 在 iOS 14 上不起作用

Posted

技术标签:

【中文标题】SKStoreReviewController requestReview 在 iOS 14 上不起作用【英文标题】:SKStoreReviewController requestReview not working on iOS 14 【发布时间】:2021-04-15 19:27:43 【问题描述】:

我已经使用此代码实现了本机评论提示

if (@available(ios 10.3, *)) 
  [SKStoreReviewController requestReview];
  resolve(@YES);

但它在 iOS 14.4 上的真实 iPhone X 上的调试中并未显示。 我在设备的日志中看到了这个错误(在通用控制台而不是 Xcode):

No "UIViewServicePermittedViewControllerClasses" array in View Service bundle "com.apple.ios.StoreKitUIService"'s Info.plist. Cannot check validity of request for class "ServiceReviewViewController". This will become failure in a future build.

它在 iOS 12.5 上的 iPhone 6 上显示得非常好。 (提交按钮显示为灰色)。

我注意到自 iOS 14 以来requestReview 是deprecated,所以我尝试使用传递场景的新方法:

if (@available(iOS 14.0, *)) 
  [SKStoreReviewController requestReviewInScene:[UIApplication.sharedApplication.connectedScenes allObjects][0]];
 else if (@available(iOS 10.3, *)) 
  [SKStoreReviewController requestReview];

设备日志中出现完全相同的错误。 我确保[UIApplication.sharedApplication.connectedScenes allObjects][0] 不为零。

以前有人见过这个问题吗?

【问题讨论】:

【参考方案1】:

经过几天的调查,我们终于发现,如果我们在加载某些资源时删除显示为初始屏幕的模式窗口,则会显示审核提示。

这似乎使 Storekit 的逻辑在可见窗口上显示提示被绊倒了。

更新

似乎罪魁祸首是这条特定的行:

window.windowLevel = modalWindow.windowLevel + 1

【讨论】:

以上是关于SKStoreReviewController requestReview 在 iOS 14 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

InAppReview : SKStoreReviewController 太慢了

隐藏在键盘下的 SKStoreReviewController 按钮

SKStoreReviewController 对撰写评论有帮助吗?

控制 SKStoreReviewController 显示频率

使用 SKStoreProductViewController 或 SKStoreReviewController 进行应用评分/评论?

只有在最近没有崩溃时才显示SKStoreReviewController?