CFBundleVersion di Info.plist Upload Error

108

"Biner yang Anda unggah tidak valid. CFBundleVersion kunci dalam file Info.plist harus berisi versi yang lebih tinggi daripada versi yang diunggah sebelumnya."

Saya mendapatkan kesalahan ini ketika saya datang untuk mengunggah aplikasi saya.

Saya mengatur versi yang diperbarui ke 1.2 di iTunes Connect dan juga telah memperbarui .plistfile ke 1.2.

Saya tidak mengerti mengapa saya mendapatkan kesalahan ini. Bantuan apa pun akan dihargai. Terima kasih.

Adam H.
sumber
Mengapa tidak mencoba dan mengaturnya ke, katakanlah, 1.2.1?
Nikita Rybak
Saya sudah mencoba banyak kombinasi. Tidak ada yang berhasil. Kesalahan itu terus muncul.
Adam H
1
Dan apa versi yang diunggah sebelumnya (seperti yang ditemukan di Info.plist dari aplikasi pengiriman saat ini)?
Costique
Apakah Anda sudah menyelesaikan masalah ini? Masalah yang sama terjadi pada saya secara tiba-tiba. Itu membuat frustrasi.
Wayne Lo
Saya baru saja mendapat email dengan kesalahan ini dan ternyata salah satu bangunan lama saya, yang macet di ITC karena "diproses" selama seminggu terakhir, akhirnya diproses. Ketika pertama kali macet, saya mengirimkan kembali bangunan lain dengan nomor versi yang bertambah, jadi ketika yang lama akhirnya diproses, itu memicu kesalahan.
blwinters

Jawaban:

210

Setidaknya ada 1 bug yang diketahui di server unggahan Apple yang belum mereka perbaiki selama lebih dari 12 bulan. Hal-hal yang harus diperhatikan:

  1. Apple menghapus semua angka nol di dalam nomor versi; yaitu "string utuh" TIDAK diperlakukan sebagai angka, sebaliknya bit di antara titik diperlakukan sebagai angka TERPISAH. misal, "1.02" dianggap oleh Apple sebagai "1.2". Jadi, untuk Apple, 1.02 LEBIH BESAR DARI 1.1
  2. Apple terkadang menjadi "bingung" dan tampaknya membandingkan aplikasi yang Anda unggah dengan versi aplikasi BERBEDA yang Anda unggah sebelumnya. Itu terjadi pada banyak orang, dan saya telah melihatnya sendiri beberapa kali
  3. Apple seharusnya membandingkan "CFBundleVersion" (yaitu "Versi bundel" bukan "versi bundel string, pendek"); jangan campur aduk.
  4. Seringkali, satu-satunya solusi yang layak adalah menggeser nomor depan (misalnya, "2" menjadi "2.4" - tingkatkan menjadi "3")
  5. Nomor versi yang Anda unggah tidak terkait dengan nomor versi yang muncul di iTunes - Anda dapat meletakkan apa pun yang Anda inginkan di sana, dan itulah yang akan dilihat pengguna Anda.
  6. ... kecuali, jika Anda juga melaporkan nomor versi "sebenarnya" di dalam aplikasi Anda, pengguna akan melihat CFBundleVersion (biasanya, tergantung bagaimana Anda mengkodekannya), bukan versi iTunes (yang - menurut saya - tidak dapat diakses dari di dalam aplikasi Anda)
