SwiftShield:使用 SwiftShield 进行混淆会出错

SwiftShield: Obfuscation using SwiftShield gives error

我想使用 SwiftShield 混淆 Swift 代码。我已经使用 Cocoapods.

进行了集成

为了运行它,我在下面使用Swift终端屏蔽工具:

swiftshield -automatic -project-root /app/MyApp -automatic-project-file 
/app/MyApp/MyApp.xcworkspace -automatic-project-scheme MyApp-AppStore

获取错误:

-bash: swiftshield: command not found

我已将 swiftshield 可执行文件从 pods 复制到 /usr/local/bin 并尝试了相同的命令,但仍然出现以下错误

dyld: Library not loaded: @rpath/sourcekitd.framework/Versions/A/sourcekitd
Referenced from: /usr/local/bin/swiftshield
Reason: image not found
Abort trap: 6

可能是什么问题?如何安装 SwiftShield

问题与 Xcode 路径有关。我的机器上安装了 2 Xcode 个版本。

/Applications/Xcode10.3.1.app

/Applications/Xcode11.1.app

我删除了Xcode10.3.1.app并重命名为Xcode11.1.appXcode.app。现在问题得到解决。 https://github.com/rockbruno/swiftshield/issues/71#event-2832206369

swiftshield使用步骤(手动模式):

  1. 在桌面上下载 swiftshield 可执行文件 https://github.com/rockbruno/swiftshield/releases
  2. 命令行 - 转到桌面并授予可执行权限
sudo chmod 755 swiftshield
  1. 将 swiftshield 可执行文件移动到 /usr/bin
sudo cp swiftshield /usr/local/bin
  1. 检查是否安装正确
swiftshield --help
  1. 更改项目根文件夹的权限以重命名混淆代码
chmod -R 774 ./ProjectRootDir
  1. 使用手动模式混淆代码
swiftshield -project-root ./ProjectRootDir -tag __obf -verbose