Помилка завантаження в інформаційному списку CFBundleVersion


108

"Бінарний файл, який ви завантажили, був недійсним. Ключ CFBundleVersion у файлі Info.plist повинен містити більш високу версію, ніж версія раніше завантаженої версії."

Я отримую цю помилку, коли завантажую свою заявку.

Я встановив оновлену версію на 1.2 в iTunes Connect, а також оновив .plistфайл на 1.2.

Я не розумію, чому я отримую цю помилку. Будь-яка допомога буде вдячна. Дякую.


Чому б не спробувати і встановити його на, скажімо, 1.2.1?
Микита Рибак

Я спробував багато комбінацій. Жодна робота. Ця помилка продовжує з'являтися.
Адам Н

1
А що за завантажена раніше версія (як це знайдено в Info.plist поточного додатка для доставки)?
Костик

Ви вирішили цю проблему? Та сама проблема трапилася зі мною раптом. Це засмучує.
Уейн Ло

Щойно я отримав електронний лист із цією помилкою, і виявляється, що одна з моїх старих версій, яка застрягла в ITC як "обробка" за останній тиждень, була остаточно оброблена. Коли він вперше застряг, я повторно подав ще одну збірку із збільшеним номером збірки, тому коли старіший нарешті був оброблений, він викликав помилку.
blwinters

Відповіді:


210

На сервері завантаження Apple є щонайменше одна відома помилка, яку вони не виправили більше 12 місяців. Що слід остерігатися:

  1. Apple видаляє будь-які провідні нулі всередині номера версії; тобто "весь рядок" НЕ трактується як число, натомість біти між точками трактуються як окремі числа. наприклад, "1,02" Apple трактується як "1.2". Так, для Apple 1,02 - ВЕЛИКІШЕ 1.1
  2. Apple іноді "заплутається" і, схоже, порівнює ваш додаток із версією РІЗНОГО додатка, який ви завантажили раніше. Це траплялося з багатьма людьми, і я сам це бачив кілька разів
  3. Apple повинна порівнювати "CFBundleVersion" (тобто "версія Bundle", а не "рядок версій пакетів, короткий"); не змішуйся.
  4. Найчастіше єдиним життєздатним рішенням є збій переднього номера (наприклад, "2" у "2.4" - збільшити його до "3")
  5. Номер версії, яку ви завантажуєте, не пов'язаний з номером версії, який відображається в iTunes - ви можете помістити туди все, що завгодно, і саме це побачать ваші користувачі
  6. ... за винятком випадків, коли ви також повідомлите про "фактичний" номер версії у вашій програмі, користувач побачить CFBundleVersion (як правило, залежить від того, як ви його кодуєте), а не версію iTunes (до якої я думаю - не можна отримати доступ з всередині додатка)

1
CFBundleVersion - це те, що в xcode 4.5 позначено "Build", а НЕ "Version"! Версія закінчується міткою "CFBundleShortVersionString" у файлі Info.plist. Тож дійсно вам потрібно забезпечити більшу цінність для Build, ніж раніше.
RickJansen

+1 Корисна. Я використовував 1.02для своєї попередньої версії. І виправте це за допомогою цієї відповіді. Дякую.
Praveenkumar

Цю відповідь слід додати у FAQрозділі про те, як подати додаток у магазин додатків. :))
danypata

@Adam: Оскільки я читав CFBundleShortVersionStringі номер версії, яку ви вказали в iTunes Connect, повинен відповідати. Це означає, що якщо ви показуєте номер своєї версії в застосованому вами додатку CFBundleShortVersionString. CFBundleVersionПовинна бути також збільшена і що це один Apple , використовує , щоб визначити , якщо ви відправляєте оновлену версію програми.
тестування

Apple нещодавно переосмислила, що означають усі їхні рядки, сумісним NON назад.
Адам

28

Оновіть номер збірки. Номер версії важливий, але номер збірки має все значення. Наприклад, у мене була початкова версія програми як:

version #: 1.0
build #:   1.0