Adam
sumber
1
CFBundleVersion adalah yang di xcode 4.5 diberi label "Build", dan BUKAN "Version"! Versi akhirnya diberi label "CFBundleShortVersionString" di file Info.plist. Jadi, memang Anda perlu memberikan nilai Build yang lebih tinggi dari sebelumnya.
RickJansen
+1 yang Bermanfaat. Saya digunakan 1.02untuk versi saya sebelumnya. Dan, perbaiki menggunakan jawaban ini. Terima kasih.
Praveenkumar
Jawaban ini harus ditambahkan di FAQbagian tentang cara mengirimkan aplikasi ke App Store. :))
danypata
@Adam: Seperti yang saya baca CFBundleShortVersionStringdan nomor versi yang Anda berikan di iTunes Connect harus cocok. Itu berarti jika Anda menunjukkan nomor versi Anda di aplikasi yang Anda gunakan CFBundleShortVersionString. Ini CFBundleVersionjuga harus ditingkatkan dan itulah yang digunakan Apple untuk menentukan apakah Anda mengirimkan versi terbaru dari aplikasi Anda.
menguji
Apple baru-baru ini mendefinisikan ulang arti semua string mereka, dengan cara yang kompatibel dengan NON mundur.
Adam
28

Perbarui nomor build. Nomor versi itu penting, tetapi nomor versi membuat semua perbedaan. Misalnya, saya memiliki versi awal aplikasi sebagai:

version #: 1.0
build #:   1.0

Namun ketika saya mencoba mengupload versi berikutnya, yaitu

version #: 1.1
build #:   1.0

Itu tidak akan menerima unggahan. Dengan hanya menaikkan build # menjadi 1.1, unggahan itu diterima.

The Crazy Chimp
sumber
Sempurna ... mengubah build # berhasil untuk saya, yang bagus karena saya benar-benar ingin menjaga versi bundle dan versi iTunes saya tetap sinkron.
Aaron Hayman
9

Xcode 4 akan berpikir Anda ingin mengunggah ulang versi yang sama jika Anda tidak mengarsipkan ulang aplikasi. Bahkan jika Anda mengubah Versi Bundle dan membuatnya kembali, unggahan akan gagal. Ingatlah untuk melakukan " Arsip " di menu Produk!

Patrice Gagnon
sumber
7

Banyak jawaban di sini pada akhirnya membantu saya, tetapi tidak sampai apa yang saya lihat dengan angka "versi" yang tepat yang dibandingkan oleh Apple.

  1. Buka iTunes Connect -> Kelola Aplikasi Anda
  2. Pilih aplikasi yang ingin Anda periksa versi sebelumnya
  3. Klik pada tombol biru berlabel Lihat Detail
  4. Klik tautan berlabel Rincian Biner
  5. Temukan nilai yang diberikan untuk Versi Bundle

Meskipun saya pikir saya telah mengirimkan nomor versi 1.0.1, nomor sebenarnya yang disimpan Apple adalah 101. Beberapa komentar di atas membuat saya percaya bahwa saya perlu mengubah versi saya menjadi 2.0 (20) atau 1.5 (15) atau 1.2 (12) ) —Ini semuanya kurang dari 101 seperti yang Anda lihat. Memperbarui nomor versi saya 102 (tanpa titik) memperbaiki masalah.

Kyle Hayes
sumber
6

Artikel ini menunjukkan bahwa nomor versi seperti yang terlihat di app-store belum tentu sama dengan nomor versi paket. Saat Anda melihat detail aplikasi Anda di iTunes, ada tautan bernama 'Detail Biner'. Halaman itu menunjukkan versi paket. Salah satu aplikasi yang saya kerjakan adalah versi 1.0, tetapi versi bundelnya adalah 2.0. Gagal mengupload paket dengan versi 1.1, tetapi 2.1 berhasil.

Jadi, ada versi aplikasi dan versi bundel. Masalah ini ada hubungannya dengan versi bundel.

Pieter Witvoet
sumber
5

Tampaknya kebingungan disebabkan oleh format angka. Versi bundel bukanlah desimal. Ini adalah versi (atau mungkin build) jadi 1,11 sebenarnya adalah "satu poin sebelas". Oleh karena itu 1,11 lebih besar dari 1,2. Saya berhasil menggunakan 1,20 dalam kasus ini.

Gavin
sumber
4

Biasanya, hal ini dapat disebabkan karena tidak adanya nomor versi. Jadi, tambahkan nomor versi di bawah Identitas, dan juga periksa nomor Build.

