問題
iTunes Connectへバイナリをアップロードする際に, 以下のエラーで失敗してしまう (****の部分はプロジェクトによって違う).
ERROR ITMS-90060: "This bundle is invalid. The value for key CFBundleShortVersionString `****` in the Info.plist file must be a period-separated list of at most three non-negative integers."
原因
iTunes Connectへバイナリをアップロードした際に, サブミットしようとしているアプリのバージョンだけでなく, CocoaPodsでバンドルしているモジュールのバージョンもチェックされるようになった. 結果, バンドルしているモジュールすべてのInfo.plistがチェックされ, その中に不正なバージョン名のものが存在すると上記エラーが発生してしまう.
バージョン名はエラーメッセージにある通り, ピリオドで区切られた非負の整数である必要があるが, 例えば 1.0.0-alpha1
や1.0.0-rc1
のようなバージョン名のPodを利用した際などにエラーが発生する.
対処方法
Issueスレッド内の投稿で提案されているフックをPodfileに追記する.
上記フックは pod install
実行後にすべてのモジュールの中の不正なバージョン番号を自動で置き換えるもの.