在iosOpenDev之前,很多ios插件都使用theos编译开发,现在使用theos开发的人也不在少数,
theos 有自己的模板用于开发一系列的插件程序,所以在早期开发的插件中基本上都是使用theos。
怎样安装theos,网上可以搜索到很多资料,这里不再介绍了,只简单介绍下,theos的命令:
1 make package 2 make install 3 make package install 4 make clean
等等和一般的unix/linux 编译类似,第一个是打包,第二个是安装,第三个打包后安装,第四个清理。
ios开发受到很多apple的限制,插件也基本上都是建立在越狱、私有api的基础之上,开发一个插件
首先需要一个越狱的设备用于测试,而调试程序还需要在cydia中安装一些软件,下面给出一些罗列
的清单,不尽详细,如有遗漏欢迎补充:
1 #需要cydia安装 2 Core Utilities 3 Core Utilities(/bin) 4 diskdev-cmds 5 file-cmds 6 system-cmds 7 Mobileterminal 8 openSSH 9 sshpass 10 toggle ssh 11 preferencdloader 12 substrate safe mode 13 syslogd to /var/log/syslog 14 iFile
上面的列表中的一些软件,有些是必须自己安装的,有些是已经在安装cydia后自己已经安装的,大家可
以比较自己已安装的软件,添加和搜索相应的cydia源进行安装。
在安装完成以后就可以将theos编译出的deb包通过ssh安装到ios设备,进行调试了。不过在打包之前,
你需要在你的代码中加入适当的NSLog用于检测以后的运行状态和执行情况。如果你有过开发山寨机的
经验,相信你对这个过程不会陌生,这种方式就相当于程序运行的trace记录,你需要根据这些记录的信
息来判断到底是程序的哪里出了问题。
程序出错的信息保留在/var/log/syslog当中,注意,这个文件会越来越大,你需要做一段时间将它删除,
重新创建一个相应的文件,同时设置好它的访问权限,重启设备,这样你需要的trace消息才会再次被记录。
查看这些调试信息,也有多种方式,如果你想实时的查看这些信息,可以通过打开Mobileterminal 输入
tail -f /var/log/syslog 来查看,当然也可以通过ssh的方式,远程的查看,ssh远程登录的终端命令是:
ssh [email protected] (xxx.xxx.xxx.xxx是你的测试设备的ip地址,默认的密码是alpine),然后
再输入上面的命令。如果你不需要实时跟踪,你也可以把文件拷贝下来。比如通过一个叫Cyberduck.app的
鸭子。
通常来说,上面的过程并不难办,不懂的都可以通过google搜索,或者到http://stackoverflow.com提问
来获得解决方法,真正难办的是,你怎样找到自己程序的bug。
坦白的说我也没有很好的办法,但是可以告诉你的是,在程序出现bug的时候会有如下的情况发生,在这些
情况出现的时候,你应该意识到,我的程序可能有bug,需要修改:
1、springboard的触摸响应变慢
2、程序respring 到root模式
以上两个问题是比较常见的。出现第一个问题通常是因为分配的内存没有得到释放或者一些访问操作没有做
线程安全的处理等等,第二个问题基本上都是访问没有分配的内存发生的。在遇到这些情况的时候,不要着急,
翻看你的trace记录做一个大致的定位,然后再判断该怎样处理。
已经很长的文章了,这应该不是我的风格,下次讲theos的makefile。