Однак коли я намагався завантажити наступну версію, тобто

version #: 1.1
build #:   1.0

Завантаження не прийнято. Просто збільшивши збірку №1 до 1.1, завантаження було прийнято.


Ідеально ... зміна збірки # зробила це для мене, що чудово, оскільки я дуже хотів синхронізувати свою версію пакету та версію iTunes.
Аарон Гейман

9

Xcode 4 подумає, що ви хочете перезавантажити ту саму версію, якщо не повторно архівувати додаток. Навіть якщо змінити версію пакета та відновити її, завантаження не вдасться. Не забудьте зробити " Архів " у меню Продукт!


7

Багато відповідей тут, в кінцевому рахунку, допомогло мені, але Apple порівнювала не лише те, що я побачив точний номер "версії".

  1. Перейдіть до iTunes Connect -> Керування програмами
  2. Виберіть додаток, для якого потрібно перевірити попередню версію
  3. Клацніть на синій кнопці з написом Переглянути деталі
  4. Клацніть посилання із позначкою Бінарні дані
  5. Знайдіть значення, надане для версії Bundle

Незважаючи на те, що я подумав, що я подав номер версії 1.0.1, фактичне число, яке зберігав Apple, було 101. Деякі коментарі вище змусили мене повірити, що мені потрібно змінити свою версію на 2.0 (20) або 1.5 (15) або 1.2 (12 ) - це всі менше 101, як ви бачите. Оновлення моєї версії 102 (без крапок) вирішило проблему.


6

У цій статті вказується, що номер версії, який можна побачити в магазині додатків, не обов'язково такий самий, як номер версії пакета. Коли ви переглядаєте інформацію про додаток в iTunes, є посилання під назвою "Бінарні дані". На цій сторінці показана версія пакета. Один з додатків, над якими я працював, був у версії 1.0, але це версія версії 2.0. Не вдалося завантажити пакет із версією 1.1, але 2.1 працювало.

Отже, є версія програми та версія пакета. Ця проблема пов'язана з версією пакета.


5

Здається, плутанина викликана форматом числа. Версія пакету не є десятковою. Це версія (або, можливо, збірка), тому 1.11 насправді "одна точка одинадцять". Отже, 1,11 більше, ніж 1,2. Я мав успіх, використовуючи 1,20 в цьому випадку.


4

Зазвичай це може статися через відсутність номера версії. Отже, додайте номер версії під Identity, а також перевірте номер збірки.

введіть тут опис зображення

Зберігати кодування ......... :)


3

Для мене (Xcode 4.5) зміна номера збірки вирішила проблему. встановіть версії на 1.0.2 ... 2.0.2 і т.д.


2

Ви повинні мати можливість увійти в iTunes Connect і переглянути поточну версію програми (включаючи будь-яку, яку ви подали, але не є активною). Переконайтеся, що ви раніше не надіслали версію з більшим (або тим самим) номером версії.


Це вводить в оману; Apple НЕ просто порівнює з версією iTunesConnect. cf відповідь Пітера нижче для більш точної відповіді.
Адам

@Adam Станом на зараз (2014-05), Apple дійсно порівнює внутрішній номер (-и) вашої програми iOS з номером версії iTunesConnect. Якщо невідповідність, ви отримуєте це попередження (не помилка): 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'].Але це порівняння iTunesConnect не є причиною проблеми в цьому запитанні. Порівняння iTunesConnect - це лише попередження, а не помилка зупинки показу.
Василь Бурк

2

Я провів кілька годин, намагаючись вирішити це питання. Я перевірив усіма силами, щоб переконатися, що CFBundleVersion дійсно був вищий, ніж у старшій версії, відкривши info.plist у текстовому редакторі, отримати інформацію про ціль та прочитати версію про властивості, попросив дружину прочитати версію на iTunes, щоб підтвердити, що мене не потрапив несподіваний раніше Альцгеймер.

