web-dev-qa-db-ja.com

CFBundleVersionは以前のバージョンよりも高くなければなりません

アプリの1つに更新を送信しています。私はこれまでに開発した多くのさまざまなアプリで何十回もこれを行ってきましたが、これは何らかの奇妙な理由で失敗しています。アプリをアーカイブし、アーカイブを検証しようとすると、次のエラーメッセージが表示されます。

This bundle is invalid. The key CFBundleVersion in the Info.plist file must 
contain a higher version than that of the previously uploaded version.

iTunesConnectは、このアプリが現在1.0であり、バージョン1.1(アプリアイコンが編集されたスクリーンショット)をアップロードする準備ができていることを示しています。

iTunes Connect Screenshot

これは、バージョンとショートバージョンが両方とも「1.1」であることを示す、アプリターゲットの概要情報のスクリーンショットです。

enter image description here

以下は、バンドルアーカイブのInfo.plistの上半分です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AppStoreFileSize</key>
    <integer>20859080</integer>
    <key>ApplicationProperties</key>
    <dict>
        <key>ApplicationPath</key>
        <string>Applications/MyApp.app</string>
        <key>CFBundleIdentifier</key>
        <string>com.mydomain.myapp</string>
        <key>CFBundleShortVersionString</key>
        <string>1.1</string>

そして、アーカイブバンドル内のアプリ内からの関連するInfo.plistの一部を次に示します。

<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>

更新されたアプリ内のすべてのバージョン番号は1.1で、iTunesConnectは1.1を期待していると言っていますが、番号が間違っていると不平を言っています。

私は何が欠けていますか?

34
Kenny Wyland

元の提出物に問題があり、ユーザーに見えるバージョンは「1.0」でしたが、内部バンドルのバージョンは「1.2」でした。そのため、新しいバージョンを1.3と1.3に変更し、提出は機能しました。

enter image description here

50
Kenny Wyland

ご参考までに。 Appleは1.11> 1.2と考えているため、1.11から1.2に移行する場合は、1.20に至る必要があります。

楽しい。

50
Michael Wilson

私にも同じことが起こりました。現在のApp Storeバージョンは2.でした。 2.1をアップロードしようとしました。それを2.1に変更するだけで、うまくいきました。

24
John MacAdam

CFBundleShortVersionStringまたは「Bundle versions string、short」を増やすと、仕事がうまくいきました。

5
Ammar Mujeeb

ここに私が問題を修正した方法があります(そして、これは多くの人々の問題だと推測しています):

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

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

なんらかの理由で同期が外れていたので、これが問題でした。 Bundler Versionキーを変更すると、同期するはずです(逆も同様です)。しかし、それは何らかの理由で起こりませんでした-バグかもしれません。

3
Ser Pounce

私の問題は、1.9.12から1.9.2に試したことです...あなたがそれについて1.9.2を実際に考えた場合、実際には1.9.02なので、1.9.2を設定すると問題が解決します。

2

これは別の理由で完全に引き起こされる可能性があります。

アクティブなTestFlightベータ版を実行していました。 ビルド202、バージョン407

officialApp Storeレビューのためにアプリを提出しました。 ビルド202、バージョン435、承認されました。ただそこに座っているだけで、ライブでApp Storeにプッシュされるのを待っています。

複雑なサイドストーリーを追加することなく、私がしたかったのは、TestFlightベータ版ユーザーに、App Storeバージョンを公開する前に数日間公式App Storeバージョンをプレビューするための更新バージョンを提供することです。なぜ聞くの?彼らは無料の機能を手に入れていたので、アプリが公開されるとお金がかかりそうでした。

そのため、Build 202、バージョン436をTestFlightに送信しましたが、拒否されました。

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

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

2
jungledev

その理由の1つは次の状況である可能性があります。ビルド番号50でAppStoreバージョン1.0に送信しました。テストのためにTestFlightユーザーに提供することにしました。そして同時に、このバージョンをレビュー用にAppStoreに送信することにしました。ユーザーはそれをテストし始め、すべてうまくいきます。しばらくして、AppStoreはそれを承認しますが、リリースではありません(開発者の確認ステータスがあります)。いくつかの変更を加えた後、Testflightユーザーに新しいリリースを提供したいと考えています。ビルド番号を51に増やし、バージョン番号を1.0に保つことにします。この場合、質問で説明したエラーが表示されます。アプリのバージョンも増やす必要があります。

1
swift2geek

上記の回答で問題が解決しない場合は、XcodeのバージョンがiTunes Connectで作成したバージョンと同じであることを確認してください。

私の場合、iTunes接続では、バージョンは1.38でしたが、Xcodeのバージョンは1.3.8でした。 Xcodeでバージョンを1.38に変更すると、問題は解決しました。

0
Ghulam Rasool