(Tahminen şu soru aksi bir Framework veya dinamik kütüphane kullanma olasılığı olurdu aslında kenara, iPhone özgü değildir.)Statik (iPhone) kütüphaneler, dağıtımı ve bağımlılıkları
Ben tescilli iPhone inşa ediyorum Bir müşterinin SDK'sini web arka uçlarıyla entegre etmek. Kaynak kodunu müşterilere dağıtmak istemediğimizden, SDK'yı statik bir kütüphane olarak dağıtmamız gerekiyor. Tüm bunlar iyi çalışıyor ve yeni iPhone uygulamalarını kütüphaneye bağlayıp cihazınıza yükleyebileceğimi doğruladım.
Sorunum, SDK'mizin bağımlı olduğu üçüncü taraf kitaplıkları ile ilgilidir. Mesela şu anda HTTPRiot ve Three20 kullanıyoruz (tam kütüphaneler değişebilir, fakat konu bu değil). Müşterilerin bu kitaplıklardan herhangi birini (ve belki de farklı sürümlerini) de uygulamalarında kullanmaları durumunda bunun anlaşmazlıklara yol açabileceğinden endişeleniyorum.
Bu konuda en iyi uygulamalar nelerdir? Bağımlı kütüphanelerin sembollerini kendi statik kütüphanemizden çıkarmanın bir yolu var mı (bu durumda müşterilerimiz hem SDK'mız hem de HTTPRiot ve Three20 ile manuel olarak bağlantı kurmak zorunda kalacaklardı)? Yoksa başka bir mekanizma var mı?
Kullanım kolaylığı ile esneklik/uyumluluk arasında bir denge kurmaya çalışıyorum. İdeal olarak müşterilerimiz kendi SDK'mizi kendi projelerine bırakmalı ve çok az sayıda yapı ayarları değişikliği yapmalıdır, ancak işleri daha sağlam kılarsa, müşterilerin tek tek çoklu kütüphanelere karşı bağlantı kurması daha mantıklı olabilir. Ya da her iki vakayı da kapsayacak şekilde üçüncü taraf bağımlılıkları olan ve olmayan SDK'nın birden çok sürümünü dağıtabileceğimizi varsayalım.)
Makul bir yaklaşım gibi görünüyor. Bazı üçüncü taraf kitaplıklarının kaynak biçiminde dağıtıldığı ve açık sürümlendirmeye sahip olmadığı için, sürüm biraz zor. Ama sanırım belirli bir Github taahhüdünü veya tarihini gösterebilirim. Müşterilerin, üçüncü taraf kitaplıklarını yükseltmeleri için desteklenmeyen bir işlem ekleme olasılığından bahsetmiştiniz. Bunu nasıl değiştirirdim? Üçüncü parti sembolleri kendi SDK'larımızın bir parçası haline geldiğinden, bunun bir çatışma ile sonuçlanacağı anlaşılıyor. –
Bunu düşünmek için zamanım olmadı, ama "zayıf bağlantı" size hiç yardımcı olur mu? http://developer.apple.com/iphone/news/archives/november2009/# adding3xto2x –
Genel olarak, ürünü (kitaplığınızı ve diğer üçüncü tarafları içeren) yeniden oluşturmak için bir betik verebilir misiniz? (> 2GB) iPhone SDK'nın kurulu olduğu sürece, bunları her şeyi bir arada tutan basit bir Xcode projesi için xcodebuild'i çağıran bir betik verebilir misiniz? Biraz karışıklık olsa da. En kolay şey, sürümleri yetkilendirmek ve yükseltilmiş kütüphanelere karşı yeni bir sürüm için sizinle iletişim kurmakta ısrar etmektir. Çok fazla kabul testini fiyata da dahil edebilirsiniz ... IMO bunu yapmak için tamamen makul. –