【问题标题】:Switching to Xcode 10 causes `UserNotifications.framekwor dyld: Library not loaded crash` for iOS9切换到 Xcode 10 会导致 iOS9 的“UserNotifications.framekwor dyld: Library not loaded crash”
【发布时间】:2023-03-04 00:56:01
【问题描述】:

我们有一个应用程序可以正常工作,UserNotification.framework 在 Xcode 9 中被链接为 required 框架。这里一切正常。

现在我们正在切换到 Xcode 10。但是将这个框架链接为 required 会导致

dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications
  Referenced from: /var/containers/Bundle/Application/1D41BD68-9B88-4D5D-B7AB-0D1C31979964/App.app/App
  Reason: image not found

如果我将它切换到optional,推送通知(通过对讲机)将不再起作用。

是什么原因?我们怎样才能解决这个问题?为什么它甚至可以在 Xcode 9 中工作?

更新 #1

使用

@import UserNotification

没有解决

更新 #2

通过像这样实际导入和使用它(在AppDelegate.m中)来修复它

UNNotificationRequest* unr = [UNNotificationRequest alloc];
unr = nil;

为什么?

这与我已经遇到的相同问题有关。

CABTMidiCentralViewController used in Storyboard only working if using code reference

更新 #3

更一般的问题

Xcode sometimes removes linked library

【问题讨论】:

  • 构建设置中始终嵌入 Swift 标准库的价值是什么?您是否尝试清除派生数据并构建文件夹?
  • 上面写着yes。是的,我已经尝试过了。 (我们的 Nevercode CI 构建也发生了同样的情况,而且总是一个空白沙箱,所以它不是缓存问题)
  • 为什么还要手动链接框架? CLANG_MODULES_AUTOLINK(自动链接框架)应默认启用,您只需 import 框架并检查代码中的可用性(您还将获得旧操作系统版本的修复提示)
  • @Alladinian 它设置为yes,但不知何故,编译器似乎优化了代码并删除了我的代码中未明确提及的一些框架。查看更新的答案

标签: ios iphone dependencies xcode10 usernotifications


【解决方案1】:

iOS 10+提供UserNotification SDK,尝试更新部署Target到iOS 10+

【讨论】:

  • 这不是一个选项
【解决方案2】:

请您尝试删除框架并重新添加它吗?我刚刚创建了这个框架在 Xcode 10 中添加的新项目,并且能够在设备中运行而没有任何错误。

【讨论】:

  • 你用过ios9设备吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 2018-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
相关资源
最近更新 更多