@wangdu wrote:
需求: 如何导入子资料夹裡的category档桉在Theos Makefile
大大们上午好,小弟遇到一个资料结构在thoeos build up的问题。因为为了让整份project的资料夹结构更有分类性,所以我将一相同类型的category类得档桉放到子资料夹。其Makefile结构如下:include $(THEOS)/makefiles/common.mk ARCHS = armv7 arm64 TARGET = iphone:latest:8.1 THEOS_DEVICE_IP=127.0.0.1 THEOS_DEVICE_PORT=2222 APPLICATION_NAME = TestRobot TestRobot_FILES = main.m ZRAppDelegate.m ZRRootViewController.m AppsCool.m TestRobot_FRAMEWORKS = UIKit CoreGraphics TestRobot_PRIVATE_FRAMEWORKS = MobileInstallation TestRobot_LIBRARIES = applist TestRobot_LDFLAGS = -lsqlite3 TestRobot_CODESIGN_FLAGS = -Sentitlements.xml SUBPROJECTS += StringExtension include $(THEOS_MAKE_PATH)/application.mk after-stage:: $(ECHO_NOTHING)chmod +s $(THEOS_STAGING_DIR)/Applications/TestRobot.app/TestRobot$(ECHO_END) after-install:: install.exec "su mobile -c uicache" install.exec "killall -9 SpringBoard"
以上我尝试过两种方法,第一种是在TestRobot_FILES中直接写出子资料夹路径下的m档桉,例如StringExtension/NSString+String.m。但结果依然无法呼叫String.m裡面的method。
第二种是我去open source project of theos到处看别人的makefile怎麽写,发现是使用Subproject,然后subproject裡面又有一个makefile。这个第二个makefile我是这样写的:
APPLICATION_NAME = TestRobot TestRobot_FILES = NSString+String.m TestRobot_FRAMEWORKS = UIKit CoreGraphics TestRobot_PRIVATE_FRAMEWORKS = MobileInstallation TestRobot_LIBRARIES = applist TestRobot_LDFLAGS = -lsqlite3 TestRobot_CODESIGN_FLAGS = -Sentitlements.xml include $(THEOS_MAKE_PATH)/application.mk
以上两种方法在make package install都不会报错,但是实际在呼叫这个category的方法却会报错
+[NSString getCopyRightString]: unrecognized selector sent to class 0x1967822a8还请大大给点提示,什麽样的做法是正确撰写makefile的引用子资料夹底下的.h .m档裡的method。
感谢!
Posts: 2
Participants: 1