CFBundleVersion im Upload-Fehler Info.plist

108

"Die von Ihnen hochgeladene Binärdatei war ungültig. Der Schlüssel CFBundleVersion in der Datei Info.plist muss eine höhere Version als die zuvor hochgeladene Version enthalten."

Ich erhalte diese Fehlermeldung, wenn ich meine Bewerbung hochlade.

Ich habe die aktualisierte Version in iTunes Connect auf 1.2 gesetzt und die .plistDatei auch auf 1.2 aktualisiert .

Ich verstehe nicht, warum ich diesen Fehler erhalte. Jede Hilfe wäre dankbar. Vielen Dank.

Adam H.
quelle
Warum versuchen Sie nicht, es beispielsweise auf 1.2.1 einzustellen?
Nikita Rybak
Ich habe viele Kombinationen ausprobiert. Keine Arbeit. Dieser Fehler tritt immer wieder auf.
Adam H
1
Und was ist die zuvor hochgeladene Version (wie in der Info.plist der aktuell versendeten App zu finden)?
Costique
Haben Sie dieses Problem behoben? Das gleiche Problem passierte mir plötzlich. Es ist frustrierend.
Wayne Lo
Ich habe gerade eine E-Mail mit diesem Fehler erhalten und es stellte sich heraus, dass einer meiner alten Builds, der in der letzten Woche als "Verarbeitung" in ITC steckte, endlich verarbeitet wurde. Als es zum ersten Mal stecken blieb, reichte ich einen weiteren Build mit einer inkrementierten Build-Nummer erneut ein. Als der ältere Build schließlich verarbeitet wurde, löste er den Fehler aus.
Blwinters

Antworten:

210

Es gibt mindestens einen bekannten Fehler im Upload-Server von Apple, den sie seit mehr als 12 Monaten nicht mehr behoben haben. Dinge, auf die Sie achten sollten:

  1. Apple löscht alle führenden Nullen innerhalb der Versionsnummer. dh die "ganze Zeichenfolge" wird NICHT als Zahl behandelt, sondern die Bits zwischen den Punkten werden als SEPARATE Zahlen behandelt. zB "1.02" wird von Apple als "1.2" behandelt. Für Apple ist 1.02 also GRÖSSER ALS 1.1
  2. Apple wird manchmal "verwirrt" und scheint Ihre hochgeladene App mit der Version einer VERSCHIEDENEN App zu vergleichen, die Sie zuvor hochgeladen haben. Es ist vielen Menschen passiert, und ich habe es selbst ein paar Mal gesehen
  3. Apple soll die "CFBundleVersion" vergleichen (dh "Bundle-Version", nicht die "Bundle-Versionszeichenfolge, kurz"); Verwechsle dich nicht.
  4. Häufig besteht die einzig praktikable Lösung darin, die vordere Zahl zu erhöhen (z. B. die "2" in "2.4" - erhöhen Sie sie auf "3").
  5. Die Versionsnummer, die Sie hochladen, hat nichts mit der Versionsnummer zu tun, die in iTunes angezeigt wird. Sie können dort alles platzieren, was Sie möchten, und das sehen Ihre Benutzer
  6. ... außer wenn Sie auch die "tatsächliche" Versionsnummer in Ihrer App angeben, sieht der Benutzer die CFBundleVersion (normalerweise abhängig davon, wie Sie sie codieren) und nicht die iTunes-Version (auf die - wie ich glaube - nicht zugegriffen werden kann in deiner App)
Adam
quelle
1
CFBundleVersion ist das, was in xcode 4.5 mit "Build" und NICHT mit "Version" gekennzeichnet ist! Die Version wird in der Datei Info.plist mit "CFBundleShortVersionString" gekennzeichnet. In der Tat müssen Sie für Build einen höheren Wert als zuvor angeben.
RickJansen
+1 Hilfreich. Ich habe 1.02für meine vorherige Version verwendet. Und beheben Sie es mit dieser Antwort. Danke dir.
Praveenkumar
Diese Antwort sollte im FAQAbschnitt zum Senden einer App an den App Store hinzugefügt werden . :))
Danypata
@Adam: Wie ich gelesen habe, sollten die CFBundleShortVersionStringund die Versionsnummer, die Sie in iTunes Connect angegeben haben, übereinstimmen. Das heißt, wenn Sie Ihre Versionsnummer in der von Ihnen verwendeten App anzeigen CFBundleShortVersionString. Die CFBundleVersionsollte ebenfalls erhöht werden. Dies ist die, die Apple verwendet, um festzustellen, ob Sie eine aktualisierte Version Ihrer App einreichen.
Testen
Apple hat kürzlich neu definiert, was all ihre Zeichenfolgen bedeuten, und zwar auf NICHT abwärtskompatible Weise.
Adam
28

