1. 安装Xcode与Command Line Tools
一般来说,iOS开发者都会安装Xcode,其中附带了Command Line Tools。如果还没有安装Xcode,请到Mac AppStore免费下载。如果安装了多个Xcode,需要使用xcode-select命令指定一个活动Xcode,即Theos默认使用的Xcode。假设安装了3个Xcode,并将它们分别命名为Xcode1.app、Xcode2.app和Xcode3.app,若要指定Xcode3为活动Xcode,则运行如下命令:
snakeninnys-MacBook:~ snakeninny$ sudo xcode-select -s /Applications/Xcode3.app/Contents/Developer
2. 下载Theos
从GitHub上下载Theos,操作如下:
snakeninnysiMac:~ snakeninny$ export THEOS=/opt/theos
snakeninnysiMac:~ snakeninny$ sudo git clone git://github.com/DHowett/theos.git $THEOS
Password:
Cloning into '/opt/theos'...
remote: Counting objects: 4116, done.
remote: Total 4116 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4116/4116), 913.55 KiB | 15.00 KiB/s, done.
Resolving deltas: 100% (2063/2063), done.
Checking connectivity... done
3. 配置ldid
ldid是专门用来签名iOS可执行文件的工具,用以在越狱iOS中取代Xcode自带的codesign。从http://joedj.net/ldid下载ldid,把它放在“/opt/theos/bin/”下,然后用以下命令赋予它可执行权限:
snakeninnysiMac:~ snakeninny$ sudo chmod 777 /opt/theos/bin/ldid
4. 配置CydiaSubstrate
首先运行Theos的自动化配置脚本,操作如下:
snakeninnysiMac:~ snakeninny$ sudo /opt/theos/bin/bootstrap.sh substrate
Password:
Bootstrapping CydiaSubstrate...
Compiling iPhoneOS CydiaSubstrate stub... default target?
failed, what?
Compiling native CydiaSubstrate stub...
Generating substrate.h header...
此处会遇到Theos的一个bug,它无法自动生成一个有效的libsubstrate.dylib文件,需要手动操作。解决方法很简单:首先在Cydia中搜索安装“CydiaSubstrate”(如图3-2所示)。
然后用iFunBox或scp等方式将iOS上
的“/Library/Frameworks/CydiaSubstrate.framework/ CydiaSubstrate”拷贝到OSX中,将其重命名为libsubstrate.dylib后放到“/opt/theos/lib/libsubstrate. dylib”中,替换掉无效的文件即可。
5. 配置dpkg-deb
deb是越狱开发安装包的标准格式,dpkg-deb是一个用于操作deb文件的工具,有了这个工具,Theos才能正确地把工程打包成为deb文件。
从https://raw.githubusercontent.com/DHowett/dm.pl/master/dm.pl下载dm.pl,将其重命名为dpkg-deb后,放到“/opt/theos/bin/”目录下,然后用以下命令赋予其可执行权限:
snakeninnysiMac:~ snakeninny$ sudo chmod 777 /opt/theos/bin/dpkg-deb
6. 配置Theos NIC templates
Theos NIC templates内置了5种Theos工程类型的模板,方便创建多样的Theos工程。除此以外,还可以从https://github.com/DHowett/theos-nic-templates/archive/master.zip获取额外的5种模板,下载后将解压得到的5个.tar文件复制到“/opt/theos/templates/iphone/”下即可。