[英]Is it possible to install iOS 6 SDK on Xcode 5?
Xcode 5有一個首選項窗格,允許用戶下載iPhone 6.1模擬器,但我找不到允許下載iOS 6 SDK的地方,因此在使用Xcode 5進行開發時無法將活動SDK設置為iOS 6 。是否有允許Xcode 5安裝iOS 6 SDK的解決方法?
編輯:
現在,Xcode 5通常可用,並且允許您下載SDK的先前版本,因此不再需要解決方法。
編輯:從2014年2月1日開始,Apple將不再接受iOS7之前的應用程序提交到App Store。 因此,盡管這種技術仍然有效,但它對大多數讀者來說並沒有用。
是的,這很好。 我仍然使用iOS 4.3為一個項目構建(自我們更新以來已經有一段時間了;但他們仍然在iOS 6發布后接受它),而且我目前使用Xcode 5構建了10.5個應用程序。
請參閱如何將Xcode指向舊的SDK,以便它可以用作“基礎SDK”? 有關如何設置的詳細信息。 每次升級時,您都可以使用我的fix-xcode腳本為您鏈接所有內容。
唯一的技巧是獲取舊的SDK。 如果你沒有它們,你通常需要下載舊版本的Xcode(仍然可以在developer.apple.com上找到 ),打開安裝程序包,然后尋找你需要的SDK。
SDK可以在安裝程序包中找到:
Xcode.app/Contents/Developer/Platforms/
當我更新到xcode 5時它也運行了同樣的問題它刪除了舊的sdk。 但我從另一台計算機上獲取了舊版SDK的副本,您可以從以下鏈接下載。
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com測試帳號test@yopmail.com/test)
有兩種方法可以使用。
1)將此文件夾解壓縮並粘貼到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs並重新啟動xcode。
但是如果你更新xcode,這可能會被Xcode刪除。
2)另一種方法是解壓縮並粘貼到你想要的位置,然后轉到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs並在此處創建一個符號鏈接,這樣即使SDK仍然保持相同你更新Xcode。
我做了另一項更改,Build Setting> Architectures> standard(而不是64),因此列出了Deployment Target的所有版本
如果您只想更改部署目標,則無需下載zip。
這是一些截圖。
是的,我今天剛解決了這個問題。
然后你可以選擇如下的SDK:
希望這對你有所幫助。
查找並下載舊SDK。 較舊的SDK可在此處找到 。
我已將xcode.app目錄復制為Xcode_4.6.3.app。
現在,您可以在兩個xcode版本中進行測試和調試。 您必須從相應的文件夾運行它們或在桌面上創建快捷方式。 從命令行構建時,將參數設置為iPhoneOS6.1
而不是iPhoneOS7.0
這在Xcode5和iOS中對我很有用。
轉到Xcode5的SDK目錄。 它通常位於:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
像這樣添加舊SDK的符號鏈接:
sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk
或者更准確地從命令行中的任何位置,
sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
您可以下載舊版SDK並將其安裝在其中
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
夾。 注銷+登錄只是為了確保更改生效,您應該在新的XCode中看到舊的SDK
只需添加,您實際上可以使用Xcode 5本身下載舊版本的模擬器 - 只需轉到首選項,您就可以在下載中找到它們:
打開終端窗口
$sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
由於您在系統文件夾中,因此系統會提示您輸入密碼
對我來說最簡單的解決方案:
要在模擬器上測試iOS 6中的應用程序: - 只需在活動的sheme中選擇iOS 6.0即可。
要在iOS 6中構建您的應用程序,因此您的應用程序的設計將是iOS 7上的舊設計: - 在目標中選擇iOS6.1 - 基本SDK
請注意:當您更改目標中的基礎SDK時,iOS 7.0將不再可用於在模擬器上構建!
可以做到這一點 ,但不是真的有必要
傑森李得到了答案。 安裝xCode時,我更喜歡保留以前的安裝而不是替換它們。 所以我在我的安裝文件夾中有這些
所以/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
包含不同的sdks。 (將Xcode.app替換為正確的數字)將以前的sdks復制到
/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
復制之后,這是我的文件夾。
現在重新啟動xCode,您可以將以前版本的sdks設置為基本sdk。
參考Apple Documentaion
要將特定SDK用於Xcode項目,請在項目的構建設置中進行兩項選擇。
選擇部署目標 。
這標識了您的軟件可以運行的最早的操作系統版本。
選擇基本SDK
您的軟件可以使用操作系統版本中可用的功能,包括與基本SDK相對應的功能。 默認情況下,Xcode將此設置為Xcode支持的最新操作系統。
例如,您可以將iOS 7用作基本sdk,並將iOS 6設置為部署目標。 在iOS 6模擬器上運行以測試它在iOS 6上的工作方式。如果模擬器列表不可用,請安裝模擬器。
另外,您可以無條件地使用iOS 6以上的功能。並且有條件地,您可以支持iOS 7的新功能,以支持新版本,同時支持以前的版本。
這可以使用弱鏈接類 , 弱鏈接方法 , 函數和符號來完成
假設您在Xcode中將部署目標(最低要求版本)設置為iOS6,將目標SDK(最大允許版本)設置為iOS7。 在編譯期間,編譯器會弱連接iOS7中引入的任何接口,同時強烈鏈接早期接口。 這將允許您的應用程序繼續在iOS6上運行,但仍然可以利用更新的功能。
這里的其他答案也是正確的,但我發現以下步驟是最簡單的:
只需從開發中心鏈接下載Xcode 4.6.3,該鏈接顯示“正在尋找舊版本的Xcode?” (目前指向此處 )並安裝dmg。
然后在終端中,將SDK文件復制到:
cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
最后,重新啟動Xcode,你就完成了。
我的應用程序無縫轉換到Xcode 5,因為它仍然可以使用您在項目中設置的原始iOS部署目標(在我的情況下為5.1)進行構建。 如果新的SDK不會導致一些難以解決的問題,那么為什么不使用它來構建呢? 當然,引擎蓋下有很多改進。
例如,我更喜歡使用Xcode 5而不是Xcode 4.6.3。 為什么? 我將獲得更多的電池壽命,因為Xcode 5中的文本/代碼區域的UI滾動不再咀嚼整個CPU線程。
如其他答案中所述,將6.1 SDK鏈接到Xcode 5是一步。 但是,這仍然無法解決在iOS 7上運行新的UI元素,視圖控制器是全尺寸等問題。
如本回答所述,還需要在iOS 7上將UI切換為傳統模式:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];
注意:這是一個未記錄的密鑰,不推薦用於App Store版本!
另外,根據我在設備上測試的經驗,我發現它只在我第二次啟動應用程序時工作,即使我在應用程序啟動時很早就運行了代碼,在+[AppDelegate initialize]
。 使用Xcode 4.6構建的版本也存在細微差別。 例如,透明導航欄的行為不同(導致視圖為全尺寸)。
但是,由於Xcode 4.6.3在Mavericks上崩潰(至少對我而言,請參閱rdar:// 15318883 ),這至少是繼續使用Xcode 5進行調試的解決方案。
我按照其他答案的描述下載了XCode 4並將iOS 6.1 SDK從它帶到了XCode 5。 然后我還安裝了iOS 6.1 Simulator(它在首選項中可用)。 我還在項目設置中將Base SDK切換到iOS 6.1。
在所有這些操作之后,具有6.1 base sdk的項目在iOS 7 Simulator中以comp comp模式運行。
從2月1日起,Apple將拒絕僅針對iOS6或更低版本構建的應用程序。 這也是Apple的官方通訊 。 最好開始為iOS7構建。
澄清我的陳述:如果您為iOS6或更低版本構建,Apple將拒絕您的應用。 如果你為iOS7構建並降低一切都很好,這意味着:
Apple電子郵件的內容非常清楚
“確保您的應用程序與iOS 7中的創新技術無縫協作。從2月1日開始,提交到App Store的新應用程序和應用程序更新必須使用Xcode 5和iOS 7 SDK構建。”
我目前安裝了Xcode 4.6.3和5.0。 我使用以下bash腳本將5.0鏈接到舊版本的SDK:
platforms_path="$1/Contents/Developer/Platforms";
if [ -d $platforms_path ]; then
for platform in `ls $platforms_path`
do
sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs;
done;
fi;
你只需要為它提供.app的路徑:
./xcode.sh /Applications/Xcode-463.app
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.