Xcodeのアプリアップロード時Redundant Binary Upload.エラーの対処
Xcodeで「Upload to iTunes Connect」のボタンを押してアップロードした際に表示される「ERROR ITMS-4238: "Redundant Binary Upload. There already exists a binary upload with build version '1' for train '1.0'" at SoftwareAssets/PreReleaseSoftwareAsset」のエラー。
これほどがっかりすることはない。
「またやっちまった」という感になる。
Redundant Binary Upload.エラーの解決法
これは要するに、「Build」のバージョンが同じバイナリが重複してiTunes Connectにアップロードされているぞ、ということを意味するエラーメッセージなので、以下の様にして解決する。
ビルドの値を増やす。対処法はこれだけ。例えば、1.0というバージョンで「Build」が「1」のものをすでにアップロードしていたとしたら、この「Build」の値を1.1とかに増やす。
そうすれば「Upload Successful」になってアップロード成功。
iTunes Connect内でも、同じ「1.0」というバージョンのバイナリに対して、「1.1」というビルドと「1」というビルドとが共存している。
重複ビルドのアップロードは絶対に避けなければならない理由
これ、結構忘れがちになる。経験上。
審査でリジェクトされた場合に再度アップロードする際は、iTunes Connect内で「バージョン」を1から1.1とか1.0.1とかに増やしてから行うという作業が発生するので、Xcodeでも「バージョンアップさせないとな」という意識が働いて、バージョンの数値を変更する作業を忘れにくいと思う。
しかし、特に審査でリジェクトされたわけでもなく、「あ、しまった。すでにアップロードしちゃったけど、微妙にあの機能入れるの忘れた」みたいに微修正かけてからすぐにアップロードする際。
こういう時は大抵慌てていて、うっかり「ビルド」の数値を変更する作業を見落とすことになるので、ぜひ気をつけたい。
これをやらかすと精神的ダメージが強い。
なぜか。
アップロードの時間を無駄にするからである。
例えば私のiPhoneアプリ、10MBを超える容量のバイナリのものもあるのですが、それをアップロードするためにかかる時間は20分とか場合によっては30分とかかかったりするのですよ。
その間ひまだからといって、インターネットでいろいろ検索したりしていると回線が遅くなってアップロードにかかる時間がよく多くなり、最悪、「インターネットの接続エラーでアップロードに失敗した」みたいなエラーが出たりもする。
だからとりあえずアップロード中は下手にPCをいじらずに、アナログに本読んだりラジオ聞いたりして時間を潰すのである。
で、そんな問題もなくスムーズにアップロードができたかな、と思ったとしても、冒頭の「重複バイナリ」エラーでまた最初からアップロードのやり直しを余儀無くされる。
せっかくかけた時間が水の泡。
これが起きると、もう何もやる気がしなくなるというか、私の時間を返せというか、やるせない気分になって落ち込む。
落ち込むといろんな意味で生産性がなくなるので、本当、重複ビルドのエラーには注意したほうが良い。