UNUserNotificationCenter link 错误
UNUserNotificationCenter link error
我有一个 Xcode 项目,Xcode 8.1 (8B62) 有两个目标,一个用于应用程序的付费版本,另一个用于免费版本。他们都管理远程推送通知。由于我使用新框架 UNUserNotificationCenter.framwork 对 iOS 10 进行了更改,第一个目标一切正常,第二个目标出现 link 错误。它在 iOS 9 下使用旧方法运行良好。我为两个目标做了什么:
- 功能:启用推送通知(权利已正确更新)
- 在 AppDelegate.h 中:#import
- 在 AppDelegate.m 中:使用新方法更新了代码
两个目标的代码相同。
不幸的是,对于第二个目标,我有以下错误:
架构 arm64 的未定义符号:
“_OBJC_CLASS _ $ _ UNUserNotificationCenter”,引用自:
AppDelegate.o 中的 Objc-class-ref
Ld:未找到体系结构的符号
Clang:错误:linker 命令失败,退出代码为 1(使用 -v 查看调用)
我已经做了好几次clean和clean build target文件夹,重新启动Xcode,重新启动电脑但是什么也没做。
在不同的论坛中没有找到...
欢迎提供帮助。提前谢谢你。
您没有链接到 UserNotifications.framework
。
- Select 你的目标
- 显示其"Build Phases"
- 确保
UserNotifications.framework
存在于 "Link Binary With Libraries"
如果没有:
- 点击“+”按钮添加
确保 UserNotifications.framework
存在于您的 Target > General > Linked Frameworks and Libraries
我遇到了几乎完全相同的问题,有两个目标,一个是免费版,一个是付费版。
我强烈怀疑不同之处在于,对于一个目标,"Enable modules" 是“是”(这是免费版本的目标,我在其中为 Admob 执行@import),而对于另一个目标, "Enable modules" 是 NO。就像魔术一样,我不必在 "Link Binary with Libraries" 的 "Link Binary with Libraries" 中为 "Enable modules" 为 YES 的目标添加 UserNotifications.framework。但是,对于 "Enable modules" 为 NO 的目标,我得到了
Undefined symbols for architecture arm64: "_OBJC_CLASS _ $ _ UNUserNotificationCenter
它通过手动添加 UserNotifications.framework 到 "Link Binary with Libraries" 而消失了。
所以也许规则是,当且仅当未启用模块时才需要这样做。
我有一个 Xcode 项目,Xcode 8.1 (8B62) 有两个目标,一个用于应用程序的付费版本,另一个用于免费版本。他们都管理远程推送通知。由于我使用新框架 UNUserNotificationCenter.framwork 对 iOS 10 进行了更改,第一个目标一切正常,第二个目标出现 link 错误。它在 iOS 9 下使用旧方法运行良好。我为两个目标做了什么:
- 功能:启用推送通知(权利已正确更新)
- 在 AppDelegate.h 中:#import
- 在 AppDelegate.m 中:使用新方法更新了代码
两个目标的代码相同。
不幸的是,对于第二个目标,我有以下错误:
架构 arm64 的未定义符号: “_OBJC_CLASS _ $ _ UNUserNotificationCenter”,引用自: AppDelegate.o 中的 Objc-class-ref Ld:未找到体系结构的符号 Clang:错误:linker 命令失败,退出代码为 1(使用 -v 查看调用)
我已经做了好几次clean和clean build target文件夹,重新启动Xcode,重新启动电脑但是什么也没做。
在不同的论坛中没有找到...
欢迎提供帮助。提前谢谢你。
您没有链接到 UserNotifications.framework
。
- Select 你的目标
- 显示其"Build Phases"
- 确保
UserNotifications.framework
存在于 "Link Binary With Libraries"
如果没有:
- 点击“+”按钮添加
确保 UserNotifications.framework
存在于您的 Target > General > Linked Frameworks and Libraries
我遇到了几乎完全相同的问题,有两个目标,一个是免费版,一个是付费版。
我强烈怀疑不同之处在于,对于一个目标,"Enable modules" 是“是”(这是免费版本的目标,我在其中为 Admob 执行@import),而对于另一个目标, "Enable modules" 是 NO。就像魔术一样,我不必在 "Link Binary with Libraries" 的 "Link Binary with Libraries" 中为 "Enable modules" 为 YES 的目标添加 UserNotifications.framework。但是,对于 "Enable modules" 为 NO 的目标,我得到了
Undefined symbols for architecture arm64: "_OBJC_CLASS _ $ _ UNUserNotificationCenter
它通过手动添加 UserNotifications.framework 到 "Link Binary with Libraries" 而消失了。
所以也许规则是,当且仅当未启用模块时才需要这样做。