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.
ç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. –
Evet. Tüm söylediğim, uygulama paketindeki öğelerle ilgili. Her ikisi de aynı ada sahiplerse, eski olanı yenisiyle değiştirilir. – Gabriel
@Gabriel: Değiştirilmeden önce eski db'den daha yeni olana veri kopyalamanın herhangi bir yolu var mı? – Mrunal