zoukankan      html  css  js  c++  java
  • 越狱开发:用iosOpenDev配置越狱开发环境 编写第一个hello world-b

    上网搜索越狱环境搭建,查到iosOpenDev软件,是个很方便的编写插件,而且可以直接用Xcode创建的工具,便开始着手学习如何去安装

    集合了网上的方法后,我安装的时候发现:

    1.作者最后更新的时间是四个月前,而且并未适配Xcode 6之后的版本,所以在当前OS X 10.11.1 和Xcode 7 下造成了很多问题

    尤其是大量的安装失败却得不到解答方法,很是让我懊恼

    2.同时需要适配的安装工具也已经严重过期,比如theos,ldid等工具

    所以根据自己的摸索,附上一篇如何安装iosOpenDev的流程:

    注意:请尽量尝试在翻墙后再进行安装,有一些网址也许会被国内网络拒绝访问

    1.首先安装MacPorts软件,从官网根据mac本身的版本下载

     
    下载后安装,进度条在安装时会停止一段时间,耐心等待
     
     
    2.安装完MacPorts后打开终端
     
    输入 sudo port -v self update 更新MacPorts到最新版本,继续耐心等待
     
     
    3.更新完MacPorts后安装DPKG文件,在终端输入sudo port -f install dpkg
     
    该文件用于打包.deb文件,用时也比较长
     
    上面三部需要耗费挺长时间,网速慢的时候一两小时也是有可能的
     
    4.安装those工具,参考http://iphonedevwiki.net/index.php/Theos/Setup提供的安装方法
     
    1. 打开终端.
    2. 选择theos的安装目录,官方建议放在默认的 /opt/theos.然后执行
      export THEOS=/opt/theos
      • //如果你选择的是用户之上的目录,需要加上sudo指令,sudo export THEOS=/opt/theos
    3. 下载theos工具  (特别感谢网名为逍遥笛子 的热心朋友 提供的分支,由于原theos最新的版本不兼容iosopendev,所以用15年的老版本,地址如下(已经得到该名朋友的同意))
      • git clone -b stableversion https://github.com/haorenqq/theos/ $THEOS
    4. 下载ldid工具到those的bin目录下:
      4.1 执行./make.sh方法之前,需要注意
      //默认ldid文件夹是不带openssl文件夹的,但是make.sh中却又#include <openssl/err.h>等之类的openssl类
      下载附件,解压,将附件中的openssl 文件夹放到 ldid 文件夹下
      //然后make.sh中的代码默认是只匹配Xcode5-1-1的名称的,如果你的xcode不是这个名称,则会报错,所以下面的方法是修改make.ssh文件默认的是Xcode这个名称
      然后再打开make.sh,找到sudo xcode-select --switch /Applications/Xcode5-**.app这一行,将Xcode5**.app改为Xcode.app,下面还有一行也一样要修改(或者直接将附件的make.sh放入ldid文件夹下替换同名文件)

      git clone git://git.saurik.com/ldid.git
      cd ldid
      git submodule update --init
      ./make.sh
      cp -f ./ldid $THEOS/bin/ldid
     
    5.接下来安装IOSOpenDev,在官网下载最新的1.6.2版本,在安装界面按Command+L,查看安装日志
     
    5.1作者仅仅维护了Xcode5以及之前的版本,之后的版本有较大的变动
     
    打开上面附件里面的Specifications文件夹,里面应该有8个文件,iPhoneOS开头的四个文件放到/应用程序/Xcode/Content/Developer/Platforms/IphoneOS.platform/Developer/Library/Xcode/Specifications文件夹下(如果没有,请自己创建一个),iPhone Simulator 开头的另外四个文件放入/应用程序/Xcode/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications文件夹下(如果没有,请同样创建一个)。
    另外在/应用程序/Xcode/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/文件夹下创建usr文件夹,usr文件夹下再创建一个名为bin的文件夹
     
    作者的这个程序基于C编写,且只有简单的If else循环,所以如果不创建相对应的文件夹,它是不会自己创建的,只会报错,然后显示安装错误
    6.,这篇文章只是给出了除了作者的错误之外的相对的解决办法,另外最好按照作者那篇帖子(https://github.com/kokoabim/iOSOpenDev/wiki/Troubleshoot),比如在终端执行system_profiler SPDeveloperToolsDataType,拷贝Location:后面的信息,再复制到sudo code-select -switch location:后面的信息,执行代码,再安装iosOpenDev,另外还有另一个Xcode Lincese的问题,都在作者的帖子中有解答
     
    之后安装就不会报错,目前进行到这一步,如有进展,再更新
     
    12.25 第一个helloworld
    编写完成后,按照http://blog.csdn.net/lynjay/article/details/7936488这个帖子,从5.开始配置iosOpenDev的环境
    //来自源作者lynjay的帖子
    在终端执行~/.bash_profile~/.bash_login or ~/.profile.这3个文件你在你电脑中看是否能找到,我是找到~/.bash_profile这个文件,然后设置下面的环境变量
    • export iOSOpenDevPath=/opt/iOSOpenDev
    • export iOSOpenDevDevice= 非固定值,用户需要先在已经越狱的iphone上点击设置-网络-查看当前网络的IP地址,填入
    • export PATH=/opt/iOSOpenDev:$PATH
    • export PATH=/opt/local/bin:$PATH
    • export PATH=/opt/local/sbin:$PATH 
    接下来给SSH添加签名,在Mac的Terminal里输入”iosod sshkey -h <设备IP>”,中间问你是否继续,当然yes.如果期间失败了重新试下.我失败了好几次.可能是设备屏幕关闭会断网(我的iPod Touch总断,iPad就不会).这样就不用密码也可以登陆设备SSH了.
     
    之后可以打开Xcode
    选择iosOpenDev-Logos Tweak,创建一个新的应用
     
    创建后会出现一个.xm文件一个.mm文件,不要编辑.mm文件
     
    因为还不能正常编译,不要担心

    xm文件中有这样一段说明

    #error iOSOpenDev post-project creation from template requirements (remove these lines after completed) --

    Link to libsubstrate.dylib:

    (1) go to TARGETS > Build Phases > Link Binary With Libraries and add /opt/iOSOpenDev/lib/libsubstrate.dylib

    (2) remove these lines from *.xm files (not *.mm files as they're automatically generated from *.xm files)

     

    意思是要把libsubstrate.dylib添加到工程中(在安装好的/opt/iOSOpenDev/lib 目录下),然后把xm中的内容清空。mm文件的内容会根据xm文件中的内容编译后自动生成。

    之后清空.xm文件的内容,输入下列内容

     

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. #import <UIKit/UIKit.h>  
    2.   
    3. %hook SpringBoard  
    4.   
    5. - (void)applicationDidFinishLaunching:(id)application{  
    6.     %orig;  
    7.       
    8.     UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Welcome" message:@"HelloWorld!" delegate:nil cancelButtonTitle:@"Thanks" otherButtonTitles:nil];  
    9.     [alert show];  
    10. }  
    11. %end  

    在已经越狱的手机上打开Cydia,搜索下列插件
    如果搜索不到,打开软件源-编辑 删除BigBos和ModMyi,再回到首页,点击更多软件源,重新添加这两个即可搜索到下列插件
    Core Utilities
    Core Utilities(/bin)
    diskdev-cmds
    file-cmds
    system-cmds
    Mobileterminal
    openSSH
    sshpass
    toggle ssh
    preferencdloader
    substrate safe mode
    syslogd to /var/log/syslog
    再在Xcode中的Target的Build Settings中的Code Signing中,改为Don't Code Sign

    最后打开Target-Build Settings 找到iOSOpenDevDevice选项,填入越狱手机的本地ip

    点击Product- Build For -Profiling启动应用

    手机会重启,之后在锁屏界面就会弹出AlertView


    其他问题:

    1.可能会碰到真机连接后无法编译的现象,修改build setting中的iOS Deployment Target为你的设备对应的版本即可

  • 相关阅读:
    JavaScript操作符instanceof揭秘
    Linux打开txt文件乱码的解决方法
    Working copy locked run svn cleanup not work
    poj 2299 UltraQuickSort 归并排序求解逆序对
    poj 2312 Battle City 优先队列+bfs 或 记忆化广搜
    poj2352 stars 树状数组
    poj 2286 The Rotation Game 迭代加深
    hdu 1800 Flying to the Mars
    poj 3038 Children of the Candy Corn bfs dfs
    hdu 1983 Kaitou Kid The Phantom Thief (2) DFS + BFS
  • 原文地址:https://www.cnblogs.com/isItOk/p/5645292.html
Copyright © 2011-2022 走看看