鉴于现在在百度里能搜到的关于ios开发的东西,我先讲为什么写这篇博客:开发越狱ios可以不用mac os!!
以前就想给iphone写些程序玩玩,但是网上总说需要一台苹果电脑才行,为此我曾在PC上安装苹果系统,或者是用虚拟机,结果极其不爽而放弃。收到微软关于visual studio2015rc消息的邮件,其中一条可以用c#开发ios,于是忍不住下在下来安装,结果坑爹的需要连接一台mac(我要有mac我还用c#?)。这条路断了之后看cydia里的开发者专区,去看看http://iphonedevwiki.net这个网站,里面对越狱设备开发进行了很详细的讲解。
什么是theos
Theos is a cross-platform suite of development tools for managing, developing, and deploying iOS software without the use of Xcode. It is an important tool for people building extensions (tweaks) for jailbroken iOS; most extension developers use Theos.
第一是不需要Xcode,第二是给越狱的iOS开发。所以你只需要有一台越狱的ios设备(iphone,itouch,ipad)就可以进行了。
可用的操作系统:
- MAC OS(我没有,有的可以直接用xcode也不用折腾了)
- Linux(如果在国外社区看看,其实很多大神都用这个,能找到的文档也多)
- IOS(直接用你的iphone进行编程,很有极客的感觉啊,而且因为iphone设备种类就这几种,搭建简单而且不容易出错!)
- WINDOWS(其实是用的cygwin来模拟Linux的系统,所以网站中有些地方直接省略了windows,但是你完全可以跟着linux做)
环境搭建(安装theos)
我首先是在iphone6上成功安装了theos并且成功进行了编译打包应用,所以建议如果电脑上半天弄不好的就用你的iphone就行。
可以查看原文,很详细
1.安装cygwin以及相应的开发工具
下载cygwin,点击setup-x86.exe。
选择一个下载地址
搜索git,ca-certificates,make,python,perl,openssh这几个,注意点一下skip然后看到版本号就说明下一步会安装了。
点击next安装完成。
2.安装theos
打开cygwin terminal
从github上下载theos:
git clone -b windows http://github.com/coolstar/theos.git && mkdir -p theos/toolchain/window
git clone -b master https://github.com/coolstar/iOSToolchain4Win.git theos/toolchain/windows/iphone
这样theos就准备好了
3.下载部署sdk
1.首先创建文件夹来放置sdk.
mkdir theos/sdks cd theos/sdks
2.下载sdk
网上有很多地方可以下载sdk,推荐从苹果官网下载xcode,然后从中提取sdk。(需要apple id)下载下来的是dmg格式的文件,可以用TransMac打开。
存放sdk的路径:xcode.dmg/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
将sdk导出iPhoneOS.sdk。将其存放于theos下面的sdks文件下,(我的是E:\cygwin\home\Administrator\theos\sdks),注意要修改其文件名,否则theos找不到sdks,比如我的修改 为iPhoneOS8.4.sdk
不想通过苹果官网的可以点这个链接直接下sdk。需要注意就是如果用一般的解压软件解压可能会在使用的时候出现错误,所以推荐使用cygwin里的tar来解压
如果cygwin没有安装的话,点击下载tar,将下载的文件解压到sdk相同的目录下,然后就可以直接使用tar
tar xjvf iPhoneOS8.1.sdk.tbz2
使用theos
1.创建项目
在cygwin中,输入:
~/theos/bin/nic.pl
根据指引将会在当前目录中创建一个项目
2.make项目
在你的project目录下面:
make package
如果没有出错的话,将会在project目录下面生成一个.deb包,那么就成功地构建好了一个windows下开发越狱ios的环境了!!!
我遇到的问题
前面都没有出错,在构建project的时候,出现了问题
ld: warning: ignoring file /.../theos/lib/libsubstrate.dylib, missing required architecture armXXX in file /.../theos/lib/libsubstrate.dylib (2 slices) Undefined symbols for architecture armXXX: ... ld: symbol(s) not found for architecture armXXX
因为这个库是存在的,但是版本老了。
但是换了sdks8.4之后又出现了其他问题,限于篇幅就以后再解决吧。