2012-01-06 48 views
1

我有一個企業帳戶,我分發一個私人應用程序,所以我有一個網頁,需要一個登錄名/密碼,然後有一個鏈接到.plist清單文件,該文件也鏈接到.ipa文件,問題是兩個文件都在同一臺服務器上,並且該服務器需要登錄。iPhone App無線分佈 - 如何保護.ipa文件?

這就是爲什麼每當我點擊鏈接即使我已經登錄,我得到「無法連接」彈出。我雖然自從我登錄後通過了憑據,但顯然他們沒有。

如何在不需要密碼的情況下保護.ipa文件的下載(或者密碼是由用戶以某種方式提供的),而無需某人能夠創建自己的清單文件並將鏈接提供給我的.ipa文件?。

我試着在網上尋找解決方案,但沒有發現任何東西。

任何幫助將不勝感激。

謝謝。

回答

4

您可以使用php和mysql創建自己的登錄系統。

將ipa文件放入public_htmlhtdocswww_root之前的文件夾中或您用作網站根目錄的任何文件。這樣人們就無法鏈接到它。

然後用一些這樣的代碼:

$file = '/absolute/path/to/application.ipa'; 

if (file_exists($file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.basename($file)); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    ob_clean(); 
    flush(); 
    readfile($file); 
    exit; 
} 

這將迫使下載。如果用戶未登錄到會話中,則可以提供錯誤消息或類似信息。

+1

這將強制下載.ipa文件,但是我需要使用清單文件鏈接到.ipa文件,以便用戶能夠通過下載應用程序點擊一個鏈接。 – 2012-01-06 18:23:38

+0

哦,然後對清單文件做同樣的事情。您可以將標題更改爲清單標題。 :) – 2012-01-07 01:18:12

1

你看過TestFlight https://testflightapp.com/或HockeyApp http://www.hockeyapp.net/

僅適用於iOS我推薦TestFlight,但是如果您分發Android應用以及HockeyApp可能會更好。 (TestFlight目前不支持Android)

+0

這看起來像一個偉大的測試工具!謝謝!。我只有一個問題是爲應用程序發送的電子郵件鏈接?我不知道哪些人會收到該應用程序,因此他們必須能夠登錄到一個網站點擊該應用程序並下載它,只要他們想。 – 2012-01-06 18:12:07

+0

這正是它所做的,但一個普通的iOS開發人員帳戶將持續這個... – 2012-01-06 19:48:19

+0

HockeyApp有一個額外的安全功能,可以使用SDK啓用。這將使應用程序檢查服務器來驗證設備是否真的允許運行此應用程序。否則,任何開發人員都可以使用自己的證書重新簽署.ipa以使其運行。另外,有越獄設備的用戶也可以在不重新簽名的情況下運行該應用。這個檢查有幫助。 – Kerni 2012-01-16 13:22:14