【问题标题】:SKStoreReviewController requestReview method takes time to display and app get stuck until ReviewController presentedSKStoreReviewController requestReview 方法需要时间来显示并且应用程序卡住,直到出现 ReviewController
【发布时间】:2020-09-06 08:39:12
【问题描述】:

我正在使用 StoreKit 进行应用内评级。但是每当我调用 SKStoreReviewController requestReview 方法时,应用程序就会卡住,过了一会儿,审查视图出现,然后应用程序进入正常状态。为什么会发生这种情况,是否有任何解决方案?

我还有一个问题,是否需要写评论(即)我不想打开应用商店来写评论,我希望该用户只需提交评论并留在应用中。

【问题讨论】:

  • 您找到解决方案了吗?

标签: ios storekit review


【解决方案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 秒。

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

编辑:

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

【讨论】:

    【解决方案2】:

    我调用 SKStoreReviewController requestReview 方法,应用卡住了 过了一会儿,审查视图呈现,然后应用程序恢复正常 状态。

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

    我不想打开应用商店来写评论,我想要那个用户 只需提交评论并留在应用中。

    现在,根据应用商店指南,您绝对最常使用此方法进行评论,因此您现在在提交新的和更新的应用时,没有其他可用的方法或自定义可供您使用。

    你可以看到here under section 1.1.7

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

    【讨论】:

      【解决方案3】:

      我发现当requestReview 因网络不佳而调用时,应用程序会卡住。在呈现评论视图之前,即使hitTest 方法也不会被调用。可能一种解决方案是不要调用requestReview坏网络中的方法。

      【讨论】:

        【解决方案4】:

        是的,遇到了同样的问题。是网络不好。例如,仅检查 WIFI 连接是不够的,还需要检查连接是否快速并连接到互联网。我的用户群有时会使用设备生成的本地 WIFI 来共享,例如其屏幕。但这并不意味着它会让你上网。因此,解决方案是 A) 检查 WIFI 是否可用,以及 B) 使用尽可能简单的测试来查看是否可以接触到任何东西。我最终看到我是否可以访问 captive.apple.com。不得不对超时间隔设置一个严格的限制,现在它似乎工作正常。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-20
          • 1970-01-01
          • 2012-09-23
          • 1970-01-01
          相关资源
          最近更新 更多