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

项目使用 Hikari遇到了

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)

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

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

已经发现 是

@available(iOS 11.0, *)

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

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

1 个赞

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

1 个赞

readme写得清清楚楚

缺失的文件拷贝是怎么的流程?重复的文件呢

我说了没有免费支持。给你们白嫖了三年还蹬鼻子上脸了?

给老子整笑了

好的,打扰了。都说了烦请了,没必要这么大戾气

[https://github.com/H----Obfuscator/H----/wiki/Compile-&-Install] 中
$ rsync -a --ignore-existing /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ ~/Library/Developer/Toolchains/H----.xctoolchain/
copy过程忽略同名文件,只更新H----.xctoolchain下不存在文件。建议仔细阅读作者的wiki

为细心看文档点赞:+1:

张总 安装了您新版的工具。编译找不到UIKit 和Foundation 框架,请问哪里需要配置啊,谢谢

看反馈是只支持Xcode11.7 开源版不再提供支持所以你只能自己降到117了

1 个赞

嗯嗯 您的私有版 怎么收费啊