Aktualisieren Sie die Build-Nummer. Die Versionsnummer ist wichtig, aber die Build-Nummer macht den Unterschied. Zum Beispiel hatte ich meine ursprüngliche Version einer App als:

version #: 1.0
build #:   1.0

Als ich jedoch versuchte, die nächste Version hochzuladen, z

version #: 1.1
build #:   1.0

Der Upload würde nicht akzeptiert. Durch einfaches Erhöhen der Build-Nummer auf 1.1 wurde der Upload akzeptiert.

Der verrückte Schimpanse
quelle
Perfekt ... das Ändern der Build-Nummer hat es für mich getan, was großartig ist, da ich meine Bundle-Version und iTunes-Version unbedingt synchron halten wollte.
Aaron Hayman
9

Xcode 4 wird denken, dass Sie dieselbe Version erneut hochladen möchten, wenn Sie die Anwendung nicht erneut archivieren. Selbst wenn Sie die Bundle-Version ändern und neu erstellen, schlägt der Upload fehl. Denken Sie daran, ein " Archiv " im Produktmenü zu erstellen!

Patrice Gagnon
quelle
7

Viele der Antworten hier haben mir letztendlich geholfen, aber erst als ich die genaue "Versionsnummer" sah, die Apple verglich.

  1. Gehen Sie zu iTunes Connect -> Verwalten Sie Ihre Anwendungen
  2. Wählen Sie die Anwendung aus, für die Sie die vorherige Version überprüfen möchten
  3. Klicken Sie auf die blaue Schaltfläche Details anzeigen
  4. Klicken Sie auf den Link Binärdetails
  5. Suchen Sie den für die Bundle-Version angegebenen Wert

Obwohl ich dachte, ich hätte die Versionsnummer 1.0.1 eingereicht, war die tatsächliche Nummer, die Apple gespeichert hat, 101. Einige der obigen Kommentare ließen mich glauben, dass ich meine Version auf 2.0 (20) oder 1.5 (15) oder 1.2 (12) ändern musste ) - das sind alle weniger als 101, wie Sie sehen können. Das Aktualisieren meiner Versionsnummer 102 (ohne die Punkte) hat das Problem behoben.

Kyle Hayes
quelle
6

In diesem Artikel wird darauf hingewiesen, dass die im App-Store angezeigte Versionsnummer nicht unbedingt mit der Versionsnummer des Bundles übereinstimmt. Wenn Sie die Details Ihrer App in iTunes anzeigen, wird ein Link mit dem Namen "Binäre Details" angezeigt. Diese Seite zeigt die Bundle-Version. Eine der Apps, an denen ich gearbeitet habe, war Version 1.0, aber die Bundle-Version war 2.0. Das Hochladen eines Bundles mit Version 1.1 ist fehlgeschlagen, aber 2.1 hat funktioniert.

Es gibt also eine App-Version und eine Bundle-Version. Dieses Problem hat mit der Bundle-Version zu tun.

Pieter Witvoet
quelle
5

Es scheint, dass Verwirrung durch das Zahlenformat verursacht wird. Die Bundle-Version ist keine Dezimalzahl. Es ist eine Version (oder Build vielleicht), also ist 1.11 tatsächlich "ein Punkt elf". Daher ist 1,11 größer als 1,2. In diesem Fall hatte ich Erfolg mit 1,20.

Gavin
quelle
4

Dies kann normalerweise auf das Fehlen der Versionsnummer zurückzuführen sein. Fügen Sie also unter Identität die Versionsnummer hinzu und überprüfen Sie auch die Build-Nummer.

Geben Sie hier die Bildbeschreibung ein

Codierung weiter ......... :)

