先に結論から行きます.

iCloud Containerを指定してはいけない

iCloud Containerをひとつでも指定すると,Appleに新しいバイナリを送るときに,以下のようなEntitlementsエラーが出て,送信に失敗します. つぶさに見ると,iCloud関係の署名がすべて無効になっているようです.

Invalid Code Signing Entitlements - Your application bundle’s signature contains ubiquity code signing entitlements that are not supported. Specifically, value “( XXXXXXXXXX.* )” for key “com.apple.developer.ubiquity-container-identifiers” in is not supported.

iTunes connectの”Validate…“のエラー結果より抜粋

アレがアレするまではコレで

iCloud Containerを指定すると,iCloudの設定項目が緑色になり,”Enable”になります. しかし.この状態では,上述のように以下のようなEntitlementsエラーが出て,iTunes connectにバイナリを送るときに,エラーになってしまいます.正解は,以下のような画像の状態にしておくことです.

image

そうすると,気持ち悪いんですが,App IDのiCloudの項目が以下のようにConfigurableになってしまいます. しかし,こうしておくのが正しい状態です.こうしておかないとiTunes connectにバイナリを送れません.

image

さらなる不具合?仕様?

すでにApp Storeでアプリケーションを公開しており,iCloud Containerを指定している状態で,iCloudを使用しているApp IDのApplication Provisioning Profileを作成すると,しばらくすると,Provisioning Profileは,強制的に“Invalid“になります.どうやら,自動でおかしくなるのを防いでいるようです.よくわかりません.そこ自動にするなら,結果をちゃんと伝えて欲しいですよ・・・・.

まとめ

アレの設定が追加されたために,こんなことになったようです. いずれ,アレがあーなったら,こんな気持ち悪いことにはならないと思います.