Keuntungan terbesar kerangka kerja memiliki lebih dari perpustakaan statis adalah mereka bertindak sebagai cara yang rapi untuk mengemas biner perpustakaan yang dikompilasi dan header terkait lainnya. Mereka dapat dimasukkan ke dalam proyek Anda (seperti kerangka kerja built-in SDK seperti Foundation dan UIKit) dan mereka seharusnya bekerja (sebagian besar waktu).
Sebagian besar kerangka kerja berisi perpustakaan dinamis; kerangka kerja yang dibuat dalam Xcode menggunakan templat Kerangka Mac akan membuat perpustakaan dinamis. IPhone tidak mendukung kerangka kerja dinamis yang menjadi alasannya mengapa perpustakaan yang dapat digunakan kembali dari kode iOS dapat didistribusikan sebagai perpustakaan statis.
Perpustakaan statis baik-baik saja, tetapi mereka membutuhkan sedikit kerja ekstra dari pihak pengguna. Anda perlu menautkan proyek Anda ke perpustakaan dan Anda perlu menyalin file header ke proyek Anda atau referensi mereka di suatu tempat dengan mengatur jalur pencarian header yang sesuai dalam pengaturan build Anda.
Jadi: dalam ringkasan, pendapat saya adalah bahwa cara terbaik untuk mendistribusikan perpustakaan Anda adalah sebagai suatu kerangka kerja. Untuk membuat kerangka "statis" untuk iOS, Anda pada dasarnya dapat mengambil kerangka kerja normal dan mengganti biner dengan pustaka statis terkompilasi Anda. Ini adalah bagaimana saya mendistribusikan salah satu perpustakaan saya, Resty dan bagaimana saya bermaksud untuk mendistribusikan perpustakaan saya di masa depan.
Anda mungkin ingin melihat Rakefile yang disediakan dalam proyek itu (jika Anda tidak sadar, Rake adalah setara dengan Make dari Ruby). Saya memiliki beberapa tugas untuk mengkompilasi proyek saya (menggunakan xcodebuild
) dan mengemasnya sebagai kerangka kerja statis untuk iOS. Anda harus menemukan ini berguna.
Atau, Anda mungkin ingin menggunakan templat Xcode 4 ini untuk membuat kerangka kerja iOS.
Pembaruan 9 Des 2013 : ini adalah jawaban yang populer jadi saya pikir saya akan mengedit untuk mengatakan bahwa pilihan pertama saya untuk distribusi perpustakaan telah berubah. Pilihan pertama saya untuk perpustakaan pihak ketiga mana pun sebagai konsumen atau produsen adalah CocoaPods. Saya mendistribusikan perpustakaan saya menggunakan CocoaPods dan menawarkan perpustakaan statis yang sudah dikompilasi dengan header sebagai opsi mundur.