xcode8 - 旧工程要适配iOS10,使用UserNotifications框架中的类时编译报错,但是新建工程时则没有任何问题。为什么?
伊谢尔伦
伊谢尔伦 2017-04-18 09:42:35
0
2
482

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)可能是公司的工程之前配置了什么导致无法使用,目前在网上没有找到解决方案。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(2)
Ty80

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)

我的工程是在xcode7.3上运行的 
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan