Theos 工程

一、tweak 工程

  1、创建步骤

    a) terminal cd 到想要存放项目的目录下

    b) 按图步骤完成即可

Theos 工程_第1张图片

  

二、工程文件描述

  1、control 

    记录 deb 包管理系统所需的基本信息。

 

  2、appInfo.plist 描述 tweak 的作用范围,以下可混合使用

    a)  bubdles,tweak 控制的应用 bundle id

Theos 工程_第2张图片

    b) classed, tweak 控制的 class

    c) executables tweak 控制的

  注意:如果 Filter 下的类别超过一个,需要加上 "Mode String Any"

 

  3、makefile  

    a) ProjectName = Tweak.xm,多个文件的时候改为 "= Tweakxm New.mm Objc.m"  

    b) ProjectName_FRAMEWORKS = UIKit 所依赖的框架

    c) 指定 ios sdk 版本,安装要求的版本

      下面两段意思是: 开发框架为 armv7,采用 7.1 版本的 sdk,且发布要求在 ios 7.1以上版本。    

ARCHS = armv7
TARGET = iphone:7.1:7.1

    d) 安装的时候需要指定设备的 ip address,故在最上面加上

THEOS_DEVICE_IP = 192.168.2.117

Theos 工程_第3张图片 

    

  4、Tweak.xm

    a) %hook

%hook ClassName

// 要 hook 的方法名

%end

  b) %log, 多个表达的时候加上 ","

%log((NSString*)@"abc", (NSString*)@"efg");

  c) %orig:调用原来的方法

  d) %group: 将 hook 分组, 如果不指定默认是 %group _ungrouped

%group name
% hook className

%end
%end

  e) %init(groupName): 不带参数等价于 %init(_ungrouped)

  f) %ctor {}: tweak 的构造完成初始化工作。

%ctor {
    %init;  // 如果此处没有初始化 _ungrouped,则所有属于 _ungrouped 的 hook 将不工作。
    %init(custom group);
}

  Theos 工程_第4张图片

  

 三、部署和安装

  a) cd 到项目目录

  b) make:编译操作

    多次后会有提示  "make[2]: Nothing to be done for ",执行 "$ make clean"

 

  c) make package:打包

    出现错误: 

Making stage for tweak FirstTweak...

/Applications/Xcode.app/Contents/Developer/usr/bin/make package requires you to have a layout/ directory in the project root, containing the basic package structure, or a control file in the project root describing the package.

make: *** [internal-package] Error 1

    原因:文件路径含有空格

  d) 在 makefile 中填写好设备的 ip address,并 ssh 连接设备 "$ ssh [email protected]" 再执行 "make package install" 。

四、清理编译打包产生的工程文件

$ make clean

$ rm -rf ./obj

$ rm -rf /Users/...../tweak project/_

  

你可能感兴趣的:(Theos 工程)