SKStoreReviewController requestReview方法需要时间来显示并且应用程序卡住,直到ReviewController出现

问题描述 投票:3回答:3

我在应用程序评级中使用StoreKit。但每当我调用SKStoreReviewController requestReview方法时,应用程序就会卡住,一段时间后审核视图显示,然后应用程序进入正常状态。为什么会发生这种情况,如果有任何解决方案呢?

我有另一个问题,是写评论是必要的(即)我不想打开应用商店写评论,我希望该用户只是提交评论并留在应用程序中。

ios storekit review
3个回答
1
投票

我刚遇到同样的问题。但是(至少据我所知)只在我的应用程序的调试版本中。我无法修复它。但似乎storekit正在尝试连接到某些Apple服务器,有时这种连接需要很长时间。

在尝试建立连接时,整个主队列被冻结。什么都没有通过。

我做了一些系统日志。在某些时候,我发现这种情况发生了:

Mar  4 18:17:37 RetepV StoreKitUIService(CFNetwork)[14436] <Notice>: Task <F9F9DB85-B649-43CC-A3D6-B8E931BF9ADA>.<27> resuming, QOS(0x19)
Mar  4 18:17:37 RetepV StoreKitUIService(CFNetwork)[14436] <Notice>: Task <F9F9DB85-B649-43CC-A3D6-B8E931BF9ADA>.<27> {strength 0, tls 4, ct 0, sub 0, sig 1, ciphers 0, bundle 1, builtin 0}
Mar  4 18:17:37 RetepV StoreKitUIService(CFNetwork)[14436] <Notice>: TIC Enabling TLS [29:0x280586a00]
Mar  4 18:17:37 RetepV StoreKitUIService(CFNetwork)[14436] <Notice>: TIC TCP Conn Start [29:0x280586a00]
Mar  4 18:17:37 RetepV StoreKitUIService(libnetwork.dylib)[14436] <Notice>: [C29 Hostname#68464834:443 tcp, url hash: 11d80191, tls] start
Mar  4 18:17:37 RetepV StoreKitUIService(libnetwork.dylib)[14436] <Notice>: nw_connection_report_state_with_handler_locked [C29] reporting state preparing
Mar  4 18:17:37 RetepV StoreKitUIService(CFNetwork)[14436] <Notice>: Task <F9F9DB85-B649-43CC-A3D6-B8E931BF9ADA>.<27> setting up Connection 29
.

然后发生了很多与连接C29无关的事情。我第一次看到C29再次弹出是31秒后:

Mar  4 18:18:08 RetepV StoreKitUIService(libnetwork.dylib)[14436] <Notice>: nw_endpoint_flow_protocol_connected [C29.1 IPv4#9566630f:443 in_progress channel-flow (satisfied)] Transport protocol connected
.

而且我已经观察到我的应用程序被冻结了大约30秒。

我不知道如何解决这个问题,它只是一行的API调用。这是只有Apple必须解决的问题。一个API函数可以将应用程序冻结一段未知的时间并不好。

编辑:

注意:我的requestReview调用始终在主线程上进行。


0
投票

我调用SKStoreReviewController requestReview方法,应用程序卡住了一段时间后审核View呈现然后应用程序进入正常状态。

在您调用requestReview的行上放置一个断点,并确保在主线程上发生这种情况。

我不想打开应用程序商店来撰写评论,我希望该用户只需提交评论并保留在应用程序中。

现在,根据应用商店指南,您绝对会将其用于评论,因此您现在无法在提交新的和更新的应用时使用其他方法或自定义。

你可以看到here under section 1.1.7

我有additional information under this answer,也可用于处理审查请求。


0
投票

我发现当requestReview用坏网络调用时应用程序会卡住。在审查视图呈现之前,即使是hitTest方法也不会被调用。可能一个解决方案就是不要在糟糕的网络中调用requestReview方法。

© www.soinside.com 2019 - 2024. All rights reserved.