Info.plist Yükleme Hatasındaki CFBundleVersion


108

"Yüklediğiniz ikili dosya geçersizdi. Info.plist dosyasındaki CFBundleVersion anahtarı, önceden yüklenen sürümden daha yüksek bir sürüm içermelidir."

Başvurumu yüklemeye geldiğimde bu hatayı alıyorum.

İTunes Connect'te güncellenmiş sürümü 1.2 olarak ayarladım ve ayrıca .plistdosyayı 1.2'ye de güncelledim .

Bu hatayı neden aldığımı anlamıyorum. Herhangi bir yardım memnuniyetle karşılanacaktır. Teşekkürler.


Neden 1.2.1 olarak ayarlamayı denemiyorsunuz?
Nikita Rybak

Birçok kombinasyon denedim. Hiçbiri çalışmıyor. Bu hata devam ediyor.
Adam H

1
Ve daha önce yüklenen sürüm nedir (şu anda gönderilmekte olan uygulamanın Info.plistinde olduğu gibi)?
Costique

Bu sorunu çözdünüz mü? Aynı sorun birdenbire başıma geldi. Sinir bozucu.
Wayne Lo

Az önce bu hatayı içeren bir e-posta aldım ve geçtiğimiz hafta ITC'de "işleniyor" olarak takılan eski yapılarımdan birinin sonunda işlendiği ortaya çıktı. İlk sıkıştığında, artırılmış bir yapı numarasıyla başka bir yapıyı yeniden gönderdim, bu yüzden eski olan nihayet işlendiğinde hatayı tetikledi.
blwinters

Yanıtlar:


210

Apple'ın yükleme sunucusunda 12 aydan uzun süredir düzeltmediği bilinen en az 1 hata var. Dikkat edilecek noktalar:

  1. Apple, sürüm numarasının başındaki sıfırları siler; yani "tam dize" bir sayı olarak İŞLENMEZ, bunun yerine noktalar arasındaki bitler AYRI sayı olarak değerlendirilir. ör. "1.02", Apple tarafından "1.2" olarak ele alınır. Yani Apple için 1.02, 1.1'DEN BÜYÜK
  2. Apple bazen "kafası karışıyor" ve yüklediğiniz uygulamanızı daha önce yüklediğiniz FARKLI bir uygulamanın sürümüyle karşılaştırıyor gibi görünüyor. Pek çok insanın başına geldi ve ben de birkaç kez gördüm
  3. Apple'ın "CFBundleVersion" (yani "Paket sürümü" ile "Paket sürümleri dizisi, kısa" değil) karşılaştırması gerekiyordu; karışmayın.
  4. Çoğunlukla, tek geçerli çözüm ön rakamı çarpmaktır (örneğin, "2.4" te "2" - "3" e yükseltmek)
  5. Yüklediğiniz sürüm numarası, iTunes'da görünen sürüm numarasıyla ilgisizdir - oraya istediğiniz her şeyi koyabilirsiniz ve kullanıcılarınız bunu görecek
  6. ... dışında, uygulamanızın içinde "gerçek" sürüm numarasını da bildirirseniz, kullanıcı iTunes sürümü (sanırım - buradan erişilemeyen) yerine CFBundleVersion'ı (genellikle nasıl kodladığınıza bağlıdır) görecektir uygulamanızın içinde)

1
CFBundleVersion, xcode 4.5'te "Build" olarak etiketlenir, "Sürüm" DEĞİLDİR! Sürüm, Info.plist dosyasında "CFBundleShortVersionString" olarak etiketlenir. Dolayısıyla, gerçekten de Build için öncekinden daha yüksek bir değer sağlamanız gerekiyor.
RickJansen

+1 Faydalı biri. 1.02Önceki versiyonum için kullandım . Ve bu cevabı kullanarak düzeltin. Teşekkür ederim.
Praveenkumar

Bu cevap, FAQbir uygulamanın uygulama mağazasına nasıl gönderileceği bölümüne eklenmelidir . :))
danypata