masukkan deskripsi gambar di sini

Terus Coding ......... :)

Krishna Raj Salim
sumber
3

Bagi saya (Xcode 4.5) mengubah nomor build menyelesaikan masalah. atur versinya ke 1.0.2 ... 2.0.2 dll. lalu tingkatkan build # (Adam 3 poin beri saya idia di mana mencarinya).

setdvd
sumber
2

Anda seharusnya dapat masuk ke iTunes Connect dan melihat versi aplikasi saat ini (termasuk yang telah Anda kirimkan tetapi tidak ditayangkan). Periksa untuk memastikan Anda belum pernah mengirimkan versi dengan nomor versi yang lebih tinggi (atau sama).

Danny Tuppeny
sumber
Ini menyesatkan; Apple TIDAK hanya membandingkan dengan versi iTunesConnect. cf jawaban Pieter di bawah ini untuk jawaban yang lebih akurat.
Adam
@Adam Sampai sekarang (2014-05), Apple memang membandingkan nomor versi internal aplikasi iOS Anda dengan nomor versi iTunesConnect. Jika tidak cocok, Anda mendapatkan pesan peringatan ini (bukan kesalahan): 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'].Tetapi perbandingan iTunesConnect ini bukan penyebab masalah dalam Pertanyaan ini. Perbandingan iTunesConnect hanyalah peringatan, bukan kesalahan yang menghentikan pertunjukan.
Basil Bourque
2

Saya menghabiskan beberapa jam mencoba menyelesaikan masalah ini. Saya telah memeriksa dengan sekuat tenaga untuk memastikan CFBundleVersion memang lebih tinggi dari versi sebelumnya, dengan membuka info.plist di editor teks, dapatkan info target dan baca versi di properti, meminta istri saya untuk membaca versinya di iTunes untuk mengonfirmasi bahwa saya tidak terkena Alzheimer sebelumnya yang tidak terduga.

Pada akhirnya, ini entah bagaimana berhasil. Versi lama saya adalah 1.0.4. Saya mencoba 1.3.5, 1.4.5 dll.; tidak ada yang berhasil. Namun cukup mengejutkan, ketika saya memasuki 2.0.0, Application Loader menyukai apa yang dilihatnya dan mengunggahnya. Apakah ini karena bug di Application Loader?

Wayne Lo
sumber
2

Dalam ringkasan target di sebelah nomor versi di xcode4 adalah build, saya memulai ini pada 1, saya menambah setiap kali saya melakukan unggahan biner, ini menyelesaikan masalah untuk saya

kapak
sumber
Ini juga masalah saya, pesan kesalahannya sangat menyesatkan!
mj662
Saya juga punya masalah ini. Sungguh membuat frustasi bahwa pesan tersebut sangat menyesatkan. Menyia-nyiakan sebagian besar sore saya. Terima kasih atas jawaban yang membantu.
Joel Anair
2

Jika kesalahan yang dilaporkan adalah CFBundleVersion, perbaikan biasanya cukup mudah. Periksa / coba ini:

  1. Pergi ke item proyek tingkat atas di Project Navigator dan klik di atasnya.
  2. Di panel sebelah kanan klik pada target aplikasi.
  3. Klik pada tab ringkasan.

Pada tab ringkasan Anda akan melihat bahwa ada dua "versi" berbeda yang dapat disesuaikan. Yang pertama adalah bidang "Versi", yang digunakan di layar "Tentang" default untuk aplikasi Mac. Yang di sebelah kanan adalah "Versi Bangun." Inilah yang paling penting untuk pengiriman App Store!

David Hoelzer
sumber
2

Saya tahu ini adalah pertanyaan lama, tetapi saya baru saja mengalami masalah ini. Saya menyelesaikannya dengan menghapus proyek dari arsip, lalu mengarsipkannya kembali. Rupanya versi aplikasi sebelumnya ada di sana dan menyebabkan kebingungan.

Henry F
sumber
2

Perhatikan pesan kesalahannya.

