一、问题描述
/usr/lib/libstdc++.dylib', '/usr/lib/libc++.dylib'
error: Build input files cannot be found: '/usr/lib/libstdc++.dylib', '/usr/lib/libc++.dylib'. Did you forget to declare these files as outputs of any script phases or custom build rules which produce them? (in target 'HookProjectDylib' from project 'HookProject')
解决办法:
这是一个比较常见的问题,之前升级Xcode 13 和 14的时候都会遇到,解决办法是复制对应的dylib文件到指定目录就可以了,但是升级到Xcode 15后,你会发现并对应的目录不存在了。对于这个问题,可以在MonkeyDev库的issue中找到答案,对于libc++.dylib的依赖,是因为旧版的fishhook需要,我只需要引用最新版的fishhook,并去掉libc++.dylib的依赖就可以了。
具体操作: 找到dylib对应的Target,选择build settings,找到Other Linker Flags,去掉红框中的依赖
二、SDK does not contain ‘libarclite’
SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the minimum deployment target
这个问题,从给出的提示中也可以看出,需要增加依赖的最低版本。
具体操作: 找到App和对应dylib的Target,选择Build Settings, 找到iOS Deployment Target,改为iOS 12.0(测试改到9.0以上就可以)
三、 cpu type/subtype in slice (arm64e.old) does not match fat header (arm64e) in '/Users/lxj/Downloads/HookProject/libsubstitute.dylib'
先查看他支持的架构
提取有效架构
lipo libsubstitute.dylib -thin arm64 -output libsubstitute_arm64.dylib
在查看提取后架构
在编译就成功了
参考链接
- https://github.com/AloneMonkey/MonkeyDev/issues/349
- https://github.com/AloneMonkey/MonkeyDev/issues/350