@Adam: Okudum CFBundleShortVersionStringve iTunes Connect'te sağladığınız sürüm numarası aynı olmalıdır. Bu, kullandığınız uygulamada sürüm numaranızı gösterirseniz anlamına gelir CFBundleShortVersionString. CFBundleVersionAyrıca artmış ve o size uygulamanın güncellenmiş bir sürümünü göndererek olup olmadığını belirlemek için bir Apple kullanımdır edilmelidir.
test

Apple, kısa süre önce tüm dizelerinin ne anlama geldiğini geriye dönük uyumlu OLMAYAN bir şekilde yeniden tanımladı.
Adam

28

Yapı numarasını güncelleyin. Sürüm numarası önemlidir, ancak yapı numarası her şeyi değiştirir. Örneğin, bir uygulamanın ilk sürümüne şu şekilde sahiptim:

version #: 1.0
build #:   1.0

Ancak sonraki sürümü yüklemeyi denediğimde, yani

version #: 1.1
build #:   1.0

Yüklemeyi kabul etmez. Sadece yapı numarasını 1,1'e yükselterek yükleme kabul edildi.


Mükemmel ... yapıyı değiştirmek # benim için yaptım, bu harika çünkü paket sürümümü ve iTunes sürümünü eşzamanlı tutmak istiyordum.
Aaron Hayman

9

Xcode 4, uygulamayı yeniden arşivlemezseniz aynı sürümü yeniden yüklemek istediğinizi düşünecektir. Paket Sürümünü değiştirseniz ve yeniden oluştursanız bile yükleme başarısız olur. Ürün menüsünde bir " Arşiv " yapmayı unutmayın !


7

Buradaki yanıtların çoğu nihayetinde bana yardımcı oldu, ancak Apple'ın karşılaştırdığı tam "sürüm" numarasını görene kadar değildi.

  1. İTunes Connect'e gidin -> Uygulamalarınızı Yönetin
  2. Önceki sürümü kontrol etmek istediğiniz uygulamayı seçin
  3. Ayrıntıları Görüntüle etiketli mavi düğmeye tıklayın
  4. Binary Details etiketli bağlantıya tıklayın
  5. Paket Sürümü için verilen değeri bulun

1.0.1 sürümünü gönderdiğimi düşünmeme rağmen, Apple'ın sakladığı gerçek sayı 101 idi. Yukarıdaki yorumlardan bazıları, sürümümü 2.0 (20) veya 1.5 (15) veya 1.2 (12) olarak değiştirmem gerektiğine inandırdı. ) —Bunlar gördüğünüz gibi 101'den az. 102 numaralı sürümümü (noktalar olmadan) güncellemek sorunu çözdü.


6

Bu makale , uygulama mağazasında görülen sürüm numarasının paket sürüm numarasıyla aynı olması gerekmediğini belirtmektedir. Uygulamanızın ayrıntılarını iTunes'da görüntülediğinizde, 'İkili Ayrıntılar' adlı bir bağlantı vardır. Bu sayfa paket sürümünü gösterir. Üzerinde çalıştığım uygulamalardan biri 1.0 sürümündeydi, ancak paket sürümü 2.0'dı. 1.1 sürümüne sahip bir paket yükleme başarısız oldu, ancak 2.1 işe yaradı.

Yani, bir uygulama sürümü ve bir paket sürümü var. Bu sorunun paket sürümüyle ilgisi var.


5

Kafa karışıklığı sayı biçiminden kaynaklanıyor gibi görünüyor. Paket sürümü bir ondalık değildir. Bu bir versiyondur (veya belki inşa edilir), yani 1.11 aslında "bir nokta on bir" dir. Dolayısıyla 1.11, 1.2'den büyüktür. Bu durumda 1.20 kullanarak başarılı oldum.


4