Pesan kesalahan berisi nomor paket sebelumnya dalam tanda kurung siku (misalnya [9]).

Oleh karena itu, Anda perlu menaikkan nomor paket itu (mis. 9.1), meskipun nomor versi baru Anda adalah 1.2

Jadi, saat Anda memperbarui versi dari 1.1 ke 1.2 di iTunes Connect, Anda perlu menyetel nilai-nilai ini di proyek Anda

Version number = 1.2
Bundle number = [previous bundle number]++
Serge Seletskyy
sumber
2
CATATAN: jika Anda tidak yakin apa bundel # untuk versi terakhir yang diunggah, klik versi lama dan cari Detail Biner (di bawah Tautan). Anda harus melihat "Versi Bundle: #"
Nathaniel Blumer
1

Saya memiliki versi iPhone dan iPad dalam proyek saya, daftar infop untuk ipad tidak terkait dengan produk ipad karena alasan tertentu, Memeriksa keanggotaan Target dan mengaitkannya dengan produk yang benar memecahkan masalah ini untuk saya.

Jay Adams
sumber
1

Saya membuat kesalahan dengan menukar 'Versi' dan 'Bangun' no.

Alih-alih meletakkan 2.3 di kolom Version, saya meletakkannya di Build no.

Pritesh Desai
sumber
1

Berikut adalah cara saya memperbaiki masalah (dan saya menduga ini adalah masalah banyak orang):

1) Klik pada tab umum pengaturan proyek Anda (yang dapat diakses dengan mengklik nama proyek Anda yang ada di bagian atas semua file kode).

2) Pastikan kolom build cocok dengan apa yang Anda masukkan ke dalam plist Anda untuk kunci "Versi Bundle".

Ini adalah masalah bagi saya, untuk alasan apa pun mereka tidak sinkron. Saya pikir ketika Anda mengubah kunci Versi Bundler, itu seharusnya disinkronkan (dan sebaliknya). Tetapi itu tidak terjadi karena alasan apa pun - mungkin bug.

Ser Pounce
sumber
1

Saya memiliki masalah yang sama dan itu terjadi karena saya belum mengarsipkan dan saya menggunakan arsip pertama yang saya gunakan untuk 1.0 tetapi dengan 1.0.1. Jadi saya memilih perangkat iOS, diarsipkan dan kemudian memvalidasi. Ta-daaa, berhasil!

Gonzo345
sumber
harus menjadi komentar daripada jawaban.
Hello World
0

Saya memiliki masalah yang sama. Pada dasarnya versi saya sebelumnya adalah 1.12. Saya ingin mengubahnya menjadi 1.2 tetapi mengalami kesalahan yang disebutkan. Saya mencoba 1,20 dan berhasil dengan sempurna

mukaissi
sumber
Angka kedua harus antara 0 dan 9, jadi 12 "terlalu besar"
JOM
1
"Nomor kedua" (saya sebut saja nomor versi kecil , hanya untuk kesenangan) bisa berupa bilangan bulat apa pun, tidak ada batasan untuk itu; jadi 12atau 20adalah nomor versi minor yang sempurna .
holex
0

Tidak ada rangkaian nomor versi yang terus meningkat yang berfungsi selama saya menggunakan "Application Loader" Apple untuk mengunggah file ipa saya, tetapi jika saya menggunakan "Organizer" Xcode (ditemukan di bawah menu pull-down "Jendela" di versi 3.2.5) , mengklik tombol "Validasi ...", tunggu hingga menyetujui saya, lalu klik tombol "Kirim ...", semuanya berjalan seperti yang diharapkan dengan nomor versi yang wajar (satu peningkatan tunggal di atas yang saat ini tersedia di toko aplikasi).

ideun
sumber
0

di xcode 4.2 sepertinya tidak mendaftarkan versi bundel jika Anda memodifikasi dari file info.plist. Saya mengatur versi bundel baru saya langsung di panel xcode "info" dan sekarang berhasil!

