-
-
[分享]Xcode13.4.1安装MonkeyDev遇到的几个问题及解决
-
发表于:
2023-9-24 14:59
5878
-
[分享]Xcode13.4.1安装MonkeyDev遇到的几个问题及解决
Xcode13.4.1安装MonkeyDev遇到的几个问题及解决
最近升级xcode 到13.4.1, 安装MonkeyDev遇到几个问题,解决后记录一下。首先找到一个github
MonkeyDev-for-Xcode13, 安装后遇到以下几个问题
1. libstdc*库找不到
编译时报libstdc*库找不到
解决: 网上一搜就有很多结果。见解决libstc not found
2. 闪退
Xcode 可以看到,崩溃在fishhook, 网上搜索下,发现是fishhook版本太旧。这个地方可以深入研究下,为什么会崩溃,新版修改了哪些地方。
解决: 使用最新版的fishhook
3. 每次都得clean,否则就报找不到可执行文件
报错如下图(借用的图):
网上搜到的结果是关掉如下图的设置,Generate Info.plist File 改为NO, 然后指定Info.plist File 为工程目录下的info.plist。
的确是可以,但是每次都这么改有点麻烦。既然是info.plist文件的问题,那就从从MonkeyDev打包脚本pack.sh 入手,看能不能找到一劳永逸的方法。
研究pack.sh 后发现,info.plist 是代码生成,最后会拷贝到app打包目录里
1 | cp -rf "${TARGET_INFO_PLIST}" "${BUILD_APP_PATH}/Info.plist"
|
Buid 后,对比生成的Info.plist 和打包目录里的Info.plist文件, 发现报Executable Not Found时两个文件是不一样,那说明有其他地方在pack.sh 执行完后修改了Info.plist。于是便观察编译日志,在pack.sh 执行完后有如下两条日志:
意思很明显了,Xcode 自己生成了Info.plist , 这也解释了为什么前面提到的关闭生成Info.plist选项的方法可以解决问题。除了关闭选项,我们还有另外一种选择,让Xcode 在pack.sh 执行前生成Info.plist 即可。
搜到一种解决办法
就是需要把Info.plist 当做pack.sh 的输入文件,这样Xcode就会先生成Info.plist, pack.sh 后面覆盖Info.plist,这个顺序就没问题。那就需要修改MonkeyDev的工程生成模版了。
最终解决办法
修改MonkeyDev安装包里bin目录下的 md-install,加入如下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | cp -rf Resource /fishhook $MonkeyDevPath /templates/MonkeyAppLibrary .xctemplate/
cp -rf Resource /fishhook $MonkeyDevPath /templates/MonkeyAppMac .xctemplate/
cp -rf Resource /TemplateInfo .plist $MonkeyDevPath /templates/MonkeyApp .xctemplate/
sudo cp Resource /1/ * /Applications/Xcode .app /Contents/Developer/Platforms/iPhoneOS .platform /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS .simruntime /Contents/Resources/RuntimeRoot/usr/lib/
sudo cp Resource /2/ * /Applications/Xcode .app /Contents/Developer/Platforms/MacOSX .platform /Developer/SDKs/MacOSX .sdk /usr/lib/
sudo cp Resource /3/ * /Applications/Xcode .app /Contents/Developer/Platforms/iPhoneOS .platform /Developer/SDKs/iPhoneOS .sdk /usr/lib/
sudo cp Resource /4/ * /Applications/Xcode .app /Contents/Developer/Platforms/iPhoneSimulator .platform /Developer/SDKs/iPhoneSimulator .sdk /usr/lib/
|
Resouce 目录添加相关文件
完整代码见github:
MonkeyDev-for-Xcode13.4.1
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)