Krishna Raj Salim
quelle
3

Für mich (Xcode 4.5) löste das Ändern der Build-Nummer das Problem. Setze Versionen auf 1.0.2 ... 2.0.2 usw. und erhöhe dann Build # (Adam 3 Punkt gib mir eine Idia, wo ich suchen soll).

setdvd
quelle
2

Sie sollten sich bei iTunes Connect anmelden und die aktuelle Version der App anzeigen können (einschließlich aller von Ihnen eingereichten, aber nicht aktiven). Stellen Sie sicher, dass Sie noch keine Version mit einer höheren (oder derselben) Versionsnummer eingereicht haben.

Danny Tuppeny
quelle
Das ist irreführend; Apple vergleicht NICHT einfach mit der iTunesConnect-Version. Siehe die Antwort von Pieter unten für eine genauere Antwort.
Adam
@Adam Ab sofort (2014-05) vergleicht Apple tatsächlich die internen Versionsnummern Ihrer iOS-App mit den Versionsnummern von iTunesConnect. Bei 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'].Nichtübereinstimmung wird folgende Warnmeldung angezeigt (kein Fehler): Dieser iTunesConnect-Vergleich ist jedoch nicht die Ursache für das Problem in dieser Frage. Der iTunesConnect-Vergleich ist nur eine Warnung und kein Show-Stop-Fehler.
Basil Bourque
2

Ich habe einige Stunden damit verbracht, dieses Problem zu beheben. Ich habe mit aller Kraft überprüft, ob die CFBundleVersion tatsächlich höher als die ältere Version ist, indem ich die info.plist in einem Texteditor geöffnet, Informationen über das Ziel abgerufen und die Version in den Eigenschaften gelesen und meine Frau gebeten habe, die Version zu lesen auf iTunes, um zu bestätigen, dass ich nicht von einer unerwarteten früheren Alzheimer-Krankheit getroffen wurde.

Am Ende hat dies irgendwie den Trick getan. Meine ältere Version war 1.0.4. Ich habe 1.3.5, 1.4.5 usw.; keiner hat funktioniert. Aber überraschend genug, als ich 2.0.0 eingegeben habe, gefällt Application Loader, was es gesehen und hochgeladen hat. Liegt dies an einem Fehler im Application Loader?

Wayne Lo
quelle
2

In der Zielzusammenfassung neben der Versionsnummer in xcode4 befindet sich ein Build. Ich habe dies bei 1 gestartet. Ich erhöhe jedes Mal, wenn ich einen binären Upload durchführe. Dadurch wurde das Problem für mich behoben

Axt
quelle
Dies war auch mein Problem, die Fehlermeldung ist sehr irreführend!
mj662
Ich hatte auch dieses Problem. Es ist unglaublich frustrierend, dass die Nachricht so irreführend ist. Verschwendete den größten Teil meines Nachmittags. Vielen Dank für die hilfreiche Antwort.
Joel Anair
2

Wenn der gemeldete Fehler die CFBundleVersion ist, ist die Korrektur normalerweise ziemlich einfach. Überprüfen / versuchen Sie dies:

  1. Gehen Sie im Projektnavigator zum Projektelement der obersten Ebene und klicken Sie darauf.
  2. Klicken Sie im rechten Bereich auf das Anwendungsziel.
  3. Klicken Sie auf die Registerkarte Zusammenfassung.

Auf der Registerkarte Zusammenfassung sehen Sie, dass zwei verschiedene "Versionen" angepasst werden können. Das erste ist das Feld "Version", das im Standardbildschirm "Info" für Mac-Apps verwendet wird. Die rechte ist die "Build-Version". Dies ist derjenige, der für App Store-Einreichungen wirklich wichtig ist!

David Hoelzer
quelle
2

Ich weiß, dass dies eine alte Frage ist, aber ich bin gerade auf dieses Problem gestoßen. Ich habe es gelöst, indem ich das Projekt aus dem Archiv gelöscht und dann erneut archiviert habe. Anscheinend saß die vorherige Version der App dort und verursachte Verwirrung.

Henry F.
quelle
2

Beachten Sie die Fehlermeldung.

Die Fehlermeldung enthält die vorherige Bündelnummer in eckigen Klammern (z. B. [9]).

