在应用程序中的越狱设备上安装应用程序

时间:2011-08-20 21:55:58

标签: iphone objective-c ios xcode4 jailbreak

我有Apple开发人员证书。我正在尝试在我的越狱iPhone上的/ Applications中安装我的应用程序,以便我可以访问SMS.db数据库。我尝试了几种不同的使用无证书但使用ldid签名,并使用我的iOS App Store分发证书进行签名的变体。我的应用程序总是在启动时崩溃,似乎没有任何工作。如果我有Apple开发人员证书,那么将应用程序放入/ Applications的最简单方法是什么?我还需要做ldid签名吗?我在iPhone 4上使用XCode4,SDK 4.3和iOS 4.1。

1 个答案:

答案 0 :(得分:1)

我为自己的应用做了一些研究,需要访问越狱设备上的整个文件系统。您无法通过将.ipa文件安装到/ Applications。

的常规方法来安装您的应用程序

您的崩溃很可能与沙盒有关,因此它看起来像这样:

Jun  2 15:16:10 unknown sandboxd[31] <Notice>: BlueTool(145) deny file-read-metadata /private/var/mobile

Process:         BlueTool [145]
Path:            /usr/sbin/BlueTool
Load Address:    0x7f000
Identifier:      BlueTool
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  BTServer [88]

Date/Time:       2012-06-02 15:16:10.275 -0500
OS Version:      iPhone OS 5.0.1 (9A405)
Report Version:  104

Backtrace:
0   libsystem_kernel.dylib          0x30604c0c stat + 12

我通过将.ipa包转换为.deb包并通过dpkg安装它来解决这个问题。这样您就可以创建任何所需的布局。

以下是解决方案的要点:

为debian打包程序创建布局以使用:

mkdir ./layout
mkdir ./layout/Applications
mkdir ./layout/DEBIAN
chmod 0755 ./layout/DEBIAN

解压缩.ipa包:

unzip package.ipa -d ./layout/Applications/MyAppName.app/

创建布局文件:

cat > ./layout/DEBIAN/control <<EOF
Package: MyAppName
Name: MyAppName
Depends: mobilesubstrate, preferenceloader, libstatusbar
Version: 1.0-0
Architecture: iphoneos-arm
Description: MyAppName application
Maintainer: Me
Author: Me
Section: Tweaks
EOF

chmod 0755 ./layout/DEBIAN/control

制作一个.deb包:

<path-to-theos-bin>/dpkg-deb -b ./layout MyAppName.deb

显示我们刚刚构建的.deb包中的内容:

<path-to-theos-bin>/dpkg-deb -c ./layout MyAppName.deb

然后通过ssh进行部署:

scp MyAppName.deb root@<device-ip>:/var/tmp
ssh root@<device-ip> "dpkg -i /var/tmp/MyAppName.deb"
ssh root@<device-ip> "killall -9 \"SpringBoard\""