TestFlight bunu nasıl yapıyor?


197

TestFlight, iOS uygulamalarının (jailbreak yapmayan cihazlarda) havadan beta dağıtımını sunar. Bu nasıl yapılabilir? Bu bir iOS özelliği mi yoksa güvenlik açığından yararlanma mı?


Harika bir soru, ama bunun konuyla ilgili olup olmadığından emin değilim. Sınırda, IMO. Bununla birlikte, bunun cevabını da bilmek isterim, bu yüzden +1
Moshe

Bir iOS özelliği varsa, temel hazırlığı daha iyi anlamama yardımcı olacaktır.
hpique

12
@Moshe: Bunun neden konu dışı olduğunu düşündüğünüzü açıklayabilir misiniz?
Besi

Dolayısıyla soru, hiçbir şekilde kod yazmak için değil, bir dağıtım aracıyla ilgilidir. Yani, yorumumu neredeyse bir yıl önce yazdım. SO üzerindeki ortam biraz farklıydı.
Moshe

8
Bu çok iyi bir soru.
Gurur Üyesi

Yanıtlar:


87

TestFlight bir hizmet sunmadan önce bu mümkün oldu. Teknik, kurumsal dağıtım mekanizmasından kaynaklandı. 4.0 cihaz web'den yüklemeyi desteklediğinden beri.

Unutmayın - yine de herhangi bir cihaza kurmayacağınız belirli bir UDID seti için beta dağıtımını imzalamanız gerekir. Tek yaptıkları şey IPA'yı adım adım atmak.

Görmek:

Güncelleme: Test Flight'ın geliştirirken kullandığım en yararlı araçlardan biri olduğunu söylemek istiyorum. IPA'yı resmin dışına çıkarmak sadece bir yetersizlikti - sadece teknik mekanizmayı çağırmaya çalışıyordum. Tüm beta sürecini yönetmek için harika bir iş çıkarıyorlar. Yeni cihazların kaydedilmesi. Kullanıcıları bilgilendirme vb.


6
Nasıl para kazanıyorlar, ana sayfada ücretsiz diyor?
Jonathan.

1
Gelecekte bir çeşit premium teklif başlatacaklarını düşünüyorum. Şimdi ücretsiz ve yeni SDK gerçekten etkileyici. Çarpışma günlüklerini ve kullanım bilgilerini doğrudan test istemcilerinizden toplayabilir ve hatta dsyms'ınızı yüklemekte rahatsanız onları sembolize edebilir.
Nick

7
Oldukça etkileyici, sadece "Gerçek olamayacak kadar iyi olursa, genellikle internette" :)
Jonathan.

Üretimdeki hizmetleri için ücret alarak para kazanacaklarından ve beta hizmetlerini ücretsiz tutacağından şüpheleniyorum. Bugün üretim kullanımını resmi olarak desteklemiyorlar ve destek forumlarında yaklaşan bir "üretim çözümü" nü kullanmaya devam ediyorlar.
Nils

5
@Yalnızca cevabınızın tamamen doğru olmadığını düşünüyorum. You still need to sign the beta distribution for a select set of UDIDs you can't just willy nilly install it on any device. Bir kurumsal dağıtım hazırlık profili için cihazları belirtmek gerekmez ve yapabilirsiniz (en azından teknik olarak) herhangi bir cihaz üzerinde ikili yükleyin. Ancak lisans, lisansı yalnızca dağıtım profilinin verildiği şirkete yüklemenizi kısıtlar.
Besi

91

Bu makale, Apple OTA uygulamasının nasıl çalıştığını ve işletmeler dışında da kullanılabileceğini gösterdi: ios kablosuz uygulama dağıtımı

İşlemin tamamı Apple tarafından belgelenmiştir . Apple ayrıca, cihazları kaydetmek için dokümanları ve örnek kodu yayınladı ve profilleri kullanarak UDID'yi aldı, böylece web siteniz hangi cihazın aradığını tespit edebiliyor.

