项目使用Hikari进行混淆遇到的问题


#1

项目使用 ■■■■■■遇到了

Undefined symbols for architecture arm64:
  "___isOSVersionAtLeast", referenced from:
      -[JPushNotificationContent copyWithZone:] in jpush-ios-3.1.1.a(JPUSHService.o)
      -[JPushNotificationContent initWithCoder:] in jpush-ios-3.1.1.a(JPUSHService.o)
      -[JPushNotificationContent encodeWithCoder:] in jpush-ios-3.1.1.a(JPUSHService.o)
      -[JPushNotificationSound init] in jpush-ios-3.1.1.a(JPUSHService.o)
      -[JPushNotificationSound copyWithZone:] in jpush-ios-3.1.1.a(JPUSHService.o)
      -[JPushNotificationSound initWithCoder:] in jpush-ios-3.1.1.a(JPUSHService.o)
      -[JPushNotificationSound encodeWithCoder:] in jpush-ios-3.1.1.a(JPUSHService.o)
      ...
ld: symbol(s) not found for architecture arm64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

这样的错误提示…请问怎么解决呢


#2

■■■■■■.xctoolchain 是2019年01-01的release版本。
已经将 与 Xcode.xctoolchain 缺失的文件都拷贝进去了。


#3

已经发现 是

@available(iOS 11.0, *)

这个代码引起的错误, 那么请问该怎么避免呢


#4

已解决。
Google到 发现是clang版本不够。我在■■■■■■.xctoolchain里发现clang版本有7.0.0跟xcode复制过来的10.0.0, 我将7.0.0的clang版本删除后,把10.0.0的文件夹名改成7.0.0 就编译通过了


#5

libclang_rt.ios.a 这个库没link的缘故


#6

readme写得清清楚楚