반응형
Floter iOS RevenueCat 적발되지 않은 예외 'NS 내부 불일치 예외'
콘솔에서 다음 오류가 발생했습니다:
[Purchases] - INFO: There is no singleton instance. Make sure you configure Purchases before trying to get the default instance.
*** Assertion failure in +[RCCommonFunctionality getPurchaserInfoWithCompletionBlock:], RCCommonFunctionality.m:118
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'You must call setup first.'
*** First throw call stack:
(0x1a0379654 0x1a009bbcc 0x1a027c6ec 0x1a06c216c 0x1032908ac 0x1032cdf9c 0x1032cc0d4 0x105c3ae30 0x1053ef758 0x1056d58b4 0x1053f90ec 0x1053fb818 0x1a02f8134 0x1a02f7e50 0x1a02f752c 0x1a02f253c 0x1a02f1ba8 0x1aa461344 0x1a442d3e4 0x102c4069c 0x1a01798f0)
libc++abi.dylib: terminating with uncaught exception of type NSException
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x00000001a016ed88 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`__pthread_kill:
-> 0x1a016ed88 <+8>: b.lo 0x1a016eda4 ; <+36>
0x1a016ed8c <+12>: stp x29, x30, [sp, #-0x10]!
0x1a016ed90 <+16>: mov x29, sp
0x1a016ed94 <+20>: bl 0x1a014dad0 ; cerror_nocancel
Target 0: (Runner) stopped.
Lost connection to device.
그러나 이것은 간헐적인 문제이다(즉, 항상 발생하는 것은 아니다). 실제로 시작할 때 인스턴스를 설정했습니다(즉, 사용자가 인증되고 UID를 받은 직후):
await Purchases.setDebugLogsEnabled(isDebugEnabled);
await Purchases.setup(kRevenueCatApiKey, appUserId: uid);
제가 놓친 게 있나요? (그러나 대부분의 경우 작동)
문제를 발견했어요. 따라서 호출될 때마다 처리가 완료되지 않으면 이 예외가 발생합니다. 위의 @Cesar님의 댓글에 감사드립니다.
제 경우 문제는 다음과 같습니다:
- IAP와 비즈니스 로직을 각각 처리하는 두 개의 블록이 있었습니다.
- IAP는 사용자가 인증되면 바로 호출한다. 그러면 메인화면에서 비즈니스 로직이 서버로 로컬 데이터의 유효성을 확인합니다.
- 문제는 인터넷 연결이 잘 되지 않아 처리가 끝나기 전에 비즈니스 로직 블록에 의해 해고될 때 발생한다.
그래서 내가 한 해결책은 IAP 블록이 끝나면 비즈니스 로직 블록이 초기화를 시작하도록 하는 것이었다. 예를 들어 각 프로세스를 기다리는 비동기 기능에 배치하는 것이다.
제 경우에는 전화를 하지 않았습니다:
await Purchases.configure(PurchasesConfiguration(_apiKey));
반응형
'개발하자' 카테고리의 다른 글
Python poetry, 선택적 종속성 설치 (0) | 2023.10.21 |
---|---|
기존 플러터 앱/프로젝트에 플랫폼을 추가하려면 어떻게 해야 합니까? (0) | 2023.10.21 |
Flower Web - Firebase App '[DEFAULT]'가 생성되지 않음 - Firebase App.initializeApp()(앱/no-app)을 호출합니다 (0) | 2023.10.20 |
터미널에서 .ipynb 주피터 노트북을 실행하는 방법? (0) | 2023.10.19 |
Google Colab에서 Python-flask를 사용하여 로컬 호스트에 연결하시겠습니까? (0) | 2023.10.19 |