เป็นไปได้ไหมที่จะติดตั้ง iOS 6 SDK บน Xcode 5


250

Xcode 5 มีบานหน้าต่างการตั้งค่าที่อนุญาตให้ดาวน์โหลด iPhone 6.1 simulator แต่ฉันไม่สามารถหาสถานที่ที่อนุญาตให้ดาวน์โหลด iOS 6 SDK ดังนั้นจึงไม่สามารถตั้งค่า SDK ที่ใช้งานเป็น iOS 6 เมื่อพัฒนาด้วย Xcode 5 มีวิธีแก้ปัญหาที่อนุญาตให้ Xcode 5 ติดตั้ง iOS 6 SDK หรือไม่

แก้ไข:

การแก้ปัญหาไม่ควรเป็นสิ่งจำเป็นอีกต่อไปในขณะนี้ที่ Xcode 5 พร้อมใช้งานและให้คุณดาวน์โหลด SDK รุ่นก่อนหน้า

ป้อนคำอธิบายรูปภาพที่นี่


41
เพื่อใช้ประโยชน์จากการปรับปรุงหลายอย่างใน Xcode 5 ในขณะที่ยังสามารถสร้างแอพสำหรับร้านค้าแอพในปัจจุบันได้
Tony

61
เฮ้แมดดี้ประเด็นเกี่ยวกับ "การโอบกอด iOS 7 ต่อไป" นั้นไม่ได้เชื่อมโยงกับการเปิดตัว GA การตัดสินใจและความพยายามในการออกแบบภาษาการออกแบบใหม่ทั้งหมดของแอพและ UX ให้สอดคล้องกับการออกแบบแบนและส่วนประกอบ iOS7 UI ที่ได้รับการออกแบบใหม่นั้นไม่เล็กไม่สามารถมาจากมุมมองทางธุรกิจและเวลาได้อย่างง่ายดาย การสร้างกับ SDK 6.1 จะทำให้ iOS7 ใช้ภาษาการออกแบบ UI ของ iOS 6 และก่อนหน้านี้ (เพื่อวัตถุประสงค์ในการสนับสนุนย้อนหลัง) ดังนั้นอาจรับประกันได้เป็นอย่างดีว่าเราต้องการพัฒนาใน Xcode 5 เทียบกับ 6.1 SDK สำหรับช่วงเวลาที่ดีในอนาคต
Marchy

2
hmmm อาจเป็นเพราะเขาคาดหวังว่า SDK จะถูกแยกออกจาก IDE แทนที่จะเป็นกองเดียวของรหัส?
phreakhead

1
ขณะนี้ฉันกำลังทำงานกับไคลเอนต์ที่ไม่พร้อมที่จะยอมรับการเปลี่ยนแปลง IOS7 UI แต่สามารถได้รับประโยชน์จากการปรับปรุงการย้ายข้อมูล Core ใน XCode 5 ดังนั้นในกรณีนี้นี่คือสิ่งที่ฉันต้องการเช่นกัน
Droid Chris

บางคนอาจคิดว่า Xcode ถ้าไม่รวม SDK 6.1 อย่างน้อยก็น่าจะรวมกันได้อย่างราบรื่น แต่มีปัญหานี้แล้ว
JohnK

คำตอบ:


203

แก้ไข: เริ่มตั้งแต่วันที่ 1 กุมภาพันธ์ 2014, Apple จะไม่ยอมรับแอพ pre-iOS7 สำหรับส่งไปยัง App Store ดังนั้นในขณะที่เทคนิคนี้ยังใช้งานได้มันจะไม่เป็นประโยชน์สำหรับผู้อ่านส่วนใหญ่


ใช่มันไม่เป็นไร ฉันยังคงสร้างด้วย iOS 4.3 สำหรับโครงการหนึ่ง (มันน่าอึดอัดใจตั้งแต่เราอัปเดต แต่พวกเขายังยอมรับได้หลังจาก iOS 6 ออกมา) และตอนนี้ฉันสร้างแอป 10.5 แอปด้วย Xcode 5

ดูวิธีการชี้ Xcode ไปยัง SDK เก่าเพื่อให้สามารถใช้เป็น "Base SDK" ได้หรือไม่ สำหรับรายละเอียดเกี่ยวกับวิธีการตั้งค่า คุณสามารถใช้ สคริปต์fix-xcodeของฉันเพื่อเชื่อมโยงทุกอย่างสำหรับคุณทุกครั้งที่คุณอัพเกรด

เคล็ดลับเดียวคือรับ SDK เก่า หากคุณไม่มีพวกเขาโดยทั่วไปคุณจะต้องดาวน์โหลด Xcode เวอร์ชันเก่า (ยังมีอยู่ในdeveloper.apple.com ) เปิดแพ็คเกจการติดตั้งและค้นหาเพื่อค้นหา SDK ที่คุณต้องการ

สามารถพบ SDK ได้ในแพ็คเกจการติดตั้งที่:

Xcode.app/Contents/Developer/Platforms/


คุณจำเป็นต้องลบ iOS 7 SDK เมื่อเก็บถาวรเพื่อให้แน่ใจว่ามันสร้างด้วย iOS 6 SDK หรือไม่
ohayon

6
สวัสดี นี่ใกล้ แต่ไม่มากสำหรับฉัน ปุ่มดูเหมือน iOS 6 แต่เนื้อหาตัวควบคุมมุมมองยังคงอยู่ด้านหลังแถบนำทางเมื่อใช้ UINavigationController มีความคิดเห็นเกี่ยวกับวิธีการใช้งาน iOS 6 อย่างไร
matt bezark

2
ไม่มี คุณจะเห็นสิ่งนี้บนอุปกรณ์เท่านั้น ไม่มีโหมดความเข้ากันได้กับ iOS 6 ในเครื่องมือจำลอง iOS 7 หากคุณต้องการดูว่ามันมีลักษณะอย่างไรในเครื่องมือจำลองให้ทดสอบกับอุปกรณ์จำลอง iOS 6
Rob Napier

1
ฉันสามารถส่งแอพที่สร้างขึ้นด้วย Xcode 5 และ iOS 6 SDK ไปยัง App Store ได้หรือไม่
hujunfeng

1
ตราบใดที่ยังสนับสนุน iPad 1 อยู่คุณสามารถถือว่า Apple ยอมรับ 5.X iOS ได้เสมอ ไม่สามารถอัปเกรดได้
ahwulf

60

ฉันยังทำงานด้วยปัญหาเดียวกันเมื่อฉันอัปเดตเป็น xcode 5 มันลบ sdk รุ่นเก่าออก แต่ฉันนำสำเนา SDK เก่ามาจากคอมพิวเตอร์เครื่องอื่นและคุณสามารถดาวน์โหลดได้จากลิงค์ต่อไปนี้

http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com บัญชีทดสอบทดสอบ test@yopmail.com/test)

มี 2 ​​วิธีในการทำงานกับ

1) คลายซิปและวางโฟลเดอร์นี้เพื่อ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs และรีสตาร์ท xcode

แต่นี่อาจถูกลบโดย Xcode อีกครั้งหากคุณอัปเดต xcode

2) อีกวิธีคือ Unzip และวางตำแหน่งที่คุณต้องการและไปที่ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs และสร้างลิงก์สัญลักษณ์ที่นี่ดังนั้น SDK จะยังคงเหมือนเดิม คุณอัปเดต Xcode

การเปลี่ยนแปลงอื่นที่ฉันทำสร้างการตั้งค่า> สถาปัตยกรรม> มาตรฐาน (ไม่ใช่ 64) ดังนั้นจึงแสดงรายการเป้าหมายการปรับใช้ทั้งหมด

ไม่จำเป็นต้องดาวน์โหลดไฟล์ zip หากคุณต้องการเปลี่ยนเป้าหมายการปรับใช้เท่านั้น

