1.问题描述:
iOS10的通知采用了新的API,包含在UserNotifications框架中。我尝试在公司的工程项目中使用该api,导入#import <UserNotifications/UserNotifications.h>时编译没有任何问题,但是一旦用到该框架中定义的类名时,编译就会立马报错,不管是模拟器还是真机均报错。但是奇怪的是,当我新建立一个工程,却没有任何问题。(两个项目的Development Target均设置为8.0)
使用的IDE为Xcode8.
2.相关代码:(只要用到了UserNotifications框架中定义的类,编译后就会报错)
UNUserNotificationCenter *notiCenter = [UNUserNotificationCenter currentNotificationCenter];
3.报错信息:(架构问题)
// 模拟器时报错:
_OBJC_CLASS_$_UNTextInputNotificationAction", referenced from:
objc-class-ref in AppDelegate.o
// 真机时报错:
_OBJC_CLASS_$_UNUserNotificationCenter", referenced from:
objc-class-ref in AppDelegate.o
4.相关截图
// 报错关键代码
// 真机编译报错截图
// 模拟器编译报错截图
5.尝试方案:
1)将工程的Development Target依次改成8.0、9.0、10.0,报错依旧。
2)新建一个工程,编译和运行均完全正常。
3)可能是公司的工程之前配置了什么导致无法使用,目前在网上没有找到解决方案。
Masalah telah diselesaikan Memandangkan projek lama dibuat menggunakan xcode7, tiada UserNotifications.framework secara lalai. Anda hanya perlu mengimportnya secara manual.
Pengarang, saya juga menukar pilihan selepas mengimportnya secara manual Selepas menambah laluan kepala carian, saya masih mendapat ralat ld: unexpected token: !tapi-tbd-v2 file '/Users/zhou/Desktop/Unnamed Folder. /LankeProject/LankeProject/Lib /UserNotifications.framework/UserNotifications.tbd' untuk seni bina x86_64
dentang: ralat: arahan pemaut gagal dengan kod keluar 1 (gunakan -v untuk melihat seruan)