簡體   English   中英

如何模擬iOS版本升級?

[英]How to simulate iOS version upgrade?

我們需要在iOS升級的環境中測試我們的應用程序(例如,5.1 - > 6.0)。 不幸的是,Apple不允許降級設備。 我們想過在模擬器中做這件事,但不同版本的模擬器本身就是不同的環境。 我想我們可以將捆綁包從一個模擬器復制到另一個模擬器,但這不會遷移密鑰鏈(是嗎?)。

謝謝!

要測試從一個狀態(之前)到另一個狀態(之后)的轉換,您需要一種方法將應用程序置於之前狀態。

在更新操作系統 ,您的應用程序肯定不會運行,因此您只需要擔心應用程序啟動並發現操作系統已更新。 有幾種選擇:

  • 將所有應用程序的數據文件從運行“舊”iOS版本的設備(根據您的問題5.1)復制到運行新版本(6.0)的設備。 Xcode中的組織者可以讓您輕松地將應用程序的“容器”從設備復制到Mac,反之亦然。

  • 讓您的應用以“舊”格式寫入數據。 應用程序根據環境具有以不同格式讀取和寫入數據的方法並不罕見,因此通常更容易讓您的應用程序以舊格式寫出數據,而不是從舊設備實際復制。

無論您選擇哪條路徑,請考慮您可能在其中進行與操作系統版本相關的更改的任何其他位置(如用戶默認值),並將這些更改為與先前操作系統對應的值。 這尤其適用於未存儲在應用程序沙箱中的鑰匙串項目。

單元測試框架(如Apple的XCTest框架)通常有一個設置機制,您可以使用該機制將應用程序重置為之前的狀態,包括復制文件,添加和刪除鑰匙串項,設置默認項等。然后您可以添加單元測試運行更新中可能涉及的任何代碼並測試結果。 通過一組易於重復的測試,您將能夠更輕松地調試任何問題。

無論您接近它,目標都是將應用程序置於與OS更新發生后第一次運行時相同的狀態。 您不必擔心模擬實際的操作系統更新,您只需欺騙應用程序就會認為更新剛剛發生。

目前,您仍然可以安裝iOS 8.2。 發布新版本時,Apple會在短時間內打開兩個版本進行安裝。 當“簽名窗口”打開時,您可以升級設備,進行測試,然后從舊版本的映像中恢復它。 因此,您可以在窗口打開時進行一些密集測試,但顯然這不是一個長期解決方案(通常只持續幾天)。

如果您有預算,可以在設備上安裝8.2,在其上貼一個大貼紙,說“不升級”,並且只要它相關就保持8.2。 在該設備上安裝您的應用程序並進行備份(啟用備份加密以便包含鑰匙串條目),然后將該備份恢復到8.3上的另一個設備 - 這基本上與您在升級時所經歷的程序相同/通過iTunes恢復所以它應該非常接近。 當然,它與設備上的OTA更新不完全相同,但為此,請參閱上面的選項1(並盡快查看)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM