ความหมายของ Base SDK, เป้าหมายการปรับใช้ iOS, เป้าหมายและโครงการใน xcode คืออะไร


162

ถ้าฉันตั้ง SDK พื้นฐานเป็น 7 มันหมายความว่าอย่างไร อาจหมายความว่าแอปจะทำงานบน iOS 7 แต่นั่นคือเป้าหมายการปรับใช้ของ iOS

อีกทั้งทำไมฉันจึงระบุค่าทั้งสามในโครงการและเป้าหมาย มันไม่สมเหตุสมผล ทำไมต้องระบุสิ่งเดียวกันสองครั้ง


มีคำตอบที่กระชับสำหรับคำถามใหม่นี้: stackoverflow.com/a/41278576/498949
Chris Rae

คำตอบ:


80

SDK พื้นฐานคือสิ่งที่คุณสร้างแอปของคุณ (เช่น include และไฟล์ไลบรารีและกรอบงาน) อย่างที่คุณพูดมันจะไม่ส่งผลต่อเป้าหมายการปรับใช้ยกเว้นฐาน sdk> = เป้าหมายการปรับใช้

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

ตัวอย่างเช่นฉันมีโครงการที่มีทั้งเป้าหมาย OSX และ iOS และบางโครงการเป็น ARC และบางโครงการเป็น MRR ฉันจะต้องมีโครงการที่แตกต่างกันสำหรับแต่ละถ้าฉันไม่สามารถระบุการตั้งค่าการสร้างด้วยระดับของความละเอียดที่ Xcode อนุญาต


197

ในiOS 7 TechTalkเซสชั่น Architecting Modern Apps ส่วนที่ 2 พวกเขาอธิบายสิ่งนี้อย่างชัดเจน

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

ดีอ่านสวัสดี! ฉันว่าง!

ดังนั้นแอพที่ทันสมัยอาจใช้ iOS 9 เป็น Target SDK และ iOS 7 เป็นเป้าหมายการปรับใช้ ซึ่งหมายความว่าคุณสามารถทำงานบน iOS 7, iOS 8 และ iOS 9 และคุณสามารถใช้การโทร iOS 9 ได้ทุกเมื่อเมื่อทำงานบน iOS 9

คุณสามารถอ่านเพิ่มเติมได้ในโพสต์SDK และเป้าหมายการปรับใช้ของฉัน


20
อ้างอิงดี .. และส่วนนี้ถูกฝังไว้ที่ประมาณ 25:17 ในวิดีโอ 50 นาทีนี้
แดเนียล

2
ดี! แต่จะเกิดอะไรขึ้นถ้าคุณตั้งค่า Base SDK = 7.0 แล้วลองติดตั้งลงใน iOS 8.0 เราต้องดาวน์โหลด XCode ล่าสุดเพื่อรองรับ Base SDK ล่าสุดตลอดเวลาหรือไม่?
GoRoS

2
@chichilatte ไม่คุณไม่ต้องการ แอพนี้ยังคงรองรับ iOS 12, iOS 13, ... แต่มันไม่มีคุณสมบัติใหม่ของ iOS 12, iOS 13 .... ในการใช้คุณสมบัติใหม่ของ iOS 12 คุณจะต้องรวบรวม iOS 12 SDK และใช้ API จาก iOS 12
onmyway133

3
ขอบคุณที่ทำให้รู้สึก ฉันคิดว่าความคิดเห็นของ @ Kunal-Balani ด้านบนผิด
chichilatte

2
@ Kunal-Balani ผู้แสดงความคิดเห็นคนอื่น ๆ ถูกต้อง คุณไม่จำเป็นต้องคอมไพล์แอปของคุณใหม่หากระบบปฏิบัติการเวอร์ชันใหม่มาพร้อมกับเวอร์ชันที่คุณสร้างขึ้นเว้นแต่ว่าพวกเขาจะลบการสนับสนุนสิ่งที่แอพของคุณใช้อยู่ในปัจจุบันจนกว่าพวกเขาจะได้รับการสนับสนุนที่นำออกไปสำหรับสิ่งที่แอปของคุณใช้อยู่ในปัจจุบันระบบปฏิบัติการรุ่นใหม่ไม่ได้หมายความว่าแอปของคุณที่สร้างขึ้นมากับ SDK รุ่นเก่าจะหยุดทำงานทันที หากเป็นเช่นนั้นจะไม่มีใครอัพเกรดเพราะมันหมายถึงทุกแอพที่พวกเขามีอยู่ในปัจจุบันจะหยุดทำงานจนกว่าเวอร์ชั่นใหม่จะออกมาซึ่งไม่จริง
Mark A. Donohoe

67

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

ดูเอกสารประกอบของ Apple สำหรับรายละเอียดเพิ่มเติม: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.