2011-12-11 18 views
7

versiyonu 1.0iPhone uygulaması Güncelleme Vs yeni sürümü

olan ben varolan IOS uygulaması Şimdi uygulamasında bazı değişiklikler yapmak ve geri göndermek istiyor Appstore canlı varsayalım.

Göndermek için 2 ayrı yol var mı? Yine de sürümü 1.0 olarak saklayabilirim ve sadece uygulamayı gönderirseniz VEYA Yeni bir sürüm 1.1 oluşturmam ve sonra göndermem gerekir mi?

İşlemdeki farklılıklar nelerdir?

Ayrıca, müşteri tarafında, bu nasıl yeni/mevcut kullanıcılar için çalışıyor?

cevap

10

Sürüm yükseltmeleri ve App Store hakkında yeni bir şey keşfettim. Şimdilik, sorun yaşıyorum ve daha önce anlayamadığım bir iOS sistemi davranışından dolayı kullanıcılar çöküyor. Ve çok önemlisi, iTunes, AppStore ve iOS, son sürümlerde bazı yükseltme ve yükleme kurallarını değiştirdi. Şimdi, bu şekilde çalışır: - Kullanıcı yeni bir sürümü yüklediğinde, paket içindeki tüm dosyalar önceden var olan bir pakette karşıdan yüklenir ve kopyalanır, ancak ESKİ DOSYALAR VEYA BİLEŞENLER SİLİNMEZ (veya hepsi silinmez). Dolayısıyla, son paket yeni sürümün yeni yüklemesinin paketine eşit DEĞİLDİR. - Örneğin, bir xib/nib dosyası yeni sürüm için farklı dillere yerelleştirilmişse, güncellenmiş paket her iki sürümü de içerecektir: kök klasördeki ve her yerelleştirilmiş klasördeki diğeri. Sistem, birincisi, ilkini kullanacak ve sadece yeni bir kurulum, bu dosya için yerelleştirmeleri gösterecektir. Uygulamalarımdan biri, MainWindow.xib ile ilgili sorunu ve referanslarda ve sınıflarda bazı değişiklikler yapıldığından, bir obsolet nesnesi kullanırken çalıştırmayı denediğinizde güncellenen uygulamalar kilitleniyor. Yerelleştirilen xib/nib dosyalarının adını değiştirerek yeni bir sürüm oluşturdum. MainWindow bunlardan biri olduğu için, referansı info.plist olarak değiştirmem gerekiyor.

Tamam, bildiğiniz gibi, paketin tamamında farklı bileşenlerin bulunduğu yeni bir sürüm oluşturabilirsin, önceki sürümün dosyaları mevcutsa, uygulama kullanıcılara bunları kullanma seçeneğini sunar. Yani, uygulamanın tek bir simge ve paket içindeki iki sürümü. Yapması çok zor değil.

AMA, çok garip olan şey, yeni iOS sürümü ve iTunes'un indirimlere izin vermediğini düşünüyorum. Bunu yapmaya çalıştım ama yapmadı. Yani, bir sürümü (örneğin, 1.2) yüklerseniz, AFAIK'in son v1.1'i cihaza ne de iTunes -> "Uygulamalar" 'a yüklemesi imkansızdır. Bu nedenle, çift sürüm paketi, uygulamanın yeniden yüklenmesine kadar yaşayacaktır.

+0

çok bilgilendirici cevap Gaberiel :) Bana sqlite kısmını bildirir misiniz? Eski ve yeni sürümü aynı adlandırılmış sqlite dosyasına sahipse tam olarak ne oldu (abc.sqlite1.0)? Uygulamamın yeni sürümü nasıl davranacak? eski sqlite geçersiz kılacak mı? Ya da sqlite'dan veri alacağım. –

+0

Evet. Tüm söylediğim, uygulama paketindeki öğelerle ilgili. Her ikisi de aynı ada sahiplerse, eski olanı yenisiyle değiştirilir. – Gabriel

+0

@Gabriel: Değiştirilmeden önce eski db'den daha yeni olana veri kopyalamanın herhangi bir yolu var mı? – Mrunal

8

Bu, uygulamanızın yeni bir sürümü olduğundan anlam ifade eden yeni bir sürüm numarası oluşturmanız gerekir. Bu, müşterileriniz için bir güncelleme olarak görünecektir. Eski sürümü mağazadan çıkarmadan aynı sürümde yeni bir ikili yükleyebileceğinizi sanmıyorum.

iTunes connect'e yeni bir sürüm eklersiniz, ardından yeni bir arşivle eşleşmek ve oluşturmak için Xcode'daki sürüm numarasını güncellersiniz. Oldukça basit.

2

Her zaman güncellemenin sürüm numarasını uygulamanıza yükseltmelisiniz.

Kullanıcılar aygıttaki App Store simgesinde ve bilgisayarlarında iTunes'da bir rozet görecekler. Güncellemeler bölümüne giderek, uygulamanızı sağlanan değişikliklerin listesi ve güncellemeyi yüklemek için bir düğme ile birlikte listeler. Tüm uygulamaları bir kerede güncelleyebilirler.

1
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSLog(@"version is%@",version); 
+0

teşekkürler, sadece .. –

+0

Sürümleri değişikliklerini veritabanı veya yeni/kullanım dışı anahtarlar olarak paylaşılan tercihlerde işleyebilmek için '[[[NSBundle mainBundle] infoDictionary] objectForKey: @" CFBundleShortVersionString "]' işlevini kullanabilirsiniz ('[NSUserDefaults standardUserDefaults] '). İşte örnek: http://stackoverflow.com/a/23082595/2835520 – IgniteCoders

0

Artık göndermeniz gereken sürüm numaralarını açmak zorunda değilsiniz.Xcode'u açın, Pencereye git - Organizer - Arşivler ve başarıyla oluşturduğunuz bir uygulamayı Dağıtın.

İlgili konular