ข้อได้เปรียบที่ใหญ่ที่สุดที่เฟรมเวิร์กมีเหนือไลบรารีแบบคงที่คือพวกมันทำหน้าที่เป็นวิธีการบรรจุไบนารีของไลบรารีที่คอมไพล์และส่วนหัวที่เกี่ยวข้องอย่างเป็นระเบียบ สามารถทิ้งลงในโปรเจ็กต์ของคุณได้ (เช่นเดียวกับเฟรมเวิร์กในตัวของ SDK เช่น Foundation และ UIKit) และควรใช้งานได้จริง (เกือบตลอดเวลา)
เฟรมเวิร์กส่วนใหญ่มีไลบรารีแบบไดนามิก เฟรมเวิร์กที่สร้างใน Xcode โดยใช้เทมเพลต Mac Framework จะสร้างไลบรารีแบบไดนามิก iPhone ไม่รองรับเฟรมเวิร์กแบบไดนามิกซึ่งเป็นสาเหตุที่ทำให้ไลบรารีโค้ด iOS ที่ใช้ซ้ำได้กลายเป็นไลบรารีแบบคงที่แทน
ไลบรารีแบบคงที่เป็นสิ่งที่ดี แต่พวกเขาต้องการการทำงานเพิ่มเติมเล็กน้อยในส่วนของผู้ใช้ คุณต้องเชื่อมโยงโปรเจ็กต์ของคุณกับไลบรารีและคุณต้องคัดลอกไฟล์ส่วนหัวลงในโปรเจ็กต์ของคุณหรืออ้างอิงจากที่ใดที่หนึ่งโดยตั้งค่าพา ธ การค้นหาส่วนหัวที่เหมาะสมในการตั้งค่าบิลด์ของคุณ
ดังนั้น: โดยสรุปแล้วความเห็นของฉันก็คือวิธีที่ดีที่สุดในการกระจายห้องสมุดของคุณคือกรอบ ในการสร้างเฟรมเวิร์ก "คงที่" สำหรับ iOS คุณสามารถใช้เฟรมเวิร์กปกติและแทนที่ไบนารีด้วยไลบรารีคงที่ที่คอมไพล์ของคุณได้ นี่คือวิธีที่ฉันแจกจ่ายไลบรารีRestyและเป็นวิธีที่ฉันตั้งใจจะแจกจ่ายห้องสมุดของฉันในอนาคต
คุณอาจต้องการดู Rakefile ที่ให้มาในโปรเจ็กต์นั้น (ในกรณีที่คุณไม่ทราบว่า Rake เทียบเท่ากับ Make ของ Ruby) ฉันมีงานจำนวนหนึ่งสำหรับการรวบรวมโปรเจ็กต์ของฉัน (โดยใช้xcodebuild
) และบรรจุเป็นเฟรมเวิร์กแบบคงที่สำหรับ iOS คุณควรพบว่าสิ่งนี้มีประโยชน์
หรือคุณอาจต้องการใช้เทมเพลต Xcode 4 เหล่านี้เพื่อสร้างกรอบงาน iOS
อัปเดต 9 ธันวาคม 2556 : นี่เป็นคำตอบยอดนิยมดังนั้นฉันคิดว่าฉันจะแก้ไขเพื่อบอกว่าตัวเลือกแรกสำหรับการแจกจ่ายห้องสมุดมีการเปลี่ยนแปลง ตัวเลือกแรกของฉันสำหรับไลบรารีของบุคคลที่สามในฐานะผู้บริโภคหรือผู้ผลิตคือ CocoaPods ฉันแจกจ่ายไลบรารีของฉันโดยใช้ CocoaPods และเสนอไลบรารีแบบคงที่ที่คอมไพล์ไว้ล่วงหน้าพร้อมส่วนหัวเป็นตัวเลือกสำรอง