2014-10-07 140 views
2

我正在開發分佈itms-services的企業應用程序。iOS 8企業應用程序更新

這個應用程序有一個服務,讓用戶知道什麼時候有更新,所以當用戶按下更新按鈕時,應用程序調用itms-services來下載並安裝最新版本。

直到iOS 8,當從應用程序調用itms-services時,系統會關閉應用程序並開始更新過程。現在,應用程序不再關閉,用戶不知道更新過程已經開始,這是一個惱人的變化。

我想在iOS 8之前開始更新之後關閉我的應用程序,但我不知道這是否可能,我想添加一個反饋,說該應用程序已更新,對我來說似乎是一個很好的解決方案

有沒有人知道更好的解決方案呢?

更新:此應用程序也分佈在App Store,所以我不能使用任何可能導致Apple拒絕的內容。

感謝

+0

更新開始後,您可以嘗試撥打主頁按鈕嗎?或嘗試使用?關閉應用程序? '[[NSThread mainThread] exit]' – 2014-10-07 16:44:55

+0

是的,用戶可以使用主頁按鈕。可以調用[[NSThread mainThread] exit]嗎?你知道蘋果是否會批准這個嗎?這個應用程序也分佈在App Store。 – 2014-10-07 18:20:20

+0

[[NSThread mainThread] exit]是關閉應用程序的正確方法!但我不知道在更新之前是否真的需要關閉它。更新的本地方式只是打到家 – 2014-10-07 18:26:49

回答

0

,直到更新完成在iOS 8的更新過程不會停止應用程序的執行。如果您在更新過程中觀看主屏幕,則會看到同一應用的兩個圖標。更新完成後,「更新」圖標將消失,您的應用程序將被更新。

如果您要發佈企業應用,則可能無法通過Apple的審覈流程。當觸發應用內更新流程時,您可能會考慮使用私有方法來關閉應用程序。如果你想要的話,甚至可能導致崩潰(比如嘗試訪問數組越界的索引),儘管你可能會收到崩潰報告。 ;)

+0

我不能使用私有方法,因爲我在App Store上分發了同一個應用程序,只有一些客戶使用企業分發。關於第二個圖標,這不是我的情況,我讀到有人說第二個項目可能在捆綁ID不相同時創建(http://stackoverflow.com/questions/25772664/enterprise-app-update-distribution -on-IOS-8)。當我的應用程序正在運行時,下載過程開始,安裝過程只會在應用程序未在前臺運行時啓動。謝謝 – 2014-10-07 18:10:26

+0

你確定iOS8只有一個圖標嗎?圖標不一定會出現在主屏幕的同一頁面上。根據我的經驗,自iOS 8更新以來,始終有兩次 - 即使捆綁包標識符未更改。第二個圖標顯示,直到更新完成然後消失。 – 2014-10-07 18:12:26

+0

在我的情況下,新的圖標正在取代當前的圖標,如果執行停止,這將是完美的。 – 2014-10-07 18:15:55

2

您可以撥打

[[UIApplication sharedApplication] performSelector:@selector(suspend)]; 

把後臺應用程序打開你的ITMS URL之後。

+0

這對我來說真的很好。 Franco:你爲什麼不使用這段代碼,但是確保在爲應用商店構建時刪除它?無論如何,這是一個不同的構建? (至少必須是不同的配置文件)。添加一個預處理器指令,將其在App Store構建中刪除,並且Apple不會拒絕您的應用。 – 2014-11-05 09:25:11