将多个tweak 打包成一个`*.deb`

需求: 将多个 dylibbin 打包到一个*.deb

例如我开发了几个模块

  1. tomatoa.dylib tomatoa.plist // hook app a
  2. tomatob.dylib tomatob.dylib.plist // hook app b
  3. libtomato.dylib // 公用的dylib 想放在 usr/lib 中方便调用
  4. tomatod // 命令行程序, 想放在 usr/bin

另外还想配置 tomatod一直执行,类似下面这样

想把这些东西都一次性打包到一个 tomato.dylib, 我应该怎么做呢?

求助各位大佬

?????????????
打包进dylib里?把几个tweak和一个daemon打包进dylib?
???????????????

写错了, 应该是tomato.deb

makefile里直接加就好了

TWEAK_NAME = tomatoa
....
TWEAK_NAME = tomatob
...
LIB_NAME = libtomato
...
TOOL_NAME = tomatod

大佬牛皮

这样呀, 那整个项目结构呢?

文件应该怎么放比较合理一点

TWEAK_NAME = tomatoa
tomatoa = tomatoa/*.m

TWEAK_NAME = tomatob
tomatob = tomatob/*.m

这样么?

所有的都放在一个文件夹下面, 然后每个tweak 自己的文件夹下有自己的 makefile是咩?

一个makefile可以包含多个工程,文件你爱咋放咋放,make的时候会全部编译,最后打包到一个deb

:star_struck: OK~

请问你的Makefile是怎么写的?

include $(THEOS)/makefiles/common.mk

TWEAK_NAME = A
...

TWEAK_NAME = B
...

TWEAK_NAME = C
...

TWEAK_NAME = D
...

include $(THEOS_MAKE_PATH)/tweak.mk

我这样写只会编译最后一个…

可以参考SimulateTouch

SimulateTouch它是tweak、library、tool,那样写没问题
我这个多tweak不能这样写呢 :joy:

刚试了一下,这样的写法的确是只会编译最后一个。
你是想tweak 两个进程吗?

如果是hook多个进程产生的,可以用%group区分不同进程进行操作

我是想让不同App的tweak一起打包,但对应的tweak只会注入相应的App(TWEAK_NAME.plist里面声明的Bundles)
如果是写在同一个tweak工程里面,会注入到所有的App里

自带的模板可能满足不了你, 你可能需要自己写makefile了

似乎是只能这样了