cycript

导入第三方脚本或自定义脚本

  • 脚本位于/usr/lib/cycript0.9
@import com.codermjlee.mjcript
  • 放到根目录直接导入
@import mjcript

image.png

  • mk直接导入xml
<key>mj</key>
<dict>
   <key>LoadAtLaunch</key>
   <true/>
   <key>priority</key>
   <string>4</string>
   <key>url</key>
   <string>https://raw.githubusercontent.com/CoderMJLee/mjcript/master/mjcript.cy</string>
</dict>
ps -A | grep keyword
cycript # 进入cycript交互界面command+D退出
cycript -p [port或者name]
用法用途
APPIDNSBundle.mainBundle.bundleIdentifier
APPPATHmainBundle.bundlePath
APPHOMENSHomeDirectory()
APPDOCNSSearchPath
APPLIBRARYNSSearchPath
APPCACHENSSearchPath
pviews打印视图层级
pvcs打印控制器层级
rp(adr)响应链
pactions(target)actions对像和方法
UIApp[UIApplication sharedApplication]
choose(UIButton)获取当前在内存中的所有的类实例
MJAppIdapp id
MJAppPathmainBundlePath
MJDocPathdocument path
MJCachesPathcaches path
MJLoadFramework("name")加载系统动态库
MJKeyWin()keyWindow
MJRootVc()根控制器
MJFrontVc()显示在最前面的控制器
MJVcSubviews(vc)递归打印UIViewController view的层级结构
MJFrontVcSubViews递归打印最上层UIViewController view的层级结构
MJBtnTouchUpEvent(btn)获取按钮绑定的所有TouchUpInside事件的方法名
MJPointMakeCG函数
MJSizeMakeCG函数
MJRectMakeCG函数
MJChildVcs(vc)递归打印controller的层级结构
MJSubviews(view)递归打印view的层级结构
MJIsString(str)判断是否为字符串 "str" @"str"
MJIsArray(arr)判断是否为数组 []、@[]
MJIsNumber(num)判断是否为数字 666 @666
MJSubclasses(clsname, reg)打印所有的子类
MJInstanceMethods(clsname, reg)打印所有的对象方法
MJInstanceMethodNames(clsname, reg)打印所有的对象方法名字
MJClassMethods(clsname, reg)打印所有的类方法
MJClassMethodNames(clsname, reg)打印所有的类方法名字
MJIvars(obj, reg)/*obj打印所有的成员变量
MJIvarNames(obj, reg)打印所有的成员变量名字