tweak工程内部文件简述

cd到tweak工程文件夹   ls -l  查看工程目录




1,Makefile
Makefile中包含工程中用到的文件、框架、库等信息

include $(THEOS)/makefiles/common.mk     固定写法,不可改
TWEAK_NAME = TweakDemo   tweak的名字,与control中的Name相对应,不可改
TweakDemo_FILES = Tweak.xm       包含的源文件(不包括头文件),多个文件用都好隔开
(TweakDemo_FILES = Tweak.xm,xxx.m, xxx.mm)
include $(THEOS_MAKE_PATH)/tweak.mk   Theos的工程类型(创建时所选择的模板类型, 可按需求更改
after-install::
     install.exec "killall -9 SwizzlingMethodDemo"   安装后的说明(tweak安装后,杀掉原工程进程并加载对应的dylib)

除此之外,我们还需完善Makefile文件信息

ARCHS = armv7 arm64   配置所兼容的框架
TARGET = iphone:latest:8.0     限制可安装版本 8.0以上
TWEAKDEMO_FRAMEWORKS = UIKit CoreAudio CoreTelephony   导入使用的framework,多个空格隔开
TWEAKDEMO_PRIVATE_FRAMEWORKS = ChatKit IMCore  导入的私有framework
TWEAKDEMO_LDFLAGS = -lz -lsqlite3.0 -dylib1.0     添加链接的动态库

2, Tweak.xm
Tweak.xm是放置hook代码的源文件

%hook为hook函数,修改指定的函数
%log  打印信息
%orig  调用工程原函数或者修改原函数参数并调用,不写不调用
%group  将%hook分组,以%end结尾  必须配合%init才能生效
%init  初始化某个分组
%ctor  在该方法调用%init方法  不写默认初始化%group_ungrouped  不需要以%end结尾
%new  在%hook内部给一个现有的class添加新的函数

%group SwizzlingGroup (分组名)

%hook SwizzlingMethodDemo(类名)

%new   //新添加的方法
- (void)logMessage
{
          NSLog (@"1234567890");
}
%end

- (void) _menuButtonDown: (NSString) down  (被hook函数名)
{
          %log ((NSString *)@"IOSRE", (NSString)@"Debug");
          %orig ( @"aaaaaaa" );   //调用原工程 _menuButtonDown方法参数为aaaaaaa
}

%ctor
{
          %init(SwizzlingGroup);
}

%end
%end

3, TweakDemo.plist
作用与app中的Info.plist相同

4, control
放置deb包的基本信息  (包名,工程名,版本号,设备架构,维护人,deb包内容简述等)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值