首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 11与bundleProxy !=使用UNUserNotificationCenter时没有错误

iOS 11与bundleProxy !=使用UNUserNotificationCenter时没有错误
EN

Stack Overflow用户
提问于 2017-10-05 22:00:48
回答 3查看 4.7K关注 0票数 14

对于某些用户来说,我们的应用程序突然开始在iOS 11 / 11.0.1 / 11.0.2 / 11.1.1 / 11.2.2上崩溃,代码如下:

代码语言:javascript
复制
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

我们在didFinishLaunchingWithOptions上看到了这个。坠机报告说:

代码语言:javascript
复制
Fatal Exception: NSInternalInconsistencyException
Invalid parameter not satisfying: bundleProxy != nil

Fatal Exception: NSInternalInconsistencyException
0  CoreFoundation                 0x1869b3d38 __exceptionPreprocess
1  libobjc.A.dylib                0x185ec8528 objc_exception_throw
2  CoreFoundation                 0x1869b3c0c +[NSException raise:format:]
3  Foundation                     0x187342c24 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
4  UserNotifications              0x18fcc973c -[UNUserNotificationCenter initWithBundleProxy:]
5  UserNotifications              0x18fcc950c __53+[UNUserNotificationCenter currentNotificationCenter]_block_invoke
6  libdispatch.dylib              0x186339048 _dispatch_client_callout
7  libdispatch.dylib              0x18633c710 dispatch_once_f$VARIANT$mp
8  UserNotifications              0x18fcc94ac +[UNUserNotificationCenter currentNotificationCenter]

它显然来自iOS。还有其他人也经历过同样的错误吗?知道怎么回事吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-29 15:27:57

我不确定这是否适用于每个人,但是我已经为我的用例找到了答案。我创建了一个iOS应用程序使用的框架。该框架使用UNUserNotificationCenter设置警报。由于某种原因,当在框架内使用这段代码时,“bundle”没有被正确初始化。它有时起作用,有时不起作用。从事物的声音来看,这个bundleProxy是通知框架依赖的某种代理。因为代码是从框架内部执行的,所以在运行时可能找不到这个包,系统返回零。通常情况下,当我尝试从框架加载资源时,如果捆绑包位置不正确,我就会遇到这个问题。

无论如何,我的解决方案是在启动时将对[UNUserNotificationCenter currentNotificationCenter]的引用存储在应用程序的委托中,然后将其传递给任何想要使用它的方法。当应用程序完成启动时,如果调用代码是应用程序本身的二进制代码,则该proxy似乎已正确加载。这个好像帮我修好了。

票数 6
EN

Stack Overflow用户

发布于 2019-04-23 03:27:14

OneSignal也经历过这种情况。他们的解决办法是检查当前的进程名,如果其中包含IBDesignable,则尽早返回。这对我也有用。

GitHub问题

修正提交

票数 0
EN

Stack Overflow用户

发布于 2021-04-27 05:22:56

对于那些在这里使用PacketTunnelProvider NetworkExtension的人来说,如果您从stopTunnelWithReason调用它,可能会发生这种情况。相反,先获得currentNotificationCenter并保存它。

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

https://stackoverflow.com/questions/46595434

复制
相关文章

相似问题

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