Info.plistアップロードエラーのCFBundleVersion


108

「アップロードしたバイナリは無効です。Info.plistファイルのキーCFBundleVersionには、以前にアップロードしたバージョンよりも新しいバージョンが含まれている必要があります。」

アプリケーションをアップロードしようとすると、このエラーが発生します。

iTunes Connectでアップデートバージョンを1.2に設定し、.plistファイルも1.2にアップデートしました。

このエラーが発生する理由がわかりません。任意の助けいただければ幸いです。ありがとう。


試してみて、たとえば1.2.1に設定してみませんか?
Nikita Rybak

私は多くの組み合わせを試しました。何も動作しません。そのエラーは増え続けています。
Adam H

1
以前にアップロードしたバージョンは何ですか(現在出荷されているアプリのInfo.plistにあります)。
Costique、2011

この問題は解決しましたか?同じことが突然起こりました。それはイライラさせられます。
ウェインロー

このエラーのメールを受け取ったところ、ITCで過去1週間「処理中」としてスタックされていた古いビルドの1つが最終的に処理されたことがわかりました。最初にスタックしたときに、ビルド番号を増やして別のビルドを再送信したため、古いビルドが最終的に処理されると、エラーが発生しました。
blwinters 2015年

回答:


210

Appleのアップロードサーバーには、12か月以上修正されていない既知のバグが少なくとも1つあります。注意すること:

  1. Appleは、バージョン番号内の先行ゼロをすべて削除します。つまり、「文字列全体」は数値として扱われず、ドット間のビットは個別の数値として扱われます。たとえば、「1.02」はAppleによって「1.2」として扱われます。したがって、Appleにとって、1.02は1.1よりも大きい
  2. Appleは時々「混乱」し、アップロードしたアプリを以前にアップロードしたDIFFERENTアプリのバージョンと比較しているようです。それは多くの人に起こり、私自身も何度か見ました
  3. Appleは「CFBundleVersion」(つまり「バンドルバージョン」を「バンドルバージョン文字列、短い」ではなく)と比較することになっています。混同しないでください。
  4. 多くの場合、実行可能な唯一の解決策は、前の数字をバンプすることです(たとえば、「2.4」の「2」-「3」に増やします)。
  5. アップロードするバージョン番号は、iTunesに表示されるバージョン番号とは関係ありません。そこに好きなものを置くことができ、ユーザーに表示されます。
  6. ...ただし、アプリ内の「実際の」バージョン番号も報告した場合、ユーザーには、iTunesのバージョン(通常、コーディング方法によって異なります)ではなく、CFBundleVersionが表示されます(これには-アプリ内)

1
CFBundleVersionは、xcode 4.5では「ビルド」というラベルが付けられたものであり、「バージョン」ではありません。バージョンは、Info.plistファイルで「CFBundleShortVersionString」というラベルが付けられます。したがって、実際には、Buildに以前よりも高い値を指定する必要があります。
RickJansen 2013

+1役に立つもの。1.02以前のバージョンを使用しました。そして、この答えを使用して修正します。ありがとうございました。
Praveenkumar

この回答はFAQ、アプリをアプリストアに送信する方法に関するセクションに追加する必要があります。:))
danypata 2013

@Adam:読んだとおりCFBundleShortVersionString、iTunes Connectで指定したバージョン番号は一致するはずです。あなたが使用するアプリで、あなたのバージョン番号を表示した場合ことを意味しますCFBundleShortVersionStringCFBundleVersion増加し、それはAppleがアプリの更新版を提出しているかどうかを判断するために使用するものであるべきです。
2015

Appleは最近、すべての文字列の意味を、下位互換性のない方法で再定義しました。
アダム

28

ビルド番号を更新します。バージョン番号は重要ですが、ビルド番号がすべての違いを生みます。たとえば、アプリの初期バージョンは次のようになりました。

version #: 1.0
build #:   1.0

しかし、私が次のバージョンをアップロードしようとしたとき、すなわち

version #: 1.1
build #:   1.0

アップロードを受け付けません。ビルド番号を1.1に増やすだけで、アップロードが受け入れられました。


パーフェクト...ビルドを変更することで#できました。バンドルバージョンとiTunesバージョンの同期を維持したかったので、これは素晴らしいことです。
アーロンヘイマン、2012年

9

Xcode 4は、アプリケーションを再アーカイブしない場合、同じバージョンを再アップロードしたいと考えます。バンドルバージョンを変更して再ビルドしても、アップロードは失敗します。製品メニューで「アーカイブ」を行うことを忘れないでください!


7

ここでの回答の多くは最終的に私を助けましたが、Appleが比較していた正確な「バージョン」番号を見たのはそうではありませんでした。

  1. iTunes Connect->アプリケーションの管理に移動します
  2. 以前のバージョンを確認するアプリケーションを選択してください
  3. 「詳細の表示」というラベルの付いた青いボタンをクリックします
  4. Binary Detailsというラベルの付いたリンクをクリックします。
  5. バンドルバージョンに指定された値を見つける

