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

标签 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。

最佳答案

我为我自己的需要访问越狱设备上的整个文件系统的应用程序做了一些研究。您无法通过将 .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/

相关文章:

iphone - 您需要 Mac OS X 来开发 iPhone 应用程序吗?

iphone - 在 UIKit 中创建透明线的最快方法是什么?

objective-c - UIImageView setImage 不起作用

ios - Xcode取消ViewDidAppear

ios - 如何为与 uiviewcontroller 一起工作的方法创建一个类

ios - 适用于 iOS 的 Google Maps SDK 预览版 API key

iphone - 等效于Objective-C的json_encode

iPhone 获取 UITextField 的父 View

iphone - 像 Reeder 应用一样捏合以全屏拍照

ios - 讽刺地插入空白 View Controller