簡體   English   中英

iOS模擬器的舊版本是否與iOS SDK相同?

[英]Are older versions of iOS Simulator the same as the iOS SDK?

像許多人一樣,我需要使用舊版iOS SDK構建應用程序。

當我通過XCode首選項下載舊版本的iOS模擬器時,這與下載以前版本的SDK相同嗎?

舉個例子,如果我今天下載XCode 6(iOS 8剛剛發布),我會得到iOS 8 SDK和模擬器。 如果我需要為iOS 7編譯應用程序並使用XCode首選項中的“下載”功能來獲得iOS 7.0 SDK附帶的iOS 7.0模擬器嗎?

在我看來,iOS 7.0模擬器是一個應用程序。 iOS 7 SDK是否附帶它,以便您可以構建適合iOS 7兼容性的應用程序?

不,下載模擬器不會添加任何新的SDK。 沒有必要。 使用Xcode 6,您的應用程序應該具有iOS 8的基本SDK。您可以將部署目標設置為早在4.3(盡管比7.0更進一步毫無意義)。 這樣您的應用程序就支持iOS 8和iOS 7.不需要iOS 7 SDK。

我想我明白你在問什么,答案是否定的:iOS模擬器是以他們模擬的硬件和他們運行的iOS版本命名的; 例如iPhone 5s(7.1)

Xcode 6僅附帶iOS 8 SDK。 這就是“Base SDK”(SDKROOT)。 您可以將其視為“最佳編譯目標”或“最佳支持版本” - 它是您編譯的SDK版本。 “部署目標”(IPHONEOS_DEPLOYMENT_TARGET)定義了您支持的最低支持iOS版本。 隨着您的應用程序成熟,以及兩者之間的范圍變寬,您需要對支持的功能進行越來越多的運行時檢測,或處理API差異,例如,較新的平台上首選較新的呼叫,而較舊的平台則不存在。

針對(Base SDK)7.1編譯的應用程序將在iOS 8.0設備上運行。 您可以將其視為“iOS 7模式”。 一個更好的例子是從iOS6遷移到7 - 針對iOS6.1編譯的應用程序“Base SDK”在iOS7設備上運行,但它們看起來像舊的UI風格。 在他們針對iOS7.x“Base SDK”進行編譯的那一刻,它們看起來適合iOS6或7。

我現在有一個應用程序作為“Base SDK”7.1支持,我設法復制舊的7.1 SDK並對其進行編譯。 哎呀,老實說,這比它的價值更麻煩。 如果你仍然有Xcode 5,目前只需要高達7.1,你可能只想使用它。 鑒於iOS 8.0已經淘汰,如果您的應用是新的,您可能根本不需要擔心這一點 - 您可能只是想確保您支持iOS 7.x,那就是AOK。

給定(例如)部署目標為7.0且基本sdk為8.0的應用程序,您需要處理任何兼容性問題。 某些方法可能表現不同(盡管Apple努力維護API兼容性),其他方法將被棄用或僅僅是不同的。 文檔在拼寫差異和棄用方面做得非常好。

您對舊SDK的需求是什么? 較新的SDK包含標記,允許您使用較舊的部署目標針對較新的SDK進行構建。 我們非常注意確保您實際上不需要較舊的SDK,因此如果存在阻止您使用較新SDK的問題,請務必在http://bugreport.apple.com上提交雷達。

如果您需要編譯將在iOS 7上運行的應用程序,則應將部署目標設置為7.0(或7.1,具體取決於您的意圖)並使用iOS 8.0 SDK。

-

iOS模擬器SDK兼具構建的SDK和運行模擬器應用程序的運行時(幾乎完全獨立的操作系統)。 iOS Simulator.app是一個小型應用程序,它基本上啟動模擬設備(通過CoreSimulator.framework)並處理I / O.

暫無
暫無

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

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