前言
突然想在 Mac 上进行越狱开发了,于是想起了当年无数次安装失败的 iOSOpenDev,下定决心,在网上搜索了大量资料,终于在 macOS + Xcode 8.1 下部署好了 iOSOpenDev 的开发环境。
过程中出现了各种坑,比如作者官网的下载链接已经失效了,要去 Gihub 上找 issues,部分文件有问题,Idid的安装等… 在谷歌的帮助下,一路披荆斩棘,总结出来这篇教程。
准备安装
1. 确保已经关闭了 macOS 的 SIP 可参考安装 转移DS.Store 的软件教程
2. 请确保你已经安装好了 brew,并brew install dpkg
3. 安装旧版 theos(新版不支持 iOSOpenDev)
(1)在 ~/.bash_profile
里添加 $THEOS = /opt/theos
(2)执行命令
sudo git clone -b stableversion https://github.com/haorenqq/theos/ $THEOS
(3)安装 ldid
下载编译好的 ldid 放到 /opt/iOSOpenDev/bin
目录下
(3)下载 Specifications.zip 并解压,把 iPhoneOS 开头的四个文件放到(如果没有请自己创建一个)。
/Applications/Xcode.app/Content/Developer/Platforms/IphoneOS.platform/Developer/Library/Xcode/Specifications
iPhone Simulator 开头的另外四个文件放入下面的目录下(如果没有,请同样创建一个)。
/Applications/Xcode.app/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications
(4)在下面的目录下创建 usr 文件夹,usr 文件夹下创建 bin 文件夹
/Applications/Xcode.app/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/
创建好的目录应该是
/Applications/Xcode.app/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin
开始安装
1. iOSOpenDev 1.6-2.dmg(使用本站资源服务器下载)
2. 安装过程中请参考下这篇帖子:
https://github.com/kokoabim/iOSOpenDev/wiki/Troubleshoot 容易出现的问题在这里都有解释。
3.安装成功后,找到 ~/.bash_profile 添加环境变量
export iOSOpenDevPath=/opt/iOSOpenDev export iOSOpenDevDevice= 真机调试的ip地址 export PATH=/opt/iOSOpenDev:$PATH export PATH=/opt/local/bin:$PATH export PATH=/opt/local/sbin:$PATH
4. 给 ssh 添加签名,在终端里执行 /opt/iOSOpenDev/bin/iosod $iOSOpenDevDevice
,按照步骤进行签名,签名后要记得先再终端里连接一遍,输入秘钥,登陆成功后再尝试编译。
Hello World
请在测试机上确保如下插件已被安装
Core Utilities
Core Utilities(/bin)
diskdev-cmds
file-cmds
system-cmds
Mobileterminal
openSSH
sshpass
preferencdloader
substrate safe mode
syslogd to /var/log/syslog
打开 Xcode 选择 Logos Tweak,创建一个项目
创建好后会出现一个 .xm 和 .mm 文件,不要编辑 .mm 文件
从 /opt/iOSOpenDev/lib
下找到 libsubstrate.dylib
,在 TARGETS > Build Phases > Link Binary With Libraries 下将 libsubstrate.dylib
拖进去
在 TARGETS > Build Settings 找到iOSOpenDevDevice选项,填入测试机的 WIFI IP,准备工作就完成了~
下面你需要添加 UIKit.framework
,清空 .xm 的内容输入
#import <UIKit/UIKit.h>
%hook SpringBoard
- (void)applicationDidFinishLaunching:(id)application{
%orig;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome"
message:@"Hello World"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
%end
然后菜单里点击 Product> Build For > Profiling,等待测试机注销,最后 AlertView 将会弹出,部署工作也就全部完成了
由于本文是在部署完毕后写的,可能会有问题,如果不能顺利安装,请在下方留言~
参考资料
- http://blog.csdn.net/u013583789/article/details/50396747
- http://www.cnblogs.com/xiongwj0910/archive/2012/09/03/2668362.html
- http://blog.csdn.net/lynjay/article/details/7936488
- https://github.com/kokoabim/iOSOpenDev/wiki/Troubleshoot
- http://iphonedevwiki.net/index.php/Ldid
少年很不错啊
@ny: 工作日职业为学生,不折腾其他东西。感谢您的支持🙂