Farklı güçlere sahip bazı ek çözümler:

  • iOS Beta Builder , bir Mac uygulaması kullanarak bir web sitesi oluşturmak için bir yapı. Elde edilen dosyaları web sunucunuza yükleyin.

  • Diawi : Basit Web hizmeti. IPA dosyanızı yükleyin, isteğe bağlı olarak bir şifre belirleyin ve test kullanıcılarınıza bir bağlantı gönderin.

  • AppSendr : Beta derleme barındırma için web hizmeti, Testflight'a benzer, ancak cihaz kayıt işlemini içermez. Ancak, yeni sürümleri otomatik olarak yüklemek için dağıtım yardımcı programları sağlar.

  • HockeyKit : Uygulama içi güncellemeler için bir istemci, otomatik cihaza özel web siteleri ve birden fazla uygulamayı yönetme gibi ek işlevlerle kendi PHP5 sunucunuzda beta sürümlerini barındırmak için açık kaynaklı bir proje. Tamamen dosya ve dizin tabanlı.

  • HockeyApp : Beta yapı barındırma, Uygulama İçi Güncellemeler, İstatistikler ve cihaz kaydı, davet ve işe alım dahil Web Hizmeti. Ayrıca beta ve uygulama mağazası uygulamaları (iOS + Mac) için sunucu tarafı kilitlenme raporu toplama, sembolizasyon (tüm iş parçacıkları için) ve kilitlenme gruplaması sağlar. SDK'lar kullanarak, açık kaynak olan HockeyKit , QuincyKit ve PLCrashReporter , iOS'da çökme raporu koleksiyonu yaptığını görmek nasıl tek güvenli çözümdür ( bu yazıyı .

Not: Ben HockeyKit ve QuincyKit'in ana geliştiricisiyim ve HockeyApp'ın geliştiricilerinden biriyim .


5

Testflight temel olarak daha önce belirtildiği gibi normal Ad Hoc'u kullanır.

Bunun çalışması UDIDiçin, Ad Hoc profiline eklemek, uygulamayı yeni profil ile yeniden derlemek ve yeni yapıyı yeniden dağıtmak için her cihaza ihtiyacınız vardır .

UDIDOTA Kimlik Doğrulama İsteği yardımıyla alabilirsiniz . Bu aslında, gerçek profil cihaza yayılmadan önce MDM'de yapılan bir adımdır. Temel olarak cihazdan kendisi hakkında daha fazla bilgi talep eder ve kendi belirlediği bir sunucuya geri gönderir.

İlk adım burada belgelenmiştir: Apple OTA Yapılandırması

Testflight, kayıt işleminden hemen sonra UDID, telefon adını, ...


4

Evet, bu, OTA'yı dağıtmak isteyen Kurumsal Müşteriler için temel bir iOS özelliğidir.

Muhtemelen UDID'nizi uygulamayla birlikte TestFlight'a geçirirsiniz ve uygulamayı size göndermek için Kurumsal Lisanslarını kullanırlar. Eminim birçok teknik detayı kaçırıyorum ama daha fazla bilgi edinmek istiyorsanız, Apple'ın bu konuda WWDC 2010'dan bir videosu var.

Developer.apple.com'a giriş yapın, WWDC 2010 Videolarına gidin ve videolara ulaşmak için bağlantıyı kullanın. İstediğiniz video "Oturum 108 - Mobil Cihazları Yönetme". OTA ile nelerin mümkün olduğu ve OTA temini için atmanız gereken adımlar hakkında çok bilgilendiricidir.


0

Stok iOS cihazları , kullanıcının bu cihazın UDID'sine sahip herhangi bir geliştiriciden Ad Hoc uygulamaları yükleyerek çalıştırılmasına karşı "savunmasızdır" ve bu UDID'yi Apple'ın geliştirici portalında izin verilen 100 cihazı arasında kaydeder.

OTA dağıtımı, kayıtlı bir geliştiriciden Ad Hoc beta testi dağıtımı kurmanın başka bir yoludur.

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.