web-dev-qa-db-ja.com

CFBundleVersionは、最大3つの負でない整数のピリオド区切りのリストである必要があります(ITMS-9000の警告)

アプリを送信しようとすると、次の警告が表示されます。

enter image description here

警告ITMS-9000:「このバンドルは無効です。info.plistファイルのキーCFBundleVersion [3.3.9.2014.08.20]の値は、最大で3つのピリオド区切りリストである必要があります非負の整数。」

これは、そのバージョン管理形式で多数の送信を行った後で初めて見られるものです。

CFBundleVersionに関して何か変更はありますか?

threeが常にそこにあったとは思わない?またはAppleちょうどそれについて私たちに警告を開始しましたか?

Apple docs から:

CFBundleVersion

CFBundleVersion(文字列-iOS、OS X)は、バンドルのビルドバージョン番号を指定します。これは、バンドルの反復(リリース済みまたは未リリース)を識別します。ビルドバージョン番号は、3つの負ではない、ピリオドで区切られた整数で構成される文字列で、最初の整数はゼロより大きい必要があります。文字列には、数字(0-9)とピリオド(。)のみを含める必要があります。先頭のゼロは各整数から切り捨てられ、無視されます(つまり、1.02.3は1.2.3と同等です)。このキーはローカライズできません。

編集:

ご覧のように、CFBundleVersionが変更されたようです here 。 Appleの "Document Revision History"には何も書かれていないのに、WayBackMachineでそのようなものを検索する必要があるのは残念だ。

21
Segev

ご覧のように、CFBundleVersionが変更されたようです here 。 Appleの "Document Revision History"には何も書かれていないのに、WayBackMachineでそのようなものを検索する必要があるのは残念だ。

1
Segev

これは、Cocoapodsから使用していたフレームワークで発生しました。修正方法は次のとおりです。

Info.plistファイルで非標準のCFBundleShortVersionStringを見つける必要があります。私はそれらすべてを検索し、これをリポジトリの1つで見つけました:

  <key>CFBundleShortVersionString</key>
  <string>HEAD based on 1.0</string>

これを次のように変更しました:

  <key>CFBundleShortVersionString</key>
  <string>1.0</string>

そしてそれはうまくいった

Cocoapods開発者によって作成されたこのメソッドも機能します。

https://github.com/Jonge/Cocoapods-frameworks-version-number-fix

11
Esqarrouth

Appleはこれをさらに一歩進めて、これをエラーにしました(これがいつ起こったかはわかりませんが、Xcode 6を使用しています)。CFBundleShortVersionStringが2小数点以上の場合、iTunes Connectへのアーカイブの送信が失敗します。

あなたは今mustCFBundleShortVersionString like 1.04.5.2などを使用して、アプリケーションを正常に送信します。少し煩わしいかもしれませんが、理にかなっていると思います。

Error

8
rebello95

推奨されるベストプラクティスは、CFBundleShortVersionStringCFBundleVersionに別々の値を使用することです。

  • CFBundleShortVersionStringの最大3コンポーネント(例:4.2.3)
  • ビルド番号CFBundleVersion

CFBundleShortVersionStringは、App Storeに表示されるバージョンです。 CFBundleVersionは、アップロードするビルドごとに変更する必要があります。

例:iTunesConnectで確認するために新しいバージョン(4.2.3)をアップロードし、拒否された場合。同じバージョン番号(CFBundleShortVersionString = 4.2.3)の新しいビルドを異なるCFBundleVersion値で再送信する必要があります

5
Erwan

CocoaPodsを使用している場合は、このスクリプトをPodfileに追加して、非数値のバンドルバージョンを処理します。

# fix for non numeric CocoaPods versions
# https://github.com/CocoaPods/CocoaPods/issues/4421#issuecomment-151804311
post_install do |installer|
  plist_buddy = "/usr/libexec/PlistBuddy"
  installer.pods_project.targets.each do |target|
    plist = "Pods/Target Support Files/#{target}/Info.plist"
    original_version = `#{plist_buddy} -c "Print CFBundleShortVersionString" "#{plist}"`.strip
    changed_version = original_version[/(\d+\.){1,2}(\d+)?/]
    unless original_version == changed_version
      puts "Fix version of Pod #{target}: #{original_version} => #{changed_version}"
      `#{plist_buddy} -c "Set CFBundleShortVersionString #{changed_version}" "Pods/Target Support Files/#{target}/Info.plist"`
    end
  end
end

ReactiveCocoa 4の出力例:

Installing ReactiveCocoa (4.0.4-alpha-1)
(...)
Fix version of Pod ReactiveCocoa: 4.0.4-alpha-1 => 4.0.4
2
KlimczakM

エラーに従い、CFBundleVersionに従って検索します。ケース検索では3.3.9.2014.08.20に変更し、3.3.9や3.4.0などの正しいバージョンに変更します(古いバージョンよりも大きい必要があります)。

0
lee

同じ問題が発生していました-

ブロッククォート

エラーITMS-90058:「このバンドルは無効です。Info.plistファイルのキーCFBundleVersion [ms-08-23]の値は、最大3つの負でない整数のピリオド区切りリストである必要があります。」

ブロッククォート

そこで行って、サードパーティのフレームワークPlistごとに検索したところ、SAPライブラリでバンドルバージョンとして[ms-08-23]が見つかりました。 3つの非負の整数の形式に変更しましたie.0.、SAPのすべてのフレームワークで変更しました-IT作業

0
iMinion