首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振iOS RevenueCat秘密例外'NSInternalInconsistencyException‘

颤振iOS RevenueCat秘密例外'NSInternalInconsistencyException‘
EN

Stack Overflow用户
提问于 2020-10-30 09:27:25
回答 1查看 1.7K关注 0票数 1

我在控制台中发现了这个错误:

代码语言:javascript
复制
[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.

然而,这是一个间歇性的问题(即:并不总是发生)。实际上,我已经在启动时设置了Purchases实例(即:在用户身份验证并获得UID之后):

代码语言:javascript
复制
 await Purchases.setDebugLogsEnabled(isDebugEnabled);
 await Purchases.setup(kRevenueCatApiKey, appUserId: uid);

我错过了什么吗?(但大多数情况下,它是起作用的)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-31 07:17:28

我发现了问题。因此,每当getPurchaserInfo被调用时,如果Purchaser.setup还没有完成处理,那么它就会触发这个异常。感谢上面@Cesar的评论。

就我而言,我发现问题在于:

respectively.

  • The i有两个处理IAP和业务逻辑
  • 的块,一旦用户通过身份验证,它就会调用Purchases.setup。然后,在主屏幕上,业务逻辑将通过执行getPurchaserInfo.
  • The问题来检查本地数据与服务器的有效性,当internet连接不大,getPurchaserInfoPurchases.setup完成处理之前被业务逻辑组触发。

因此,我所做的解决方案是确保一旦IAP逻辑块用Purchases.setup完成后,业务逻辑块就开始初始化。例如将它们放置在等待每个进程的异步函数中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64605707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档