Marco Allori
sumber
0

Saya menemukan solusi lain.

Jika Anda memilih target >> info >> update Bundle ID.

Michael
sumber
0

Saya memiliki masalah yang sama. Versi pertama yang dikirimkan adalah 1.5.20 dan ingin memperbarui ke 1.7.30.

Setelah gagal mencoba versi 1.8, 2.0 dan 3.0, saya memperbarui CFBundleVersion saya ke 10.0 dan tiba-tiba berhasil.

Saya tidak yakin apa logika di balik perilaku ini, tetapi hal itu menyebabkan saya menyia-nyiakan waktu kerja sekitar 2 hari.

BastiBen
sumber
0

Cek versi bundle kamu dari versi yang diupload sebelumnya, kamu harus memberikan versi bundle yang lebih tinggi dibandingkan dengan versi bundle yang sudah diupload. Versi yang sudah diupload dapat dilihat dengan itunesconnect / application / view details / binary details.

Wisnu R Kaimal
sumber
0

Saya telah menghabiskan dua malam untuk masalah yang sama. Versi saya sebelumnya adalah 1.02, dan saya mencoba memvalidasi dengan 1.2, 1.20, 1.1 dan saya selalu mendapat pesan biner yang tidak valid.

Saya menyelesaikannya dengan memasukkan 2.0 sebagai nomor versi, dan itu berhasil . Saya curiga ini adalah bug juga. Saya tidak mendapatkan pesan ini ketika baru-baru ini meningkatkan game saya dari 1.0 menjadi 1.1, tetapi itu dengan xcode 3. Terima kasih atas tipnya!

mesin
sumber
0

Saya memiliki masalah yang sama dan setelah menghabiskan setengah jam saya perhatikan saya salah menambah angka. Alih-alih meningkat, Bundle versionsaya malah meningkat Bundleversions, string, shortdi Info.plist. Cari "CFBundleVersion" dalam proyek Anda menggunakan CMD + Shift + F. Anda akan melihat bahwa Anda perlu meningkatkan nomor CFBundleVersion.

Josip B.
sumber
0

Coba ubah version = "1.1.1.0" menjadi version = "1.1.1"

RouR
sumber
0

Sampai akhir Oktober Apple mewajibkan nomor versi kurang dari 4 digit (1.2.3 atau 1.23 sebagai lawan 1.2.3.4 atau 1.234). Ini juga berlaku untuk perpustakaan!

Grep cepat untuk nomor versi yang melanggar di direktori proyek Anda akan mengaktifkan pustaka yang melanggar:

grep -r "1.2.3.4" .

Warpling
sumber
0

Saya menjalankan TestFlight beta aktif. Bangun 2020 , versi 407

Saya mengirimkan aplikasi untuk peninjauan App Store resmi . Bangun 2020 , versi 435, dan itu disetujui. Itu hanya duduk di sana, menunggu saya untuk memasukkannya langsung ke App Store.

Tanpa menambahkan cerita sampingan yang rumit, yang ingin saya lakukan adalah memberikan versi terbaru kepada pengguna TestFlight beta saya untuk melihat pratinjau versi App Store resmi selama beberapa hari, sebelum mengaktifkan versi App Store. Mengapa kamu bertanya? Karena mereka mendapatkan fitur gratis, akan ada biaya yang harus dikeluarkan setelah aplikasi ditayangkan.

Jadi, saya mengirimkan Build 2020 , versi 436, ke TestFlight, dan ditolak.

Itu ditolak karena saya memiliki kandidat App-Store resmi yang disetujui dengan nomor build yang sama

Solusi: Ubah nomor build versi TestFlight Anda. Saya mengirimkan Build 20200 (saya menambahkan nol ekstra) versi 436 ke TestFlight, dan itu disetujui. Jangan khawatir, Anda masih dapat memasukkan build ini ke grup beta TestFlight yang sama, selama Anda masih menggunakan BundleID yang sama.

jungledev
sumber