iOS运行时工具-cycript

把cycript的framework集成在应用中,这样可以用于实时调整UI的参数,而且不要求机器越狱。下面给出一个最最简单的例子:

  1. 从官网下载cycript的包,是一个压缩文件,里面包括三个cycript.framework,cycript.lib和cycript

  2. xcode里面新建一个target,仅仅用最简单的singleViewApplication创建一个空白的应用,这时界面应该是一片纯洁

  3. 添加cycript框架以及依赖,添加cycript.framework框架是应有之义,但这个框架还需要依赖库的支持,包括JavaScriptCore和libstdc++;这里需要注意的是libstdc++是有版本要求的,必须是libstdc++.6.0.9.dylib,如下图所示

iOS运行时工具-cycript
4. 设置编译选项

为了解决libstdc++的兼容问题,还需要在BuildSetting页设置"Other Linker Flags",添加-lstdc++;另外还有“C++ Standard Library”,确保选择了“Compiler Default”。如果没有选择特定的libstdc++版本并且正确配置编译器选项的花,在iOS7下链接会失败的,这一点请务必注意。

  1. 修改代码,打开cycript监听端口

这个最好用一个宏来包一下,比如用:CYCRIPT_ENABLE

#ifdef CYCRIPT_ENABLE
CYListenServer(8888);
#endif
这里的8888就是cycript的监听端口,为了让这句代码起作用,请把CYCRIPT_ENABLE在加入到预设宏里面。

  1. 运行模拟器,这里还有一个要说明,目前只支持64bit的,不能使用32bit的模拟器,这个也需要配置一下,然后选择正确的模拟器运行,应用就可以跑起来了,仍然是一片纯洁的UI

  2. 进入cmd界面,切换路径到cycript包的解压目录下,运行./cycript -r 127.0.0.1:8888

其中,127.0.0.1是你的模拟器或者设备地址,8888就是你代码里面配置的监听接口,如果正常,会进入cycript的REPL,这时就可以现场修改一些UI了,比如把白色背景改成红色:

iOS运行时工具-cycript
此时的UI应该就变成了红色背景。

cycript的使用基本方法就是这样了,剩下的就是如何使用的问题了,这个一方面需要对iOS的框架有足够的了解,另一方面也需要积累经验
iOS运行时工具-cycript