バージョン番号1.0.1を提出したと思っていたとしても、Appleが保存した実際の番号は101でした。上記のコメントのいくつかは、バージョンを2.0(20)または1.5(15)または1.2(12 )—ご覧のとおり、これらはすべて101未満です。バージョン番号102(ドットなし)を更新すると、問題が修正されました。


6

この記事では、app-storeに表示されるバージョン番号がバンドルのバージョン番号と必ずしも同じではないことを指摘しています。iTunesでアプリの詳細を表示すると、「バイナリの詳細」という名前のリンクがあります。そのページにはバンドルのバージョンが表示されます。私が取り組んでいたアプリの1つはバージョン1.0でしたが、バンドルバージョンは2.0でした。バージョン1.1のバンドルのアップロードは失敗しましたが、2.1は機能しました。

したがって、アプリバージョンとバンドルバージョンがあります。この問題は、バンドルバージョンに関係しています。


5

数値形式が原因で混乱が生じているようです。バンドルバージョンは10進数ではありません。これはバージョン(またはビルド)なので、1.11は実際には「1ポイント11」です。したがって、1.11は1.2より大きいです。この場合、1.20を使用して成功しました。


4

通常、これはバージョン番号がないために発生する可能性があります。そのため、IDの下にバージョン番号を追加し、ビルド番号も確認します。

ここに画像の説明を入力してください

コーディングを続ける......... :)


3

私(Xcode 4.5)では、ビルド番号を変更すると問題が解決しました。バージョンを1.0.2 ... 2.0.2などに設定し、ビルド番号を増やします(Adam 3ポイントでidiaの場所を確認できます)。


2

iTunes Connectにログインして、アプリの現在のバージョン(提出したがライブではないものを含む)を確認できるはずです。以前に、より高い(または同じ)バージョン番号のバージョンを送信していないことを確認してください。


これは誤解を招くものです。Appleは、iTunesConnectバージョンと単純に比較しません。より正確な回答については、以下のPieterの回答を参照してください。
アダム

@Adam現在(2014年5月)の時点で、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の比較は単なる警告であり、表示を停止するエラーではありません。
バジルブルク2014年

2

私はこの問題を解決するために数時間を費やしました。テキストエディターでinfo.plistを開き、ターゲットの情報を取得してプロパティのバージョンを読み取り、CFBundleVersionが古いバージョンよりも確実に高いことを確認するために全力で確認しました。妻にバージョンの読み取りを依頼しましたiTunesで、予想外の初期のアルツハイマーに襲われなかったことを確認します。

結局のところ、これはなんとかしてうまくいった。以前のバージョンは1.0.4でした。1.3.5、1.4.5などを試しました。どれもうまくいきませんでした。しかし意外なことに、私が2.0.0に入ると、Application Loaderはそれを見てアップロードしたものが気に入っています。これはApplication Loaderのバグが原因ですか?


2

xcode4のバージョン番号の横にあるターゲットの要約はビルドです。これを1から開始し、バイナリアップロードを実行するたびにインクリメントします。これで問題が解決しました


これも私の問題でしたが、エラーメッセージは誤解を招く可能性があります。
mj662 2012年

私もこの問題を抱えていました。メッセージが非常に誤解を招くのは非常にイライラします。私の午後のかなりの部分を無駄にしました。役立つ回答をありがとうございます。
Joel Anair

2

報告されたエラーがCFBundleVersionである場合、修正は通常非常に簡単です。これを確認/試してください:

  1. プロジェクトナビゲーターで最上位のプロジェクトアイテムに移動し、クリックします。
  2. パネルで、アプリケーションターゲットを右クリックします。
  3. 概要タブをクリックします。

概要タブでは、調整可能な2つの異なる「バージョン」があることがわかります。1つ目は「バージョン」フィールドで、Macアプリのデフォルトの「バージョン情報」画面で使用されます。右が「ビルドバージョン」です。これはApp Storeへの提出に本当に重要なものです!


2

これは古い質問であることはわかっていますが、この問題に遭遇しました。アーカイブからプロジェクトを削除してから再アーカイブすることで解決しました。どうやら前のバージョンのアプリがそこにあり、混乱を引き起こしていたようです。


2

エラーメッセージに注意してください。

エラーメッセージには、角かっこで囲まれた以前のバンドル番号が含まれます(例:[9])。

したがって、新しいバージョン番号は1.2ですが、そのバンドル番号(例:9.1)を増やす必要があります。

したがって、iTunes Connectでバージョンを1.1から1.2に更新する場合、プロジェクトでこれらの値を設定する必要があります

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

2
注:アップロードされた最後のバージョンのバンドル番号がわからない場合は、古いバージョンをクリックして、バイナリの詳細(リンクの下)を探します。「バンドルバージョン:#」が表示されるはずです
Nathaniel Blumer

