首页
社区
课程
招聘
[分享]Xcode13.4.1安装MonkeyDev遇到的几个问题及解决
发表于: 2023-9-24 14:59 5878

[分享]Xcode13.4.1安装MonkeyDev遇到的几个问题及解决

2023-9-24 14:59
5878

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
# 用新版fishhook 替换原来的fishhook, 解决闪退问题
# /opt/MonkeyDev/templates/MonkeyAppLibrary.xctemplate/fishhook
# /opt/MonkeyDev/templates/MonkeyAppMac.xctemplate/fishhook
cp -rf Resource/fishhook   $MonkeyDevPath/templates/MonkeyAppLibrary.xctemplate/
cp -rf Resource/fishhook   $MonkeyDevPath/templates/MonkeyAppMac.xctemplate/
 
 
# 解决每次编译都要clean,否则就找不到可执行文件的问题
cp -rf Resource/TemplateInfo.plist   $MonkeyDevPath/templates/MonkeyApp.xctemplate/
 
# 拷贝libstdc*库,解决找不到库的问题
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期)

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 611
活跃值: (778)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以看下 https://github.com/lemon4ex/EasyDev
2023-9-25 22:14
0
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
vsasm 可以看下 https://github.com/lemon4ex/EasyDev
只能说牛
2023-9-26 18:01
0
游客
登录 | 注册 方可回帖
返回
//