Genellikle bu, sürüm numarasının bulunmamasından kaynaklanabilir. Bu nedenle, Kimlik altına sürüm numarasını ekleyin ve ayrıca Yapı numarasını kontrol edin.

görüntü açıklamasını buraya girin

Kodlamaya Devam Et ......... :)


3

Benim için (Xcode 4.5) yapı numarasını değiştirmek sorunu çözdü. sürümleri 1.0.2 ... 2.0.2 vb. olarak ayarlayın, ardından yapı # değerini artırın (Adam 3 noktası bana nereye bakmam gerektiğini gösterir).


2

İTunes Connect'e giriş yapabilmeli ve uygulamanın mevcut sürümünü görebilmelisiniz (gönderdiğiniz ancak canlı olmayanlar dahil). Daha önce daha yüksek (veya aynı) sürüm numarasına sahip bir sürümü göndermediğinizden emin olun.


Bu yanıltıcıdır; Apple, yalnızca iTunesConnect sürümüyle karşılaştırmaz. Daha doğru bir yanıt için aşağıdaki Pieter'in cevabına bakın.
Adam

@Adam Şu an itibariyle (2014-05), Apple gerçekten de iOS uygulamanızın dahili sürüm numaralarını iTunesConnect sürüm numarasıyla karşılaştırıyor. Uyumsuzsa, şu uyarı mesajını alırsınız (bir hata değildir): Version Mismatch - Neither CFBundleVersion ['201405030503'] nor CFBundleShortVersionString ['201405030503'] in the Info.plist match the version of the app set in iTunes Connect ['1.0.0'].Ancak bu Sorudaki sorunun nedeni bu iTunesConnect karşılaştırması değildir . İTunesConnect karşılaştırması sadece bir uyarıdır, gösteriyi durduran bir hata değildir.
Basil Bourque

2

Bu sorunu çözmeye çalışmak için birkaç saat harcadım. CFBundleVersion'ın gerçekten eski sürümden daha yüksek olduğundan emin olmak için tüm gücümle kontrol ettim, info.plist'i bir metin düzenleyicide açarak, hedefle ilgili bilgi alarak ve özelliklerdeki sürümü okuyarak karımdan sürümü okumasını istedim Daha önce beklenmedik bir Alzheimer tarafından vurulmadığımı onaylamak için iTunes'da.

Sonunda, bu bir şekilde hile yaptı. Eski sürümüm 1.0.4'tür. 1.3.5, 1.4.5 vb. Denedim; hiçbiri işe yaramadı. Ancak 2.0.0'a girdiğimde yeterince şaşırtıcı olan Application Loader gördüklerini ve yüklediklerini beğendi. Bu, Uygulama Yükleyicideki bir hatadan mı kaynaklanıyor?


2

Xcode4'teki sürüm numarasının yanındaki hedef özetinde bir derleme var, bunu 1'de başlattım, her ikili yükleme yaptığımda artırıyorum, bu benim için sorunu çözdü


Bu benim de sorunumdu, hata mesajı çok yanıltıcı!
mj662

Benim de bu problemim vardı. Mesajın bu kadar yanıltıcı olması inanılmaz derecede sinir bozucu. Öğleden sonramı boşa harcadım. Yararlı cevap için teşekkür ederim.
Joel Anair

2

Bildirilen hata CFBundleVersion ise, düzeltme genellikle oldukça kolaydır. Şunu kontrol edin / deneyin:

  1. Proje Gezgini'ndeki en üst düzey proje öğesine gidin ve üzerine tıklayın.
  2. Panelde sadece uygulama hedefine sağ tıklayın.
  3. Özet sekmesine tıklayın.

Özet sekmesinde ayarlanabilen iki farklı "sürüm" olduğunu göreceksiniz. İlki, Mac uygulamaları için varsayılan "Hakkında" ekranında kullanılan "Sürüm" alanıdır. Sağdaki "Derleme Sürümü" dür. Bu, App Store gönderimleri için gerçekten önemli olan şeydir!


2