1

私のプロジェクトにはiPhoneとiPadのバージョンがあり、何らかの理由でipadのinfoplistがipad製品に関連付けられていませんでした。ターゲットメンバーシップを確認し、それを正しい製品に関連付けると、この問題は解決しました。



1

「バージョン」と「ビルド」の番号を入れ替えて間違えました。

バージョンフィールドに2.3を入れる代わりに、ビルド番号に入れます。


1

これが私が問題を修正した方法です(そして私はこれが多くの人の問題だと思います):

1)プロジェクト設定の全般タブをクリックします(すべてのコードファイルの上部にあるプロジェクト名をクリックしてアクセスできます)。

2)ビルドフィールドが、「バンドルバージョン」キーのplistに入力したものと一致することを確認します。

どういうわけか、彼らは同期していませんでした。Bundlerのバージョンキーを変更すると、同期するはずです(逆も同様です)。しかし、それは何らかの理由で起こりませんでした-バグかもしれません。


1

私は同じ問題を抱えていましたが、アーカイブしていないために発生し、1.0で使用した最初のアーカイブを1.0.1で使用していました。そこで、iOSデバイスを選択してアーカイブし、検証しました。ターダァア、効いた!


答えではなくコメントにする必要があります。
Hello World

0

私も同じ問題を抱えていました。基本的に、以前のバージョンは1.12でしたが、1.2に変更したいのですが、上記のエラーがありました。私は1.20を試してみましたが、それは完璧に機能しました


2番目の数値は0から9の間でなければならないため、12は「大きすぎます」
JOM

1
「2番目の番号」(私はそれをマイナーバージョン番号と呼びます)は、任意の整数にすることができます。境界はありません。そう12か、20完璧ですマイナーのバージョン番号。
holex 2013年

0

Appleの「Application Loader」を使用してipaファイルをアップロードしている限り、バージョン番号が増え続けることはありませんでしたが、XCodeの「Organizer」を使用した場合(バージョン3.2.5の「Window」プルダウンにあります) 、「Validate ...」ボタンをクリックし、それが私を承認するのを待ってから、「Submit ...」ボタンをクリックすると、すべてが正常なバージョン番号で正常に実行されました(現在のバージョンより1つ上のバージョン番号)アプリストアで入手可能)。


0

xcode 4.2では、info.plistファイルから変更した場合、バンドルバージョンを登録しないようです。新しいバンドルバージョンをxcodeパネルの「info」に直接設定すると、動作します。


0

別の解決策を見つけました。

ターゲットを選択した場合>>情報>>バンドルIDを更新します。


0

私も同じ問題を抱えていました。最初に送信されたバージョンは1.5.20で、1.7.30に更新したいと考えていました。

バージョン1.8、2.0、3.0の試行に失敗した後、CFBundleVersionを10.0に更新したところ、突然機能しました。

この動作の背後にあるロジックが何であるかはわかりませんが、約2日間の作業時間が無駄になりました。


0

以前にアップロードしたバージョンのバンドルバージョンを確認します。すでにアップロードしたバージョンのバンドルバージョンと比較して、より高いバンドルバージョンを指定する必要があります。すでにアップロードしたバージョンは、itunesconnect / application / view details / binary detailsで表示できます。


0

私は同様の問題に2泊しました。以前のバージョンは1.02でしたが、1.2、1.20、1.1で検証を試みましたが、常に無効なバイナリメッセージが表示されました。

バージョン番号として2.0を入力して解決しましたが、うまくいきました。これもバグだと思います。最近ゲームを1.0から1.1にアップグレードしたときにこのメッセージは表示されませんでしたが、それはxcode 3で発生しました。ヒントをありがとう!


0

私は同様の問題を抱えていて、30分を費やした後、私は間違った数を増やしていることに気づきました。増やす代わりに、Info.plist Bundle versionで増やしていBundleversions, string, shortました。CMD + Shift + Fを使用して、プロジェクトで「CFBundleVersion」を検索します。CFBundleVersion番号を増やす必要があることがわかります。


0

version = "1.1.1.0"をversion = "1.1.1"に変更してみてください


0

10月下旬現在 Appleではバージョン番号を4桁未満にする必要があります(1.2.3.4または1.234ではなく、1.2.3または1.23)。これはライブラリにも適用されます!

プロジェクトディレクトリにある問題のバージョン番号をすばやくgrepすると、問題のライブラリが表示されます。

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に送信したところ、拒否されました。

同じビルド番号の承認済みApp-Store候補者がいるため、拒否されました

解決策:TestFlightバージョンのビルド番号を変更します。私が提出したビルド20200 TestFlightに(私は余分なゼロを追加しました)バージョン436を、それが承認されました。心配しないでください。同じBundleIDを使用している限り、このビルドを同じTestFlightベータグループにプッシュできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.