通过构build阶段脚本将iOS应用程序部署到/从XCode应用程序? (越狱)

我正在开发一个Cydia应用程序。 它已经在发展了一段时间,直到最近我还没有遇到任何问题,几个月后我恢复了发展。 自从我上一次工作以来,有一些事情发生了变化:

  1. 升级到狮子
  2. 移动到Xcode 4
  3. 更新到我的iPad上的4.3.5,iPhone到5.0

从我所做的研究中,我得出的结论是,我的旧设置有一些“不寻常”的东西。 我发现configuration的应用程序被放在“沙盒目录” /private/var/mobile/Applications ,并且可以读取整个文件系统的系统/Applications进入/Applications 。 我想从使用更新的工具和狮子,我打破了给我全系统读取权限。 所以,我需要有关如何让Xcode直接部署到非沙盒系统目录的信息。

虽然有一些警告。 我不想使用安装程序,我希望Xcode在“构build和运行”后自动执行。 我也希望能够连接debugging器,以便我可以查看控制台。

任何有这方面经验的人都可以教我如何使用构build阶段脚本来做必要的魔术来获取签名的二进制文件,并在每次构build之后自动部署? 我想这确实是可能的,因为控制台输出是一个很有价值的工具,所以开发像Cydia本身的应用程序将非常困难。

感谢您的帮助!

我添加了一个脚本作为自定义构build阶段。 脚本签署应用程序,创build一个包,将其复制到手机并安装它。

构build阶段是使用/ bin / sh“运行脚本”,并添加了“$ {PROJECT_DIR} /MyApp/install.sh”

脚本(非常基本的 – 没有error handling)在下面(用适当的值replace):

(LatestBuild是build立目录的链接)(ldid与iosopendev项目一起安装)

 cd $HOME/Projects/iPhone/MyProject/MyApp cp -r ../LatestBuild/MyApp.app com.test.MyApp/Applications/ ldid -S com.test.MyApp/Applications/MyApp.app/MyApp rm com.test.MyApp.deb 2>&1 /opt/local/bin/dpkg-deb -b com.test.MyApp scp com.test.MyApp.deb root@192.168.0.10:/var/root ssh root@192.168.0.10 "dpkg -r com.test.MyApp" ssh root@192.168.0.10 "dpkg -i com.test.MyApp.deb" ssh root@192.168.0.10 "killall -9 MyApp" #ssh root@192.168.0.10 "killall -HUP SpringBoard" cd - 

它可以提高很多 – 但它只是为我的需要

社会普遍认同这是不可取的。 像Theos这样的构build系统与设备GDB以及系统日志软件包或设备控制台配合使用是许多人正在使用的。

我不是很了解xcode的知识,但是像大多数IDE一样,我假设在一个形状或另一个forms,你可以运行一个后期构build脚本,如果你能弄清楚它是一样简单的scp命令从那里上传你可以在应用上传到的目录中使用ldid -S nameofapp。

你可以,如果你想允许你的应用程序驻留在/应用程序,虽然升级到4.3.5最有可能迫使你在一个系留的越狱我不知道4.3.5的一个无限制的JB,所以这是一个麻烦,如果你不得不重启。

至于debugging器给gdb(你可以从cydia得到它)去一个真正有用的:)。 ID做的只是让xcode运行一个后期构build脚本来使用scp上传到你的设备,然后用ldid手动签名,这是我能想到的最简单的方式,除非你有权访问开发者idevice。

给我几分钟我写一个脚本,并试图描述它是如何工作的我需要一个人,因为我终于得到了一个主要工作的开放工具链。 🙂

一个简单的上传脚本

 #!/bin/bash scp -r $1 $2@$3:$4 $1 is lets say your app folder ill use my dpatcher as an example $2 is user name either mobile or root(if you upload as root you need to chmod permissions to 755) $3 is your idevices local ip(ie your routers ip for it) 

你可以通过sbsettingsfind你的ip,或者通过点击ap旁边的蓝色箭头进行设置,它会告诉你。

 $4 is where you want it to be most likely /Applications or /var/mobile/Applications 

我把它命名为upload.sh,但你可以任何名称

一个例子

 upload.sh dpatcher.app mobile@192.168.1.65 /Applications 

然后你所做的就是ssh,并用ldid -S nameofapp来签名

如果你想上传单个文件删除-r作为recursion上传(即文件夹)

您必须使用scp或sftp来上传文件的原因是,正常的ftp AFAIK不支持使用第三方应用程序。

我不知道如何与Xcode集成我用vi,emacs或nano做任何事情(而且我没有一个mac)。