2011-03-22 86 views
2

我正在爲Xcode開發一個應用程序(越獄)。現在我想以編程方式安裝.deb文件。我怎樣才能做到這一點?我可以執行一條命令來安裝它,但是如何?如果我通過Xcode在我的越獄iPhone上安裝我的應用程序就足夠了嗎? (.ipa)還是我需要創建一個.deb?如果是,如何?如何以編程方式在越獄iphone上安裝.deb文件?

非常感謝!

祝您有愉快的一天。

編輯:我做了一個應用程序。在這個應用程序中,我有一個文件瀏覽器(僅適用於文檔目錄)。在這個目錄中有.deb文件。現在,我想以編程方式安裝這些.deb文件,如果用戶點擊一個。我如何去做這件事?

+0

結果,我想知道,太:) – cocos2dbeginner 2011-03-22 16:47:12

回答

0

AFAIK dpkg -i * .deb是安裝.deb的命令。但是,您無法在.deb中安裝.deb,因爲包管理器已被鎖定,因此您需要腳本或其他東西。

+0

做我需要讓我的應用程序到一個.deb或者是的.ipa足夠?你的腳本是什麼意思?在應用程序「iFile」中有一個內置的deb安裝程序,ifile是一個cydia應用程序... – DevMan 2011-03-22 15:45:03

+0

另一個問題是有沒有辦法將deb文件移動到「/ private/var/root/Media/Cydia/AutoInstall」? (這是根) – DevMan 2011-03-22 15:47:13

+0

對不起,我沒有iphone。 – Bytemain 2011-03-22 16:55:11

-1

AFAIK越獄的iPhone讓你安裝ipa無證......所以這是不夠的......

+0

我認爲你不理解我的權利。我做了一個應用程序。在這個應用程序中,我有一個文件瀏覽器(僅適用於文檔目錄)。在這個目錄中有一個.deb文件。現在我想以程序化方式安裝這些.deb文件,如果用戶點擊其中一個。這個怎麼做?作爲墓誌銘的 – DevMan 2011-03-22 16:31:12

+0

說:語法是dpkg -i filename.deb – MiPnamic 2011-03-22 16:55:30

0

如果你想你的應用程序作爲一個包安裝,那麼,我會用

dpkg -i filename.deb 

您可以以system()調用或exec()調用以"dpkg -i filename.deb"作爲命令以編程方式執行此命令。如果您特別使用system(),則可能需要完全限定路徑爲dpkg(例如/ usr/bin/dpkg ...或其他任何內容...我現在不在我的電話中)。

這可能是你發現你需要有特權才能做到這一點。 See this on how to give your app root privileges

另一種選擇,不需要您的應用程序運行的或使用exec()system()電話,是使用該技術I describe in this answer,這是有關如何以編程方式重新啓動的iPhone。就像我使用腳本調用reboot命令一樣,您可以編寫一個腳本來執行dpkg -i filename.deb。你只需要想出一個機制將文件名傳遞給你的腳本,我認爲它會動態改變(除非你的程序使用了一個臨時鏈接,它總是指向當前安裝的.deb文件)。

0

許多選項。

  1. 你可以學習的Cydia的源代碼。(官方網站提供的源代碼)
  2. 從冰冷的Github上學習的源代碼。 https://github.com/ripdev/Icy

  3. 簡單的方法就是用系統函數調用dpkg命令。

NSString *[email protected]"/var/root/appsync.deb"; 
    NSString *cmdString=[NSString stringWithFormat:@"/usr/bin/dpkg -i %@ >/tmp/dpkg.log;",appsyncDebPath]; 
    const char *cmdChar=[cmdString UTF8String]; 
    system(cmdChar); 

您可以顯示來自/tmp/dpkg.log

相關問題