Bunun eski bir soru olduğunu biliyorum ama bu sorunla az önce karşılaştım. Projeyi arşivden silip yeniden arşivleyerek çözdüm. Görünüşe göre uygulamanın önceki sürümü orada duruyor ve kafa karışıklığına neden oluyordu.


2

Hata mesajına dikkat edin.

Hata mesajı, köşeli parantez içinde önceki paket numarasını içerir (örneğin [9]).

Bu nedenle, yeni sürüm numaranız 1.2 olmasına rağmen bu paket numarasını (örn. 9.1) artırmanız gerekir.

Bu nedenle, iTunes Connect'te sürümü 1.1'den 1.2'ye güncellediğinizde, projenizde bu değerleri ayarlamanız gerekir.

Version number = 1.2
Bundle number = [previous bundle number]++

2
NOT: Yüklenen son sürüm için paket numarasının ne olduğundan emin değilseniz, eski sürüme tıklayın ve İkili Ayrıntıları (Bağlantılar altında) arayın. "Paket Sürümü: #" i görmelisiniz
Nathaniel Blumer

1

Projemde bir iPhone ve iPad sürümüm var, ipad için bilgi listesi herhangi bir nedenle ipad ürünüyle ilişkilendirilmedi, Hedef üyeliğin kontrol edilmesi ve doğru ürünle ilişkilendirilmesi bu sorunu benim için çözdü.



1

'Sürüm' ve 'Yapım' no'larını değiştirerek bir hata yaptım.

2.3'ü Version alanına koymak yerine Build no.


1

Sorunu şu şekilde çözdüm (ve tahminimce bu birçok insanla ilgili bir sorun):

1) Proje ayarlarınızın genel sekmesine tıklayın (tüm kod dosyalarının en üstünde bulunan proje adınıza tıklayarak erişebilirsiniz).

2) Oluşturma alanının "Paket Sürümü" anahtarı için plistinize koyduğunuzla eşleştiğinden emin olun.

Bu benim için problemdi, ne sebeple olursa olsun senkronize olmadılar. Bence Bundler Sürüm anahtarını değiştirdiğinizde, bunun senkronize olması gerekiyor (ve bunun tersi de geçerli). Ama herhangi bir nedenle olmadı - bir hata olabilir.


1

Aynı sorunu yaşadım ve arşivlemediğim için oldu ve 1.0 için kullandığım ilk arşivi 1.0.1 ile kullanıyordum. Bu yüzden iOS cihazını seçtim, arşivledim ve onayladım. Ta-daaa, işe yaradı!


cevaptan ziyade bir yorum olmalıdır.
Merhaba Dünya

0

Ben de aynı sorunu yaşadım. Temelde önceki sürümüm 1.12 idi, 1.2 olarak değiştirmek istedim ancak belirtilen hatayı aldım. 1.20'yi denedim ve mükemmel çalıştı


İkinci sayı 0 ile 9 arasında olmalıdır, bu nedenle 12 "çok büyük"
JOM

1
"İkinci numara" (buna küçük sürüm numarası diyeyim , sadece eğlence için) herhangi bir tamsayı olabilir, sınır yoktur; yani 12veya 20mükemmel küçük sürüm numarasıdır.
holex

0

