设为首页 加入收藏

TOP

在越狱的iPhone/iPad上安装自开发环境(二)
2019-08-26 06:57:11 】 浏览:42
Tags:越狱 iPhone/iPad 安装 开发 环境
ile/LinguisticData/ /System/Library/

安装iOS SDK

虽然现在iOS已经升级到了iOS12.x,但因为社区工具链的限制,经过多次试验,感觉还是iOS 8.1的SDK最好用。我从老版本的Xcode中导出了一套,放在这里:https://pan.baidu.com/s/1fsDs8Al1DnPUwLBGCEO_3Q,下载密码:y23e。下载完成后,可以使用scp把sdk拷贝到iOS设备上,比如:

scp ios.tar.bz2 root@192.168.1.101:~/

随后在iOS的ssh命令行执行:

mkdir -p /var/stash/Developer/SDKs/  
cd /var/stash/Developer/SDKs/  
tar xjvf ~/ios.tar.bz2

此时iOS已经具备了最基本的开发能力了,我们写一个最简单的hello world来测试一下。
首先使用vim编辑一个程序文件,比如test.c:

cd ~
vim test.c

内容为:

#include<stdio.h>

int main(int argc, char **argv){
    printf("hello ios!\n");
}

编译程序:

clang -o test test.c -I /var/stash/Developer/SDKs/iPhoneOS8.1.sdk/usr/include/ -L /var/stash/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib/ -L /var/stash/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib/system/ 

因为SDK所在路径的原因,编译命令比较长,正式使用的时候可以写入到编译脚本或者Makefile。
这时候直接运行输出的结果会报错:

./test
Killed: 9

这同样是因为签名机制的原因,需要为我们编译的程序签名后再执行,就一切正常了:

ldid -S test
./test
hello ios!

安装iOS的ssh终端

现在已经可以在iOS设备上进行开发了,但事情还没有完。我们刚才所有的操作,都是在电脑的键盘、屏幕的配合下完成的所有操作,这远远算不上"自开发"。
可以使用的方法之一是在iOS中安装ssh终端程序,从而在iOS设备上直接操作自己的命令行。终端程序推荐一个免费又好用的Termius,请自行在AppStore搜索下载。
但在设置的时候你会发现,Termius根本无法连接上自己。原因是自iOS8之后,系统已经禁止App直接连接设备的1024号以下的端口了。
我们可以设置openssh的sshd服务增加一个监听端口,操作方法如下:

  1. 新建一个自启动服务文件:
vim /Library/LaunchDaemons/com.openssh.sshd2.plist

内容为:
```xml

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<dict>
    <key>Label</key>
    <string>com.openssh.sshd2</string>

    <key>Program</key>
    <string>/usr/libexec/sshd-keygen-wrapper</string>

    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/sshd</string>
        <string>-i</string>
    </array>

    <key>SessionCreate</key>
    <true/>

    <key>Sockets</key>
    <dict>
        <key>Listeners</key>
        <dict>
            <key>SockServiceName</key>
            <string>ssh2</string>
        </dict>
    </dict>

    <key>StandardErrorPath</key>
    <string>/dev/null</string>

    <key>inetdCompatibility</key>
    <dict>
        <key>Wait</key>
        <false/>
    </dict>
</dict>
</plist>
```
  1. 编辑/etc/services文件,在文件最后增加以下两行:
ssh2              10022/udp     # SSH Remote Login Protocol
ssh2              10022/tcp     # SSH Remote Login Protocol

重启后,再次激活越狱,可以在Termius中设置ssh连接到本机的10022端口了。

使用iOS的IDE

命令行工具对很多新手来讲使用起来难度还是不低的,我们还有另外一个选择。ios开发社区工程师lufinkey推出了一个集成的开发工具miniCode,能让程序员像操作电脑一样在ios开发简单的试验工程。miniCode的项目页面在:https://github.com/lufinkey/miniCode
如果你使用apt-get直接安装了iostoolchain,那简单了,直接一行代码就能安装上miniCode:

apt-get install com.brokenphysics.minicode

但如果在刚才的安装中,你不得不手工选择安装了32位的编译器,那这次还是要手工安装minicode,因为手工安装的32位编译器无法满足minicode的依赖包要求:

wget http://apt.thebigboss.org/repofiles/cydia/debs2.0/minicode_1.03.5.deb
dpkg -i --force-all minicode_1.03.5.deb

类似上面安装的iFile,minicode也是一个越狱环境运行的GUI程序,我们在命令行安装的GUI程序通常需要重启才能在iOS桌面看到,为了加快速度,我们可以只重启iOS的外壳SpringBoard:

su -c uicache mobile
killall SpringBoard



参考资料

miniCode brings Xcode to your iPhone and iPad

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇iOS崩溃日志ips文件解析 下一篇Knowledge-Reserve

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目