zoukankan
html css js c++ java
从iOSOpenDev 转向MonkeyDev
转向原因
1、iOSOpenDev已经许久没有维护且不支持最新版的theos
2、iOSOpenDev所依赖的theos库不是git里的标准theos,标准theos 地址是https://github.com/haorenqq/theos/
标准的theos库是 https://github.com/theos/theos.git
3、MonkeyDev更加方便,编译直接通过xcode进行应用调试
搭建MonkeyDev开发环境
参考monkey先生的博客
地址1
地址2
创建MonkeyApp项目
a、生成的项目中有两个对象,一个目标app、一个是要注入的动态链接库,且项目默认“目标app”没有主动链接过当前dylib,所以需加入下图操作,并在最终发布应用时选择“Gerneric iOS Device”兼容多个arm类型
b、项目中默认会集成Reveal 和 cycript这两个插件,但我目的不在于此,且发布出去的应用不应包含这两个东东,so 移除掉;编辑MonkeyDev的命令文件 “/opt/MonkeyDev/Tools/pack.sh”,注释 掉此行:cp -rf "$FRAMEWORKS_TO_INJECT_PATH" "$TARGET_APP_FRAMEWORKS_PATH"
并从项目中移除这几处:
c、项目编译生成的动态链接库里会默认链接 libsubstitute.dylib【ps:对于已越狱的设备,系统默认安装了mobilesubstrate动态库,提供一个系统级的入侵管道,所有的tweak都可以依赖它来进行开发。而对于没有越狱的手机,我们需要向目标app注入libsubstrate.dylib动态库,才能使程序在运行时加载我们编写的动态库】
但之前采用iOSOpenDev之时生成的动态库没有这个东西,且程序并没有出错,故因此也把libsubstitute.dylib给移除掉,减小库和应用包的大小;
substitute在这里主要给*.xm 和 *.mm这两个文件使用,貌似monkey先生的文章里没有提及这两个文件,不知道为嘛他的MonkeyDev模板还产生了,果断拿掉,移除一下引用:
并将动态库工程的“Other Linker Flags”中的“-lsubstrate”拿掉
d、添加第三方库或是文件时,只需要“Add to Targets”到动态库工程就行,目标app工程不要添加
查看全文
相关阅读:
bzoj1297: [SCOI2009]迷路
bzoj1875: [SDOI2009]HH去散步
bzoj2466: [中山市选2009]树
bzoj1770: [Usaco2009 Nov]lights 燈
BZOJ 1965: [Ahoi2005]SHUFFLE 洗牌( 数论 )
BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )
BZOJ 1006: [HNOI2008]神奇的国度( MCS )
BZOJ 1925: [Sdoi2010]地精部落( dp )
BestCoder Round #57 (div.2)
BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
原文地址:https://www.cnblogs.com/cnsec/p/11515756.html
最新文章
B树就想到这个
红黑树-算法大神的博客-以及java多线程酷炫的知识
龙儿经理嘴上经常说的B树
(研) int(*p)[10]; int *p[10]; int(*)[10]; 之间的区别
JSON字符串-赋张最初接触后台从map转json的方法
lua三目运算符
lua math库
使用SubstanceDesign和Unity插件ShaderForge制作风格化火焰
Unity GL画折线
unity小地图上的动态图标
热门文章
只要逻辑跟数据分离,数据不使用继承结构,基本上就不会写出不可维护的代码
unity鼠标拖动物体旋转
unity换装系统+网格合并
游戏优化---------基于团队的持续优化之道
运行时用AnimatorOverrideController动态加载动画片段
hdu2222:Keywords Search
bzoj1030: [JSOI2007]文本生成器
bzoj3238: [Ahoi2013]差异
bzoj1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
bzoj2875: [Noi2012]随机数生成器
Copyright © 2011-2022 走看看