Apple'ın "Uygulama Yükleyicisi" ni ipa dosyamı yüklemek için kullandığım sürece, sürekli artan sürüm numaralarının hiçbiri çalışmadı, ancak XCode'un "Düzenleyicisini" (sürüm 3.2.5'te "Pencere" açılır menüsünde bulunur) kullandıysam , "Doğrula ..." düğmesini tıkladı, beni onaylamasını bekledi, sonra "Gönder ..." düğmesini tıkladı, her şey beklendiği gibi aklı başında bir sürüm numarasıyla (şu anda mevcut olanın üzerinde tek bir artış olan) uygulama mağazasında mevcuttur).


0

xcode 4.2'de, info.plist dosyasından değişiklik yaparsanız paket sürümünü kaydetmiyor gibi görünüyor. Yeni paket sürümümü doğrudan xcode panel "info" içinde ayarladım ve şimdi çalışıyor!


0

Başka bir çözüm buldum.

Hedefinizi seçerseniz >> bilgi >> Paket Kimliğini güncelleyin.


0

Ben de aynı sorunu yaşadım. İlk gönderilen sürüm 1.5.20 idi ve 1.7.30'a güncellemek istedi.

1.8, 2.0 ve 3.0 sürümlerini başarısız bir şekilde denedikten sonra, CFBundleVersion'ımı 10.0'a güncelledim ve aniden çalıştı.

Bu davranışın arkasındaki mantığın ne olduğundan emin değilim, ancak yaklaşık 2 gün çalışma zamanımı boşa harcamama neden oldu.


0

Önceden yüklenen sürümün paket sürümünü kontrol edin, önceden yüklenmiş sürümün paket sürümüne kıyasla daha yüksek paket sürümü vermelisiniz. Zaten yüklenmiş sürüm, itunesconnect / application / view details / binary details ile görüntülenebilir.


0

Benzer bir konuda iki gece geçirdim. Önceki sürümüm 1.02 idi ve 1.2, 1.20, 1.1 ile doğrulamayı denedim ve her zaman geçersiz ikili mesaj aldım.

Sürüm numarası olarak 2.0 girerek çözdüm ve işe yaradı . Bunun da bir hata olduğundan şüpheleniyorum. Yakın zamanda oyunumu 1.0'dan 1.1'e yükseltirken bu mesajı almadım, ancak bu xcode 3 ile yapıldı. İpucu için teşekkürler!


0

Ben de benzer bir sorun yaşadım ve yarım saat geçirdikten sonra yanlış sayıyı arttırdığımı fark ettim. Bunun yerine artan Bundle versionben arttığını Bundleversions, string, shortInfo.plist içinde. CMD + Shift + F kullanarak projenizde "CFBundleVersion" araması yapın. CFBundleVersion numarasını artırmanız gerektiğini göreceksiniz.


0

Version = "1.1.1.0" ı version = "1.1.1" olarak değiştirmeyi deneyin


0

İtibariyle Ekim ayı elma az 4 basamak (1.2.3 veya 1.2.3.4 veya 1.234 karşı 1.23) için sürüm numaralarını gerektirir. Bu, kütüphaneler için de geçerlidir!

Proje dizininizdeki sorun teşkil eden sürüm numarası için hızlı bir grep, sorun teşkil eden kitaplığı açacaktır:

grep -r "1.2.3.4" .


0

Aktif bir TestFlight beta çalıştırdım. 2020 inşa , sürüm 407

Resmi App Store incelemesi için bir uygulama gönderdim . 2020 inşa sürüm 435'i ve onaylandı. Orada öylece oturuyor, onu App Store'a yaymamı bekliyor.

Karmaşık bir yan hikaye eklemeden yapmak istediğim şey, TestFlight beta kullanıcılarıma App Store sürümünü yayınlamadan önce birkaç gün boyunca resmi App Store sürümünü önizlemeleri için güncellenmiş bir sürüm vermekti. Neden soruyorsun? Ücretsiz özellikler aldıkları için, uygulama yayına girdiğinde paraya mal olacaklardı.

Bu nedenle, Build 2020 , version 436'yı TestFlight'a gönderdim ve reddedildi.

Aynı yapı numarasına sahip onaylı bir resmi App Store adayım olduğu için reddedildi

Çözüm: TestFlight sürümünüzün derleme numarasını değiştirin. Ben sunulan Oluştur 20200 TestFlight için (Fazladan sıfır eklendi) sürüm 436 ve onaylanmıştır. Endişelenmeyin, hala aynı BundleID'yi kullandığınız sürece bu derlemeyi aynı TestFlight beta grubuna aktarabilirsiniz.

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.