Daher müssen Sie diese Bundle-Nummer (z. B. 9.1) erhöhen, obwohl Ihre neue Versionsnummer 1.2 ist

Wenn Sie also die Version in iTunes Connect von 1.1 auf 1.2 aktualisieren, müssen Sie diese Werte in Ihrem Projekt festlegen

Version number = 1.2
Bundle number = [previous bundle number]++
Serge Seletskyy
quelle
2
HINWEIS: Wenn Sie nicht sicher sind, wie die Bundle-Nummer für die zuletzt hochgeladene Version lautete, klicken Sie auf die ältere Version und suchen Sie nach Binärdetails (unter Links). Sie sollten "Bundle Version: #"
Nathaniel Blumer
1

Ich habe ein iPhone und eine iPad-Version in meinem Projekt. Die Infopiste für das iPad war aus irgendeinem Grund nicht mit dem iPad-Produkt verknüpft. Durch Überprüfen der Zielmitgliedschaft und Verknüpfen mit dem richtigen Produkt wurde dieses Problem für mich behoben.

Jay Adams
quelle
1

Ich habe einen Fehler gemacht, indem ich die 'Version' und die 'Build' Nr.

Anstatt die 2.3 in das Feld Version einzufügen, habe ich sie in die Build-Nr.

Pritesh Desai
quelle
1

Hier ist, wie ich das Problem behoben habe (und ich vermute, dass dies das Problem bei vielen Menschen ist):

1) Klicken Sie auf die Registerkarte Allgemein Ihrer Projekteinstellungen (auf die Sie zugreifen können, indem Sie auf Ihren Projektnamen klicken, der sich oben in allen Codedateien befindet).

2) Stellen Sie sicher, dass das Build-Feld mit dem übereinstimmt, was Sie für den Schlüssel "Bundle-Version" in Ihre Liste aufgenommen haben.

Dies war das Problem für mich, aus welchem ​​Grund auch immer sie nicht synchron waren. Ich denke, wenn Sie den Bundler-Versionsschlüssel ändern, soll er synchronisiert werden (und umgekehrt). Aber es ist aus irgendeinem Grund nicht passiert - könnte ein Fehler sein.

Ser Pounce
quelle
1

Ich hatte das gleiche Problem und es geschah, weil ich nicht archiviert habe und das erste Archiv verwendet habe, das ich für 1.0 verwendet habe, aber mit 1.0.1. Also habe ich ein iOS-Gerät ausgewählt, archiviert und dann validiert. Ta-daaa, es hat funktioniert!

Gonzo345
quelle
sollte eher ein Kommentar als eine Antwort sein.
Hallo Welt
0

Ich hatte das gleiche Problem. Grundsätzlich war meine vorherige Version 1.12. Ich wollte sie auf 1.2 ändern, hatte aber den genannten Fehler. Ich habe 1.20 ausprobiert und es hat perfekt funktioniert

Mukaissi
quelle
Die zweite Zahl muss zwischen 0 und 9 liegen, also ist 12 "zu groß"
JOM
1
Die "zweite Nummer" (ich nenne sie nur zum Spaß eine kleinere Versionsnummer) kann eine beliebige Ganzzahl sein, es gibt keine Grenzen dafür. also ist das 12oder 20die perfekte Nebenversionsnummer .
Holex
0

Solange ich Apples "Application Loader" zum Hochladen meiner IPA-Datei verwendet habe, funktionierte kein Satz immer größerer Versionsnummern, aber wenn ich XCodes "Organizer" verwendete (in Version 3.2.5 unter dem Pulldown "Fenster" zu finden) , klickte auf die Schaltfläche "Validieren ...", wartete darauf, dass es mich genehmigte, und klickte dann auf die Schaltfläche "Senden ...". Alles verlief wie erwartet mit einer vernünftigen Versionsnummer (eine, die ein einzelnes Inkrement über der aktuellen liegt verfügbar im Appstore).

ideasuns
quelle
0

In Xcode 4.2 wird die Bundle-Version anscheinend nicht registriert, wenn Sie Änderungen an der Datei info.plist vornehmen. Ich habe meine neue Bundle-Version direkt im xcode panel "info" eingestellt und jetzt funktioniert es!

Marco Allori
quelle
0

