August 03, 2012

ทำ .framework

ก่อนหน้านี้เวลาทำ library ใช้กันภายในทีมก็จะเลือกสร้างโปรเจ็คโดยเลือกใช้ template ชื่อ Cocoa Touch Static Library



ซึ่งหลังจากเราสั่ง build โปรแกรมแล้ว จะได้ไฟล์ static library ที่มีนามสกุล .a มาสำหรับส่งให้คนอื่นๆ นำไปใช้งาน ซึ่งเอาเข้าจริงแล้วเวลาเราส่งไฟล์ .a นี้ให้คนอื่น เราจำเป็นต้องแนบไฟล์ .h ติดไปด้วย ทำให้ส่งไปทีนึงก็ต้องส่งไปหลายไฟล์ ทำให้รู้สึกไม่ค่อยสะดวกเท่าไหร่

เราจึงจะมาทำให้รู้สึกสะดวกด้วยการสร้าง static framework มาใช้ ส่วนที่ว่าทำไมถึงต้องสร้าง static framework ก็เพราะว่าเราสามารถส่งไฟล์ .framework ที่ได้ไปให้คนอื่นๆ ใช้ได้เลย ไม่ต้องแยกส่ง .a ที และ .h ต่าๆง นาๆ ที และที่สำคัญอีกอย่างก็คือ iOS ไม่สนับสนุน dynamic framework ยังไงล่ะ :D กำปั้นทุบดินมะ

จริงๆ structure ของ .framework ที่เราจะสร้างมันก็คือ folder หนึ่งที่บรรจุไฟล์จำนวนหนึ่งตามโครงสร้างที่ถูกต้อง แต่ถ้าต้องสร้าง structure ของ framework เองกับมือทุกครั้งที่สร้างก็คงไม่ค่อยสะดวก แต่โลกนี้ยังหลงเหลือคนใจดี ที่ได้ทำ template สำหรับสร้าง static framework ไว้ให้เราแล้ว

หลังจากดาวน์โหลดโปรเจ็คมาแล้วให้เข้าไปรันไฟล์ install.sh เพื่อให้มันติดตั้ง template ให้เรา จากนั้นต่อไปนี้เมื่อเราเข้าไปสร้างโปรเจ็คใหม่ใน Xcode เราก็จะเห็น template ชื่อ Static iOS Framework อยู่ในหมวด Framework & Library แล้ว



วิธีใช้งานก็สร้าง Class ขึ้นมาตามปกติได้เลย และเมื่อ build โปรเจ็คเราจะได้ Products เป็นไฟล์ .framework พร้อมสำหรับการนำไปใช้ในโปรเจ็คอื่นๆ แล้ว

อย่างหนึ่งที่ห้ามลืมก็คือให้เข้าไปกำหนดค่าใน Build Phases ในส่วนของ Copy Headers เพื่อกำหนดให้ header ไฟล์ไหนเป็น private หรือ public นั่นเอง หาก header ไม่ได้มาอยู่ในสว่น public แล้ว คนนำไปใช้จะไม่สามารถมองเห็น header ตัวนั้นได้



:)