Bagaimana cara membangun kerangka kerja atau pustaka untuk pengembang lain, dengan cara yang aman? [Tutup]

106

Kami memiliki ide untuk kerangka kerja atau pustaka yang akan sangat membantu untuk pengembang iOS mana pun. Jadi kami benar-benar berpikir untuk beralih dari pengembangan aplikasi ke pengembangan framework / perpustakaan.

Tapi ketika kita ingin menagih library / framework, kita harus melindungi kode tersebut. Bagaimana kita bisa membangun kerangka sedemikian rupa sehingga pengguna kerangka kerja kita tidak dapat melihat kode sumber, mirip dengan bagaimana kita tidak dapat melihat kode sumber kerangka kerja Apples? Mereka hanya mengirimkan file header dan beberapa file exe Unix aneh dengan kerangka kerja yang dikompilasi, saya kira.

Atau jika tidak mungkin membuat kerangka kerja / pustaka terkompilasi yang dapat digunakan oleh pengembang iOS lain tanpa dapat menyalin & menempel kode sumber kami, apakah ada cara untuk mengaburkan kode objektif-c?

Anggota Bangga
sumber
22
File exe Unix :-)
Besi
6
Jika Anda benar-benar ingin membantu pengembang iOS, buka sumbernya!
Kaan Dedeoglu
4
@KaanDedeoglu - Ada pro dan kontra bagi pengguna di kedua skenario. Secara pribadi, saya lebih suka sumber tertutup dengan harga terjangkau, semuanya terdokumentasi dengan baik, didukung, dan hanya berfungsi sebagai kerangka kerja sumber terbuka, tidak didukung dan tidak berdokumen. Rare adalah kerangka kerja sumber terbuka yang sebenarnya hampir terdokumentasi dengan baik DAN dipelihara secara aktif.
ArtOfWarfare

Jawaban:

113

Ya, adalah mungkin untuk membangun kerangka kerja sehingga pengguna kerangka tidak dapat melihat kode sumbernya.

Lihat artikel ini (saya telah berhasil menggunakan yang pertama untuk membuat kerangka kerja di masa lalu - artikel selanjutnya adalah pembaruan ke aslinya):

http://www.drobnik.com/touch/2010/04/making-your-own-iphone-frameworks/

http://www.drobnik.com/touch/2010/05/making-your-own-iphone-frameworks-in-xcode/

http://www.drobnik.com/touch/2010/10/embedding-binary-resources/

Untuk menggunakan kerangka kerja, pengguna Anda cukup menyeret bundel .framework ke Xcode. Mereka akan dapat melihat file header yang Anda salin ke dalam bundel (lihat artikel di atas), tetapi bukan sumbernya (karena tidak disertakan - hanya output yang dikompilasi yang ada di dalam bundel).

Ini juga bisa menjadi cara yang bagus untuk mendistribusikan kode yang digunakan untuk beberapa proyek dalam perusahaan Anda.


Memperbarui:

Lihat tautan tanpa bulu yang ditambahkan di bawah - ini jauh lebih baru dan semuanya dalam satu halaman: http://github.com/jverkoey/iOS-Framework . Ini juga menjabarkan masalah dengan beberapa pendekatan lain. Ini adalah panduan yang sekarang saya ikuti ketika mencoba mengingat apa yang harus dilakukan saat menyiapkan kerangka kerja baru. :)

Update2 (dengan rilis Xcode 6)

Ada pilihan, persis yang Anda cari Universal Framework for iOS:!

Akankah kode saya terlihat oleh orang lain? J: Tidak. Framework ini akan mengekspor biner yang telah dikompilasi, sehingga siapa pun dapat melihat di dalamnya. Anda dapat membuat hal yang sama untuk beberapa file lain, seperti XIB.

Mengapa saya membutuhkan ini? J: Ini untuk pengembang / tim yang ingin membagikan kode mereka tanpa menunjukkan keseluruhan kode (file .m / .c / .cpp). Selain itu, ini untuk yang ingin mengatur kode + sumber daya yang dikompilasi (gambar, video, suara, XIB, plist, dll) ke dalam satu tempat. Dan ini juga untuk tim yang ingin bekerja sama di atas dasar yang sama (kerangka kerja).

(c) http://blog.db-in.com/universal-framework-for-ios/

Jay Peyer
sumber
1
Terima kasih sobat! Apple tidak akan menolak aplikasi karena trik ini? Apakah Anda benar-benar mendapatkan Aplikasi yang disetujui di App Store yang menggunakan kerangka kerja seperti itu?
Anggota Bangga
3
Untuk kembali ke ini, karena Xcode 4 -all_load linker flag dalam setelan build "Other Linker Flags" tidak diperlukan. -ObjC adalah satu-satunya flag yang Anda butuhkan.
Daniel
Anda benar Daniel, salah satu versi terbaru dari LLVM / Clang memperbaikinya. Terima kasih!
Jay Peyer
Suka tautan github ke Kerangka iOS, +1
sbonami
Catatan: Jika Anda memiliki Xcode 4.5, Anda akan memerlukan sedikit modifikasi pada tutorial seperti yang didokumentasikan di sini: stackoverflow.com/questions/13571080/…
Lolo
9

Ada juga template untuk XCode 4 yang memungkinkan Anda membuat proyek kerangka statis iOS.

Greg
sumber
apakah Anda mengetahui proyek yang telah dirilis dengan metode ini?
Tomen
Tidak, saya tidak. Saya sedang mengerjakan salah satu yang akan kami rilis dengan cara ini, tetapi saya tidak yakin apakah itu yang akan kami lakukan pada akhirnya.
Greg