theos编译错误,小白求助

之前遇到一个问题,就是在Tweak.xm 文件中import其他类的头文件,在hook的方法中使用该类的方法,在make的时候总提示找不到类的引用。如果不使用引用的类,make的时候是可以通过的。
今天又遇到这个问题。请大牛帮忙指导一下。

流程如下
1.使用/opt/theos/bin/nic.pl 创建模板
2.修改Tweak.xm文件,添加%hook,hook AppDelegate 的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 这个方法。
3.在Tweak.xm文件 #import “test1.h”
4.在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中添加 NSLog(@“test’s string is:%@”, [test1 getString]);
5.进入目录使用“make package”编译
遇到问题
Undefined symbols for architecture armv7:
OBJC_CLASS$_test1”, referenced from:
objc-class-ref in Tweak.xm.88c57b9a.o
ld: symbol(s) not found for architecture armv7

我的tweak打包如下
不知道是我哪的设置不对还是操作的不对

importTest.zip (1.42 KB)

importTest.zip (1.42 KB)

你都没有实现test1啊……先好好学学Objective-C吧!

我用的test1的h文件是模拟dump出来的别人的h文件,就像书中第二个实战中192页,import了WAMessage.h文件后,就可以操作WAMessage对象一样,我这里就是想按书中那个例子操作test1的一个方法,但是我这里不能make了,求指导

如果test1是另一个executable中的类,那你需要动态获取这个类。把

NSLog(@"test's string is:%@", [test1 getString]);

改成

NSLog(@"test's string is:%@", %c(test1) getString]);

就可以了

哦哦,这样,非常感谢非常感谢

已经make成功了,并调用成功了,感谢 snakeninny