Diğer geliştiriciler için güvenli bir şekilde çerçeve veya kitaplık nasıl oluşturulur? [kapalı]


106

Herhangi bir iOS geliştiricisi için çok yararlı olacak bir çerçeve veya kitaplık fikrimiz var. Bu nedenle, uygulama geliştirmeden çerçeve / kitaplık geliştirmeye geçiş yapmayı ciddi olarak düşünüyoruz.

Ancak kütüphane / çerçeve için ücret talep etmek istediğimizde, kodu bir şekilde korumalıyız. Apples çerçevelerinin kaynak kodunu göremememize benzer şekilde, çerçevemizin kullanıcısının kaynak kodunu göremeyeceği bir çerçeveyi nasıl oluşturabiliriz? Sanırım sadece başlık dosyalarını ve bazı garip Unix exe dosyalarını derlenmiş çerçeveyle birlikte gönderiyorlar.

Veya diğer iOS geliştiricilerinin kaynak kodlarımızı kopyalayıp yapıştırmadan kullanabilecekleri derlenmiş bir çerçeve / kitaplık yapmak mümkün değilse, o zaman amaç-c kodunu gizlemenin bir yolu var mı?


22
Unix exe dosyası :-)
Besi

6
İOS geliştiricilerine gerçekten yardımcı olmak istiyorsanız, onu açın!
Kaan Dedeoğlu

4
@KaanDedeoglu - Her iki senaryoda da kullanıcılar için artılar ve eksiler var. Şahsen, makul fiyatlı bir kapalı kaynağı tercih ederim, her şey iyi belgelenmiş, desteklenmiş ve sadece açık kaynaklı, desteklenmeyen ve belgelenmemiş bir çerçevede çalışır. Nadir, aslında her yerde iyi belgelenmiş VE aktif olarak bakımı yapılan açık kaynaklı çerçevedir.
ArtOfWarfare

Yanıtlar:


113

Evet, çerçeve kullanıcısı kaynak kodunu göremeyecek şekilde çerçeveler oluşturmak mümkündür.

Şu makalelere göz atın (geçmişte çerçeveler oluşturmak için ilkini başarıyla kullandım - sonraki makaleler orijinalin güncellemelerinden oluşuyor):

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/

Çerçeveyi kullanmak için, kullanıcılarınız .framework paketini Xcode'a sürükler. Pakete kopyaladığınız başlık dosyalarını görebilirler (yukarıdaki makalelere bakın), ancak kaynağı göremezler (dahil olmadığından - yalnızca derlenen çıktı pakette bulunur).

Bu aynı zamanda şirketinizdeki birden fazla proje için kullanılan kodu dağıtmanın harika bir yolu olabilir.


Güncelleme:

Aşağıda eklenen tüysüz bağlantıya göz atın - çok daha yeni ve hepsi tek bir sayfada: http://github.com/jverkoey/iOS-Framework . Ayrıca, diğer birkaç yaklaşımla ilgili sorunları da ortaya koymaktadır. Yeni bir çerçeve kurarken ne yapacağımı hatırlamaya çalışırken şimdi takip ettiğim kılavuz budur. :)

Güncelleme2 (Xcode 6 sürümüyle)

Bir seçenek tam olarak sen misin yeniden arayan vardır: Universal Framework for iOS!

Kodum başkaları tarafından görülebilir mi? C: Hayır. Bu Çerçeve, derlenmiş bir ikili dosyayı dışa aktarır, böylece herkes onun içini görebilir. Aynısını XIB'ler gibi diğer bazı dosyalar için de yapabilirsiniz.

Buna neden ihtiyacım var? C: Bu, kodlarının tamamını (.m / .c / .cpp dosyaları) göstermeden kodlarını paylaşmak isteyen geliştiriciler / ekipler içindir. Bunun yanı sıra, derlenmiş kod + kaynakları (resimler, videolar, sesler, XIB'ler, plist vb.) Tek bir yerde düzenlemek isteyenler içindir. Ve bu aynı temel (çerçeve) üzerinde birlikte çalışmak isteyen ekipler için de geçerlidir.

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


1
Teşekkürler dostum! Apple bu numara yüzünden bir uygulamayı reddetmeyecek mi? Gerçekten App Store'da böyle bir çerçeve kullanan onaylı bir Uygulama aldınız mı?
Proud Member

3
Sadece buna geri dönersek, Xcode 4 itibariyle "Other Linker Flags" derleme ayarında all_load bağlayıcı bayrağı gerekli değildir. -ObjC, ihtiyacınız olan tek bayraktır.
Daniel

Haklısın Daniel, LLVM / Clang'ın daha yeni sürümlerinden biri bunu düzeltti. Teşekkürler!
Jay Peyer

İOS

Not: Xcode 4.5'e sahipseniz, burada belgelendiği gibi eğiticide küçük bir değişikliğe ihtiyacınız olacak: stackoverflow.com/questions/13571080/…
Lolo


9

Ayrıca, iOS statik çerçeve projeleri oluşturmanıza izin verecek XCode 4 için bir şablon da vardır .


bu yöntemle piyasaya sürülen projeleri biliyor musunuz?
TOMEN

Hayır yok. Bu şekilde yayınlamayı düşündüğümüz bir tane üzerinde çalışıyorum, ancak sonunda bununla devam edeceğimizden emin değilim.
Greg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.