2013-04-18 22 views
5

Uygulamamda özel bir günlük kaydı uygulamam gerekiyor.iOS uygulamasının AppStore yüklemesini algıla

Bunu yapmak için uygulamanın geçerli sürümünün uygulama deposundan yüklenip yüklenmediğini veya xcode'dan çalıştırıldığını veya bir TestFlight sürümü olup olmadığını saptamam gerekiyor.

Yükleme kaynağından farklı olarak uygulamada farklı bir şey var mı?

Geliştirme ortamında farklı bir şeylere sahip olmak istemiyorum.

cevap

11

Orada uygulama paketinden embedded.mobileprovision dosyasında okuyarak yoldan kısmını alabilirsiniz:

NSString *provisionPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]; 

o yoksa, bir uygulama mağazası yapı içindedir. versiyonu varsa

, kendi hatalarının giderilmesi ve ad-hoc provizyon profilleri arasında bazı farklılık anlamaya ve bu içinde bulunduğunuz inşa belirlemek için aramak gerekir.

XCode otomatik olarak sahip uygulamalar kurar Çünkü Hata ayıklama ayarında bulunan "DEBUG" bayrağı, Sürüm'de (AdHoc için varsayılan olarak kullanılır) ayarlanmadığında, bir uygulama deposu oluşturma işleminde günlüğe kaydetmeyi devre dışı bırakma ve DEBUG makro bayrağına göre günlüğe kaydetme düzeyini belirleme konusunda daha iyi olabilirsiniz. .

+1

Harika görünüyor, uygulamayı serbest bırakmadan önce test etmenin bir yolunu bulabilir miyim? Örneğin serbest bırakma üzerinde çalıştığından emin olmak için _Release Scheme_ ile çalışın ve çalıştırın. – bago

+0

Derlediğiniz, salıverdiğiniz veya geçici olarak kullandığınız tüm uygulamalar her zaman bir embedded.mobileprovision içerir. Bu dosya eksik olan sadece son App Store build. Cihazınızdan herhangi bir uygulama mağazası uygulamasını indirerek ve uygulama paketini keşfederek mevcut olmadığını doğrulayabilirsiniz ... Bu teknikle gelmediğimi unutmayın, HockeyApp bunu bulmak için tam kredi alır (veya en azından bu Bunu öğrendim). –

+0

Güzel ipucu :) +1 Tks – TonyMkenu

0

Testflight için oluşturduğunuzu bildiren bir makro tanımlayan yapı yapılandırmaları kullanabilirsiniz.

Örneğin, ayıklama makro USE_TESTFLIGHT set yapýlar var ve bizim kodda yaptığımız:

#ifdef USE_TESTFLIGHT 
//do something test-flight specific 
[TestFlight takeOff:kTestFlightAppToken]; 
#endif 

Sen kurulum farklı makro derleme nasıl bağlı olarak yeni inşa yapılandırmaları yaratabilecek/app dağıtma ve ifdef'in bunlara göre farklı görevleri gerçekleştirmesini kullanın.

+0

Bu arada, farklı yapı yapılandırmaları "Ben geliştirme ortamında farklı bir şey istemiyorum." –

+0

Anlaşmalı. Bu öneri, bazı gelişim ihtiyaçları için yararlı olsa da soruyu sorulan soruya cevap vermiyor. –

İlgili konular