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