Зрештою, це якось зробило трюк. Моя стара версія - 1.0.4. Я спробував 1.3.5, 1.4.5 тощо; ніхто не працював. Але досить дивно, коли я ввів 2.0.0, програмі завантажувач програм подобається те, що він побачив, і завантажив його. Це пов’язано з помилкою у завантажувачі додатків?


2

У підсумку цілей поруч із номером версії в xcode4 є збірка, я запускав це з 1, збільшуючи кожен раз, коли роблю двійкове завантаження, це вирішило проблему для мене


Це була і моя проблема, повідомлення про помилку дуже оманливе!
mj662

У мене теж була ця проблема. Неймовірно засмучує те, що повідомлення настільки оманливе. Витратив кращу частину мого дня. Дякую за корисну відповідь.
Joel Anair

2

Якщо помилка повідомляється про CFBundleVersion, виправити зазвичай досить просто. Перевірте / спробуйте це:

  1. Перейдіть до елемента проекту верхнього рівня в Навігаторі проектів та натисніть на нього.
  2. На панелі просто клацніть правою кнопкою миші на цілі програми.
  3. Перейдіть на вкладку "Підсумок".

На вкладці "Підсумок" ви побачите, що є дві різні "версії", які можна регулювати. Перше - це поле "Версія", яке використовується на екрані "Про" за замовчуванням для додатків Mac. Справа - "Версія побудови". Це те, що дійсно має значення для подання в App Store!


2

Я знаю, що це старе питання, але я просто натрапив на це питання. Я вирішив її, видаливши проект з архіву, а потім повторно його архівував. Мабуть, попередня версія додатку сиділа там і викликала плутанину.


2

Зверніть увагу на повідомлення про помилку.

Повідомлення про помилку містить попередній номер пакета у квадратних дужках (наприклад, [9]).

Таким чином, вам потрібно збільшити цей номер пакета (наприклад, 9.1), хоча ваш новий номер версії становить 1,2

Отже, коли ви оновлюєте версію від 1.1 до 1.2 в iTunes Connect, вам потрібно встановити ці значення у вашому проекті

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

2
ПРИМІТКА. Якщо ви не впевнені, що пакет № був для останньої завантаженої версії, натисніть старішу версію та знайдіть Бінарні дані (під посиланнями). Ви повинні побачити "Версію пакету: #"
Натаніель Блюмер

1

У мене в моєму проекті є версія iPhone та iPad, інфоліст для ipad чомусь не асоціювався з продуктом ipad. Перевірка членства в цілі та асоціювання його з правильним продуктом вирішили цю проблему для мене.



1

Я помилився, обмінявши "Версію" та "Збірка" ні.

Замість того, щоб ставити 2.3 в поле Версія, я помістив його в Build no.


1

Ось як я вирішив цю проблему (і я гадаю, що це проблема з великою кількістю людей):

1) Перейдіть на загальну вкладку налаштувань ваших проектів (доступ до якої можна отримати, натиснувши назву проекту, яка знаходиться вгорі всіх файлів коду).

2) Переконайтесь, що поле збірки відповідає тому, що ви поклали у свій список для клавіші "Версія пакета".

Це була для мене проблема, з якої причини вони не синхронізувалися. Я думаю, що при зміні ключа версії Bundler він повинен синхронізуватися (і навпаки). Але це не сталося з будь-якої причини - може бути помилка.


1

У мене була така ж проблема, і це сталося через те, що я не архівував, і я використовував перший архів, який я використовував для 1.0, але з 1.0.1. Тому я вибрав пристрій iOS, архівував його та підтверджував. Та-дааа, це спрацювало!


повинен бути коментар, а не відповідь.
Hello World

0

У мене була така ж проблема. В основному моя попередня версія була 1,12. Я хотів змінити її на 1,2, але був згаданий помилок. Я спробував 1.20, і це спрацювало ідеально


Друге число повинно бути між 0 і 9, тому 12 "занадто велике"
JOM

1
"Другий номер" (я називаю його другорядним номером версії, просто для розваги) може бути будь-яким цілим числом, для нього немає меж; тож 12або 20є ідеальним другорядним номером версії.
holex

0