นี่คือภาพหน้าจอบางส่วน ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่


2
คุณดาวน์โหลด ios6.1 sdk อย่างไรและที่ไหน ฉันกำลังมองหา iOS 5 sdk เพื่อให้ทำงานกับ Xcode 5 ของคุณคุณสามารถอัปโหลดหรือชี้ไปที่ตำแหน่งที่ฉันสามารถดาวน์โหลดได้เอง ขอบคุณ
Sam B

ที่จริงฉันมีระบบเก่าด้วย ดังนั้นฉันเอาสิ่งนี้มาจาก xcode รุ่นเก่า ฉันพยายามเหมือนกันสำหรับ ios sdk 5 แต่ไม่จำเป็นเท่าไหร่ฉันไม่ได้พยายามเอามันออกไป นอกจากนี้หากคำตอบนี้ดูดีฉันให้ความสำคัญกับความคิดเห็นของคุณในแง่ของ + หรือ - ขอบคุณ.
AvtarSingh Suchariya

1
สวัสดี Avtar ฉันดาวน์โหลด ios6 zip ของคุณคลายซิปแล้วตามเส้นทางตำแหน่งที่คุณระบุไว้ปิด xcode 5 ทั้งหมดเปิดใหม่อีกครั้งและยังคงเห็นเพียง 7.0 เป็นเป้าหมายที่ปรับใช้ได้ในตัวเลือกแบบหล่นลง ฉันคิดว่ามีขั้นตอนที่ขาดหายไปและมีมากกว่านั้นใช่ไหม
Sam B

เช่นเดียวกันทำงานให้ฉัน เพียงแค่คำถามคุณเพิ่มสิ่งนี้ลงในแอพ xcode หรือสร้างลิงค์สัญลักษณ์?
AvtarSingh Suchariya

โดยตรงไปที่แอป dir ตัวเอง
Sam B

34

ใช่ฉันเพิ่งแก้ปัญหาวันนี้

  1. ค้นหาไฟล์ SDK เช่น iPhoneOS6.1.sdk ในไดเรกทอรี Xcode เก่าของคุณหรือเพื่อนของคุณ
  2. คัดลอกและวางลงในไดเรกทอรี Xcode 5: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นคุณสามารถเลือก SDK ดังนี้

ป้อนคำอธิบายรูปภาพที่นี่

หวังว่านี่จะช่วยคุณได้


2
ฉันทำอย่างเดียวกัน แต่ GUI ของแอพเปลี่ยนไปและดูเหมือนว่า iOS 7 GUI ฉันเลือกตัวจำลอง iPhone Retina (4 นิ้ว 64 บิต) เพื่อเรียกใช้แอพ ฉันหายไปหลังจากทำสิ่งนี้ไปแล้ว
หลาม

20

ค้นหาและดาวน์โหลด SDK เก่า SDKs เก่าจะพบได้ที่นี่

ฉันคัดลอกไดเรกทอรี xcode.app เป็น Xcode_4.6.3.app

ตอนนี้คุณสามารถทดสอบและดีบักได้ทั้งในเวอร์ชัน xcode คุณต้องเรียกใช้จากโฟลเดอร์ที่เกี่ยวข้องหรือสร้างทางลัดในเดสก์ท็อปของคุณ เมื่อสร้างจากบรรทัดคำสั่งให้พารามิเตอร์iPhoneOS6.1แทนiPhoneOS7.0

มันใช้งานได้ดีสำหรับฉันใน Xcode5 และ iOS

ไปที่ SDK ของ Xcode5 dir มันมักจะอยู่ที่:

/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

เราสามารถใช้ตัวเลือกนี้เพื่อทดสอบแอพของเรา แต่อาจจะหลังจาก feb 2014 แอพใด ๆ ที่สร้างขึ้นด้วย iOS 7 sdk ก่อนหน้านี้จะไม่ได้รับการยอมรับใน app store!
karim

