iOS运行时工具-cycript
把cycript的framework集成在应用中,这样可以用于实时调整UI的参数,而且不要求机器越狱。下面给出一个最最简单的例子:
-
从官网下载cycript的包,是一个压缩文件,里面包括三个cycript.framework,cycript.lib和cycript
-
xcode里面新建一个target,仅仅用最简单的singleViewApplication创建一个空白的应用,这时界面应该是一片纯洁
-
添加cycript框架以及依赖,添加cycript.framework框架是应有之义,但这个框架还需要依赖库的支持,包括JavaScriptCore和libstdc++;这里需要注意的是libstdc++是有版本要求的,必须是libstdc++.6.0.9.dylib,如下图所示
4. 设置编译选项
为了解决libstdc++的兼容问题,还需要在BuildSetting页设置"Other Linker Flags",添加-lstdc++;另外还有“C++ Standard Library”,确保选择了“Compiler Default”。如果没有选择特定的libstdc++版本并且正确配置编译器选项的花,在iOS7下链接会失败的,这一点请务必注意。
- 修改代码,打开cycript监听端口
这个最好用一个宏来包一下,比如用:CYCRIPT_ENABLE
#ifdef CYCRIPT_ENABLE
CYListenServer(8888);
#endif
这里的8888就是cycript的监听端口,为了让这句代码起作用,请把CYCRIPT_ENABLE在加入到预设宏里面。
-
运行模拟器,这里还有一个要说明,目前只支持64bit的,不能使用32bit的模拟器,这个也需要配置一下,然后选择正确的模拟器运行,应用就可以跑起来了,仍然是一片纯洁的UI
-
进入cmd界面,切换路径到cycript包的解压目录下,运行./cycript -r 127.0.0.1:8888
其中,127.0.0.1是你的模拟器或者设备地址,8888就是你代码里面配置的监听接口,如果正常,会进入cycript的REPL,这时就可以现场修改一些UI了,比如把白色背景改成红色:
此时的UI应该就变成了红色背景。
cycript的使用基本方法就是这样了,剩下的就是如何使用的问题了,这个一方面需要对iOS的框架有足够的了解,另一方面也需要积累经验