Жоден набір постійно збільшуваних номерів версій не працював, поки я використовував "Навантажувач додатків" від Apple, щоб завантажити свій файл ipa, але якщо я використовував "Організатор" XCode (знайдений у спадному меню "Вікно" у версії 3.2.5) , натиснув кнопку "Перевірити ...", чекав, коли мене схвалить, а потім натиснути кнопку "Надіслати ...", все пішло, як очікувалося, з розумним номером версії (той, що на один приріст вище того, який є на даний момент доступний у магазині додатків).


0

у xcode 4.2, схоже, не реєструйте версію пакета, якщо ви модифікуєте файл info.plist. Я встановив свою нову версію пакета безпосередньо в панелі xcode "інформація", і тепер вона працює!


0

Я знайшов інше рішення.

Якщо ви вибрали цільову інформацію >> інформація >>, оновіть ідентифікатор пакета.


0

У мене була така ж проблема. Перша представлена ​​версія була 1.5.20 і хотіла оновити її до 1.7.30.

Після невдало спроб версій 1.8, 2.0 та 3.0 я оновив свій CFBundleVersion до 10.0 і раптом він спрацював.

Я не впевнений, в чому полягає логіка такої поведінки, але це змусило мене витрачати близько 2-х днів робочого часу.


0

Перевірте свою пакетну версію раніше завантаженої версії, вам слід надати більш високу версію пакета порівняти з версією вже завантаженої версії. Вже завантажену версію можна переглянути за допомогою itunesconnect / application / переглянути деталі / двійкові дані.


0

Я провів дві ночі у подібному питанні. Моя попередня версія була 1,02, і я спробував перевірити 1,2, 1,20, 1,1, і я завжди отримував недійсне бінарне повідомлення.

Я вирішив це, ввівши 2.0 як номер версії, і це спрацювало . Я підозрюю, що це теж помилка. Я не отримав це повідомлення, коли нещодавно оновив свою гру з 1.0 до 1.1, але це було з xcode 3. Дякую за пораду!


0

У мене були подібні проблеми, і, витративши півгодини, я помітив, що збільшував неправильну кількість. Замість того, щоб збільшувати, Bundle versionя збільшувався Bundleversions, string, shortв Info.plist. Шукайте "CFBundleVersion" у своєму проекті за допомогою CMD + Shift + F. Ви побачите, що вам потрібно збільшити номер CFBundleVersion.


0

Спробуйте змінити версію = "1.1.1.0" на версію = "1.1.1"


0

Станом на кінець жовтня Apple вимагає, щоб номери версій були менше 4-х цифр (1.2.3 або 1.23 на відміну від 1.2.3.4 або 1.234). Це стосується і бібліотек!

Швидкий привід про номер кримінальної версії у каталозі вашого проекту повинен відобразити бібліотеку-порушник:

grep -r "1.2.3.4" .


0

У мене був активний бета-тест TestFlight. Створення 2020 року , версія 407

Я подав додаток для офіційного огляду магазину App Store. Побудувати 2020 рік , версія 435, і вона була затверджена. Він просто сидить там і чекає, коли я втисну його в App Store.

Не додаючи складної побічної історії, те, що я хотів зробити, - це надати моїм бета-версіям TestFlight оновлену версію для попереднього перегляду офіційної версії магазину App Store протягом декількох днів, перш ніж перетворити версію App Store на живу. Чому ти питаєш? Оскільки вони отримували безкоштовні функції, вони збиралися коштувати грошей, як тільки програма перейде в реальність.

Отже, я подав Build 2020 , версія 436, на TestFlight, і він був відхилений.

Він був відхилений, оскільки у мене затверджений офіційний кандидат у магазині додатків з тим самим номером збірки

Рішення: Змініть номер збірки версії TestFlight. Я представив Build 20200 (я додав додатковий нуль) версії 436 до TestFlight, і він був схвалений. Не хвилюйтесь, ви все одно можете підключити цю збірку до тієї ж бета-групи TestFlight, поки ви все ще використовуєте той самий BundleID.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.