以下方法是housisong发现,并通过sharen24的程序进行测试,已经验证可行。

首先要在你的iPhone上升级2.0版本,并安装Cydia安装包。然后按照以下步骤进行:

 

  1. ssh root@iphone
  2. apt-get update; apt-get install odcctools

以上这一步也可以使用Cydia的GUI来做。

接着

首先要对你的程序创建一个数字签名,名字比如叫iPhone,签名方法可以参考这里

然后在XCode中,Target里选择Add New Build Phase, New Script Build Phase, 然后添加下面的脚本

  1. CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate codesign -s iPhone -f ${TARGET_BUILD_DIR}/${EXECUTABLE_FOLDER_PATH}/${EXECUTABLE_NAME}

如果使用iPod Touch需要做相应的修改。

接着就可以连接到iPhone了(前提是iPhone中先安装了ssh)

  1. scp -r MyApp.app root@iphone:/Applications
  2.  
  3. ssh root@iphone
  4.  
  5. cd /Applications/MyApp.app
  6.  
  7. ldid -s MyApp
  8.  
  9. kill -HUP (springboard进程)

即可刷新Spring Board。另外,这里有一个mac版的ldid程序可供下载。

如果你希望直接ssh登录到iPhone中调试程序,可以使用Erica Sadun的launch程序,当然首先要把launch程序也用ldid -s加一个签名,然后使用launch来执行程序,就不会执行几秒就被SpringBoard直接杀掉了。

另外,Cydia中还包括一个支持2.0的Toolchain工具,可以直接在iPhone上编译toolchain程序,使用之前需要先把分区调整到至少1G,然后执行:

  1. $ apt-get install ldid
  2.  
  3. $ gcc -o program program.c
  4.  
  5. $ ldid -S program
  6.  
  7. $ ./program

这样就可以直接在iPhone 2.0上面编译程序了。

更多详细资料可以参考这里

如果你希望和大家讨论关于在iPhone 2.0上执行程序的方法,可以在这里进行讨论。