11

คุณสามารถดาวน์โหลด SDK ที่เก่ากว่าและติดตั้งได้

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

โฟลเดอร์ ออกจากระบบ + เข้าสู่ระบบเพียงเพื่อให้แน่ใจว่าการเปลี่ยนแปลงมีผลและคุณควรเห็น SDK ที่เก่ากว่าใน XCode ใหม่ของคุณ


ฉันได้ทำสิ่งนี้แล้ว (โดยใช้ลิงก์ดาวน์โหลดในคำตอบก่อนหน้า) และตัวเลือก iOS 6.1 sdk จะแสดงใน xcode 5 ภายใต้การตั้งค่า Build> สถาปัตยกรรม> SDK ฐาน อย่างไรก็ตามเมื่อฉันสร้างและรันบนโปรแกรมจำลองการทำงาน iOS 7 (หรืออุปกรณ์ iOS 7) ก็ยังคงใช้ปุ่ม iOS 7 UIKit (ไม่ใช่รุ่น iOS 6) ถ้าใครมีข้อเสนอแนะใด ๆ ที่เป็นเหตุผลที่ผมต้องการจะขอบคุณ ....
บิลแพตเตอร์สัน

หากคุณมี TimeMachine ติดตั้งอยู่คุณสามารถเปิดพา ธ ด้านบน (ในประเภทเทอร์มินัล: เปิด "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/") และเรียกคืน iOS6.1 SDK จากที่นั่น .
avance

11

เพียงเพิ่มคุณสามารถดาวน์โหลดตัวจำลองเวอร์ชันเก่าด้วยตัวเอง Xcode 5 เพียงไปที่การตั้งค่าและคุณจะพบพวกเขาภายใต้ดาวน์โหลด:

ป้อนคำอธิบายรูปภาพที่นี่


สิ่งนี้จะต้องเกิดขึ้นตั้งแต่ xcode 5 ออกมาจากเบต้าและตอนนี้เป็นรุ่นทั่วไป เป็นการดีที่จะรู้ขอบคุณ Smikey
Tony

5
@Manni นี่ไม่เหมือนกับการรวบรวมกับ API เก่า คุณกำลังสร้างโดยใช้ API ใหม่สำหรับ iOS 6
oligofren

ตัวเลือกเหล่านี้จะไม่ปรากฏตามค่าเริ่มต้นใน Xcode 6 แม้ว่าคุณจะตั้งแพลตฟอร์มเป้าหมายแบบเก่า
GilesDMiddleton

10
  • ดาวน์โหลด Xcode 4.6.x จาก Apple Dev Center: https://developer.apple.com/downloads/index.action
  • สร้างโฟลเดอร์ชื่อ Xcode4 ภายในโฟลเดอร์ Applications และลาก nmg ที่ดาวน์โหลดมาที่นั่น
  • เปิดหน้าต่างเทอร์มินัล

    $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/
  • คุณจะได้รับแจ้งให้ป้อนรหัสผ่านเนื่องจากคุณอยู่ในโฟลเดอร์ระบบ

  • เปิด Xcode 5 และตอนนี้คุณควรเห็นทั้ง SDK

10

สำหรับฉันทางออกที่ง่ายที่สุด:

  1. ค้นหา SDK ที่เก่ากว่าเช่น "iPhoneOS6.1 sdk" ใน xcode เวอร์ชันที่เก่ากว่า หากคุณยังไม่มีคุณสามารถลดลงได้จากเซิร์ฟเวอร์ Apple Developer ตามที่อยู่นี้: https://developer.apple.com/downloads/index.action?name=Xcode เมื่อคุณเปิด xcode.dmg คุณสามารถค้นหาได้โดยเปิด Xcode.app (คลิกขวาและ "แสดงเนื้อหา") และไปที่เนื้อหา / นักพัฒนา / แพลตฟอร์ม / iPhoneOS.platform / ผู้พัฒนา / SDKs / iPhoneOS6.1 sdk ป้อนคำอธิบายรูปภาพที่นี่
  2. ง่าย ๆ คัดลอกโฟลเดอร์ iPhoneOS6.X sdk และวางลงใน xcode.app ของคุณ
    • คลิกขวาที่ xcode.app ของคุณในโฟลเดอร์ Applications
    • ไปที่สารบัญ / ผู้พัฒนา / แพลตฟอร์ม / iPhoneOS.platform / Developer / SDKs /
    • เพียงวางที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

  1. ปิดแอป xcode ของคุณแล้วเปิดใหม่อีกครั้ง

