2012-09-06 82 views
9

我正在創建一個內部應用程序來提供我們的業務客戶端可以無線安裝的更新的應用程序。調用openURL安裝App OTA的結果安裝緩存的應用程序

最後我啓動安裝的方法是:

NSURL *otaURL = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=<<my-url.plist>>"]; 
[[UIApplication sharedApplication] openURL:otaURL]; 

這工作得很好,但我們已經注意到,它有時會保持的plist或IPA文件的緩存,安裝舊版本。我們已經排除它不在服務器上更新,因爲我們甚至可以從服務器上刪除ipa文件,它仍然會安裝舊版本。

更改.plist和.ipa文件的名稱將工作,但不是真正的期望的最終狀態,所以我的問題是:有沒有辦法迫使設備出去,並從服務器獲取文件,而不是依靠在它的緩存?

回答

0

我認爲TestFlight上的人遇到了同樣的問題。在使用他們的服務時,我發現在不移除任何現有舊版本的情況下更新應用程序可能導致運行一半的舊版本(例如圖標)和一半新行爲的錯誤行爲。

這真的很奇怪。參看這個其他問題:Why are some files not correctly installed when installing via TestFlight?

你應該嘗試聯繫Apple的支持或TestFlight的球員,看看他們是否解決了這個問題。祝你好運!

+0

謝謝對於提示,我對它進行了更多的研究,然後它就落在了旁邊,但是我今天看到了這個,並想知道是否能解決這個問題。雖然還沒有測試過。 http://stackoverflow.com/questions/12712785/issue-with-uiwebview-caching-pages – Trey

3

我有一個非常類似的問題,我解決它與(骯髒)的解決方法;仍然比爲每個新版本創建不同的.plist文件要好。

我在網址中插入一些隨機的數字,如:

NSURL *otaURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=myapp.%d.plist", arc4random() % 10000]; 
[[UIApplication sharedApplication] openURL:otaURL]; 

在另一邊,我加在.htaccess規則(假設阿帕奇,與mod_rewrite的配置):

AddType application/octet-stream ipa 
AddType text/xml plist 

RewriteEngine on 
RewriteRule (.*)\.\d+\.plist $1.plist 
+0

我也使用這個解決方案,在URL中添加隨機參數,以避免緩存.plist解決問題。 –