Ich habe eine andere Lösung gefunden.

Wenn Sie Ihr Ziel auswählen >> info >> Bundle ID aktualisieren.

Michael
quelle
0

Ich hatte das gleiche Problem. Die erste eingereichte Version war 1.5.20 und wollte auf 1.7.30 aktualisiert werden.

Nachdem ich die Versionen 1.8, 2.0 und 3.0 nicht erfolgreich ausprobiert hatte, aktualisierte ich meine CFBundleVersion auf 10.0 und plötzlich funktionierte es.

Ich bin mir nicht sicher, welche Logik hinter diesem Verhalten steckt, aber ich habe ungefähr 2 Tage Arbeitszeit verschwendet.

BastiBen
quelle
0

Überprüfen Sie Ihre Bundle-Version der zuvor hochgeladenen Version. Geben Sie im Vergleich zur Bundle-Version der bereits hochgeladenen Version eine höhere Bundle-Version an. Die bereits hochgeladene Version kann über itunesconnect / application / view details / binary details angezeigt werden.

Vishnu R Kaimal
quelle
0

Ich habe zwei Nächte mit einem ähnlichen Thema verbracht. Meine vorherige Version war 1.02, und ich habe versucht, mit 1.2, 1.20, 1.1 zu validieren, und ich habe immer die ungültige Binärnachricht erhalten.

Ich habe es gelöst, indem ich 2.0 als Versionsnummer eingegeben habe, und das hat funktioniert . Ich vermute, dass dies auch ein Fehler ist. Ich habe diese Meldung nicht erhalten, als ich kürzlich mein Spiel von 1.0 auf 1.1 aktualisiert habe, aber das war mit xcode 3. Danke für den Tipp!

Maschinenjunge
quelle
0

Ich hatte ein ähnliches Problem und nach einer halben Stunde bemerkte ich, dass ich die falsche Anzahl erhöhte. Anstatt zuzunehmen, nahm Bundle versionich Bundleversions, string, shortin Info.plist zu. Suchen Sie in Ihrem Projekt nach "CFBundleVersion" mit CMD + Umschalt + F. Sie werden sehen, dass Sie die CFBundleVersion-Nummer erhöhen müssen.

Josip B.
quelle
0

Versuchen Sie, version = "1.1.1.0" in version = "1.1.1" zu ändern.

RouR
quelle
0

Ab Ende Oktober verlangt Apple, dass die Versionsnummern weniger als 4 Stellen haben (1.2.3 oder 1.23 im Gegensatz zu 1.2.3.4 oder 1.234). Dies gilt auch für Bibliotheken!

Ein kurzer Blick auf die fehlerhafte Versionsnummer in Ihrem Projektverzeichnis sollte die fehlerhafte Bibliothek aufdecken:

grep -r "1.2.3.4" .

Warpling
quelle
0

Ich hatte eine aktive TestFlight-Beta. Build 2020 , Version 407

Ich habe eine App zur offiziellen Überprüfung im App Store eingereicht . Build 2020 , Version 435, und es wurde genehmigt. Es sitzt nur da und wartet darauf, dass ich es live in den App Store schiebe.

Ohne eine komplizierte Nebengeschichte hinzuzufügen, wollte ich meinen TestFlight-Beta-Benutzern eine aktualisierte Version geben, um einige Tage lang eine Vorschau der offiziellen App Store-Version anzuzeigen, bevor die App Store-Version live geschaltet wird. Warum fragst du? Da sie kostenlose Funktionen erhielten, kosteten sie Geld, sobald die App online ging.

Also habe ich Build 2020 , Version 436, bei TestFlight eingereicht und es wurde abgelehnt.

Es wurde abgelehnt, weil ich einen zugelassenen offiziellen App-Store-Kandidaten mit derselben Build-Nummer habe

Lösung: Ändern Sie die Build-Nummer Ihrer TestFlight-Version. Ich habe Build 20200 (ich habe eine zusätzliche Null hinzugefügt) Version 436 bei TestFlight eingereicht und es wurde genehmigt. Keine Sorge, Sie können diesen Build weiterhin an dieselbe TestFlight-Betagruppe senden, solange Sie dieselbe BundleID verwenden.

Jungledev
quelle