วิธีทดสอบแอพใน iOS 6 บนเครื่องจำลองของคุณ: - เพียงแค่เลือก iOS 6.0 ใน sheme ที่ใช้งานอยู่ของคุณ ป้อนคำอธิบายรูปภาพที่นี่

ในการสร้างแอพของคุณใน iOS 6 ดังนั้นการออกแบบแอพของคุณจะเป็นการออกแบบที่เก่ากว่าบน iPhone ที่มี iOS 7 ด้วย: - เลือก iOS6.1 ในเป้าหมาย - SDK พื้นฐาน

ป้อนคำอธิบายรูปภาพที่นี่

เพียงแค่ทราบ: เมื่อคุณเปลี่ยน SDK พื้นฐานในเป้าหมายของคุณ iOS 7.0 จะไม่สามารถใช้งานได้อีกต่อไปสำหรับการสร้างบนเครื่องจำลอง!


9

ทำได้แต่ไม่จำเป็นจริงๆ

วิธีการทำเช่นนี้

เจสันลีได้รับคำตอบ เมื่อทำการติดตั้ง 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 รุ่นก่อนหน้าเป็น base sdk

ทำไมมันไม่จำเป็น

การอ้างอิง Apple Documentaion

ในการใช้ SDK เฉพาะสำหรับโครงการ Xcode ให้เลือกสองทางในการตั้งค่าการสร้างโครงการของคุณ

  1. เลือกเป้าหมายการใช้งาน

    นี่เป็นการระบุเวอร์ชันของระบบปฏิบัติการที่เร็วที่สุดที่ซอฟต์แวร์ของคุณสามารถรัน

  2. เลือก SDK พื้นฐาน

    ซอฟต์แวร์ของคุณสามารถใช้คุณสมบัติที่มีอยู่ในระบบปฏิบัติการเวอร์ชันสูงถึงและรวมถึงคุณสมบัติที่สอดคล้องกับ SDK พื้นฐาน ตามค่าเริ่มต้น Xcode จะตั้งค่านี้เป็นระบบปฏิบัติการใหม่ล่าสุดที่ Xcode รองรับ

กฎใช้ล่าสุดเป็นฐาน SDK และตั้งค่าเป้าหมายการปรับใช้เป็นแอพเวอร์ชันขั้นต่ำที่ควรรัน

ตัวอย่างเช่นคุณสามารถใช้ iOS 7 เป็นฐาน sdk และตั้งค่า iOS 6 เป็นเป้าหมายการปรับใช้ เรียกใช้โปรแกรมจำลองการทำงาน iOS 6 เพื่อทดสอบวิธีการทำงานบน iOS 6 ติดตั้งโปรแกรมจำลองหากไม่สามารถใช้ได้กับรายการตัวจำลอง

ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้คุณสามารถใช้คุณสมบัติได้อย่างไม่มีเงื่อนไขจนถึง iOS 6 และตามเงื่อนไขคุณสามารถรองรับคุณสมบัติใหม่ของ iOS 7 สำหรับอุปกรณ์ที่อัปเดตใหม่ในขณะที่รองรับเวอร์ชันก่อนหน้า

ซึ่งสามารถทำได้โดยใช้การเรียนการสอนที่เชื่อมโยงอ่อน , เชื่อมอ่อนวิธี , ฟังก์ชั่นและสัญลักษณ์

