Theos hook 失效

首先确认的是手机本身是没有问题的,因为直接安装之前生成好的deb 包是可以正常使用的
所以怀疑是theos 环境出现了问题
opt/theos/ 目录下的文件全都删除,重新安装theos,hook代码依旧不生效

在 tweak.x 文件中加入下边的代码

__attribute__((constructor))
static void onLoad() {
    NSLog(@"zzuchook dylib load succeeded");
}

程序确实没有加载
将自己的文件夹发送给别人,执行

make clean 
make package 

之后,将deb 包发给我,直接安装这个deb 包是可以使用的,正常hook
查看gcc 的版本和别人的一样

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx- 
include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1    
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

所以请问问题应该出在了哪里
现在可以肯定的是手机没有问题,代码没有问题,出问题的是我的环境,但是具体哪里出问题就比较懵逼了


补充一点,使用monkeydev 直接打包是可以正常hook 被打包的程序的

1 确认编译的库的架构是否和手机兼容
2 clang 手动编译dylib,然后将dylib和plist丢插件目录,看下可不可以正常用

我记得有两个版本Xcode的arm64e产物是不互相兼容的

没有链接其他库,只有Tweak.x 文件中有这一小块代码

#import <Foundation/Foundation.h>
__attribute__((constructor))
static void onLoad() {
    NSLog(@"testhook dylib load succeeded");
}

这个log 打印不出来
安装hook插件之后每次重启进程之后会打印这个信息

我卸载了xcode12.4 ,重新安装了xcode11.5 依然是这个错误,makefile 中设置

ARCHS = arm64e arm64 

解决不了

您能告诉我手动将 Tweak.x 编译成 dylib 的具体命令吗

xcode建一个动态库framework工程 然后把你代码丢进去编译 然后把xxxx.framework/xxxx 改名为你要dylib 和对应的plist放插件目录测