我有 Apple 开发者证书。我正在尝试将我的应用程序安装在我越狱的 iPhone 上的/Applications 中,以便我可以访问 SMS.db 数据库。我尝试了几种不使用证书但使用 ldid 签名以及使用我的 iOS App Store 分发证书签名的不同变体。我的应用程序总是在启动时崩溃,而且似乎没有任何效果。如果我有 Apple 开发人员证书,将应用程序放入/Applications 的最简单方法是什么?我还需要做 ldid 签名吗?我在 iPhone 4 上使用 XCode4、SDK 4.3 和 iOS 4.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\""
关于iphone - 在应用程序中的越狱设备上安装应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7134942/