Я только что столкнулся с этой же проблемой.Но (по крайней мере, насколько я могу судить) только в отладочной версии моего приложения.У меня нет возможности это исправить.Но похоже, что 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 ровно в 1 строку.Это то, что только Apple должна исправить.Функция API, которая может заморозить приложение на некоторое неизвестное время, не годится.
Редактировать:
ПРИМЕЧАНИЕ. Мой запрос requestReview всегда выполняется в главном потоке.