2011-08-20 154 views
1

我有Apple開發人員證書。我試圖將我的應用程序安裝在越獄iPhone上的/ Applications中,以便可以訪問SMS.db數據庫。我嘗試了幾種不同的使用不使用證書的變體,但是使用ldid簽名,並使用我的iOS App Store發行證書進行簽名。我的應用程序在啓動時總是崩潰,似乎沒有任何工作。如果我有Apple開發人員證書,將應用程序加入/ Applications最簡單的方法是什麼?我還需要進行ldid簽名嗎?我在iPhone 4上使用XCode4,SDK 4.3和iOS 4.1。在應用程序的越獄設備上安裝應用程序

+0

你檢查了崩潰的原因嗎?調試器控制檯中的錯誤消息是什麼? –

+0

你用什麼將應用程序複製到'/ Applications'文件夾?可執行文件的權限是否設置正確?如果您從cydia下載'CrashReporter'應用程序,是否有崩潰日誌報告? – apple16

回答

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 [email protected]<device-ip>:/var/tmp 
ssh [email protected]<device-ip> "dpkg -i /var/tmp/MyAppName.deb" 
ssh [email protected]<device-ip> "killall -9 \"SpringBoard\"" 
+1

'/ Applications'文件夾中的應用程序在'/ Applications'文件夾和'appname.app'之間沒有。它只是'/ Applications/Camera.app'。 – apple16

+0

@Epic_orange:你說得對,已經糾正了。正在編譯來自長腳本 –

+0

+1的信息。你可以用'su mobile -c uicache'來完成這個過程,而不是真正殺死SpringBoard。 – Nate

相關問題