https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3

การเชื่อมโยงที่อ่อนแอ

สมมติว่าใน Xcode คุณตั้งค่าเป้าหมายการปรับใช้ (เวอร์ชันต่ำสุดที่จำเป็น) เป็น iOS6 และ SDK เป้าหมาย (เวอร์ชันสูงสุดที่อนุญาต) เป็น iOS7 ระหว่างการรวบรวมคอมไพเลอร์จะทำการเชื่อมโยงอินเตอร์เฟสใด ๆ ที่เปิดตัวใน iOS7 อย่างอ่อนแรง สิ่งนี้จะทำให้แอปพลิเคชันของคุณสามารถทำงานต่อบน iOS6 ได้ แต่ยังคงใช้ประโยชน์จากคุณสมบัติที่ใหม่กว่าเมื่อมีให้ใช้งาน


4

คำตอบอื่นที่นี่ก็ถูกต้องเช่นกัน แต่ฉันพบว่าขั้นตอนต่อไปนี้เป็นวิธีที่ง่ายที่สุด:

เพียงดาวน์โหลด Xcode 4.6.3 จากลิงค์ศูนย์ dev ที่ระบุว่า "กำลังมองหา 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 อีกครั้งและเสร็จสิ้น


3

แอปของฉันถูกเปลี่ยนเป็น Xcode 5 อย่างราบรื่นเพราะมันยังสามารถสร้างด้วยเป้าหมายการปรับใช้ iOS ดั้งเดิมที่คุณตั้งไว้ในโครงการ (5.1 ในกรณีของฉัน) หาก SDK ใหม่ไม่ได้ทำให้เกิดปัญหาผ่านไม่ได้ทำไมไม่สร้างมันขึ้นมาใช้? แน่นอนว่ามีการปรับปรุงมากมายภายใต้ประทุน

ตัวอย่างเช่นฉันจะชอบใช้ Xcode 5 มากกว่า Xcode 4.6.3 ทำไม? ฉันจะใช้งานแบตเตอรี่ได้นานขึ้นเนื่องจากการเลื่อน UI ของพื้นที่ข้อความ / รหัสใน Xcode 5 จะไม่ทำให้เธรด CPU ทั้งเธรดหายไปอีก


เหตุผลที่ไม่ควรทำ - Xcode 5 ค่อนข้างไม่เสถียรในขณะนี้ ล้มเหลวทุกชั่วโมงสำหรับฉัน นอกจากนี้ยังมีปัญหาตำแหน่งแปลกและปัญหาสีในบางมุมมอง (แม้ว่าจะไม่ได้ทำงานมากนักในการแก้ไข)
Nick H247

2

การลิงก์ 6.1 SDK เข้ากับ Xcode 5 ดังอธิบายในคำตอบอื่น ๆ เป็นขั้นตอนเดียว อย่างไรก็ตามสิ่งนี้ยังคงไม่สามารถแก้ปัญหาที่ใช้งานบนองค์ประกอบ UI ใหม่ของ iOS 7 ได้ตัวควบคุมมุมมองทำเต็มขนาดเป็นต้น

ตามที่อธิบายไว้ในคำตอบนี้จำเป็นต้องเปลี่ยน UI ไปเป็นโหมดดั้งเดิมใน iOS 7:

[[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 ต่อไปในการดีบัก


1

ฉันดาวน์โหลด XCode 4 และใช้ iOS 6.1 SDK จากนั้นไปยัง XCode 5 ดังที่อธิบายไว้ในคำตอบอื่น ๆ จากนั้นฉันก็ติดตั้ง iOS 6.1 Simulator (มีให้ในการตั้งค่า) ฉันเปลี่ยน Base SDK เป็น iOS 6.1 ในการตั้งค่าโครงการด้วย

หลังจากการจัดการทั้งหมดนี้โครงการที่มี 6.1 ฐาน sdk ทำงานในโหมดความสามารถในการจำลอง iOS 7


1

ตั้งแต่วันที่ 1 กุมภาพันธ์ Apple จะปฏิเสธแอปที่สร้างขึ้นสำหรับ iOS6 หรือต่ำกว่าเท่านั้น นี่คือการสื่อสารอย่างเป็นทางการจาก Apple เริ่มการสร้างที่ดีขึ้นสำหรับ iOS7

เพื่อชี้แจงคำสั่งของฉัน: หากคุณสร้างสำหรับ iOS6 หรือต่ำกว่าแอปเปิ้ลจะปฏิเสธแอปของคุณ หากคุณสร้างสำหรับ iOS7 และลดทุกอย่างเรียบร้อยก็หมายความว่า:

  1. คุณต้องใช้ xcode5
  2. คุณควรปรับใช้บน iOS7 อย่างน้อย

เนื้อหาของอีเมล Apple ค่อนข้างชัดเจนสำหรับฉัน

"ตรวจสอบให้แน่ใจว่าแอพของคุณทำงานได้อย่างราบรื่นด้วยเทคโนโลยีที่เป็นนวัตกรรมใน iOS 7 ตั้งแต่วันที่ 1 กุมภาพันธ์แอพใหม่และการอัปเดตแอพที่ส่งไปยัง App Store จะต้องสร้างด้วย Xcode 5 และ iOS 7 SDK"


ใช่ แต่ iOS 6 SDK ทำงานได้ดีกับ iOS 7 เช่นกัน แอพบางตัวเจ็บปวดที่ต้องเปลี่ยน
Aniruddh Joshi

ฉันเชื่อว่าคุณไม่ถูกต้อง Apple ต้องการ (a) สร้างโดย Xcode 5 ล่าสุดและ (b) ปรับให้เหมาะสมสำหรับ iOS 7 ดูความคิดเห็นของฉันเกี่ยวกับคำตอบของ Rob Napierสำหรับลิงก์
Basil Bourque

พวกเราบางคนพัฒนาเพื่อการแจกจ่ายระดับองค์กรและต้องกำหนดเป้าหมาย SDK ที่เก่ากว่า (และอุปกรณ์) แอพระดับองค์กรไม่ผ่านกระบวนการตรวจสอบของ Apple และ / หรือ App Store และการสนทนานี้มีประโยชน์มากยังคงเกี่ยวข้องและจะยังคงมีความเกี่ยวข้องในอนาคต ฉันเข้าใจมุมมองของคุณ แต่ไม่ใช่เพียงอย่างเดียว
Kevin OMara

คุณพูดถูก !!! ฉันไม่ได้คิดถึงการกระจายตัวขององค์กร แต่อย่าลืมว่าคุณยังคงสามารถปรับใช้บน iOS6 ด้วย Xcode ใหม่เพียงแค่ตั้งค่าเป้าหมายการปรับใช้โดยไม่ต้องกังวลเกี่ยวกับการเพิ่มประสิทธิภาพ ios7 และกระบวนการตรวจสอบ
Andrea

0

ปัจจุบันฉันติดตั้ง Xcode 4.6.3 และ 5.0 แล้ว ฉันใช้สคริปต์ทุบตีต่อไปนี้เพื่อลิงก์ 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

โปรดทราบว่าการอัปเกรดเป็น 5.1 ลบ 7.0.x SDK ของฉันและแทนที่ด้วย 7.1 SDK ฉันมีการติดตั้งแบบเก่าXcode5-DP6ซึ่งฉันสามารถกู้คืน 7.0.x จากได้ แต่นี่เป็นการเตือนที่ดีในการสำรองข้อมูล SDK ของผู้ใช้ (หรือเปลี่ยนชื่อแอปทั้งหมด) ก่อนที่จะอัปเกรดเป็นหรือติดตั้งเวอร์ชัน Xcode ล่าสุด
Wayne
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.