Macアプリの申請がまたRejectされた…

またと書いていますが、実は、もう3回目のRejectです…。iPadアプリはさくっと1回で通ったのにそのMac版が3回目のRejectとは。

 

これまでのRejectを簡単にまとめてみます。

Reject# 理由
1
  • アプリ名が統一されていない
  • ウィンドウのサイズを縮小すると、コンテンツが切断される
  • アプリを終了した時に、re-openするすべがない

(ブログ記事:Macアプリ申請がrejectされた;;

2
  • サンプルデータがない
3
  • システムのiCloudをオフにしてアプリを起動するとエラーで落ちる

サンプルデータの添付

#2の”サンプルデータがない”のは、アプリ内に数件のサンプルデータを入れているのですが、アプリのヘルプに外部データを取り込めるという文章を書いていたので、それを見てテストしてくれているのだと思います。iPadはヘルプがないので、きっとそういうチェックがないのでしょうね。

私のつたないというか、きっと無茶苦茶な英語のヘルプを読んでくれているのには感動しました。そして、どうやら意味が伝わっているような感じなのが嬉しかったです。iPadアプリは英語にはローカライズしていないんですが、Mac版を英語ローカライズした理由は、Mac版を作っている時に、なぜかiPad版の売上国にUSAが1件あがっているのに気付いたからです。今思えば、スクリーンショットが日本語しか表示されていないのに買ってくれたということは、きっとアメリカに住んでいる日本人か日本語の得意な人だろうと想像します。だから、変に英語にするより日本語だけの方がよかったのかもと思ったりしています。

添付の方法

サンプルデータの添付の方法ですが、アプリ申請時に”Version Information”を入力するところで、”Review Notes”という項目があるのでそこにサンプルデータを貼付けます。1,000文字以内なので、それを超える場合とか、テキストではない場合は、一工夫する必要がありそうです。私の場合は、Rejectされた理由のiTunes Connectページに返信でファイル添付が出来るようになっていたので、あふれたデータはそこにファイルで添付しました。

iCloud

これは盲点でした。自分でヘルプに「システムでiCloudを有効にしている場合は、全デバイスでデータを共有出来ます。」と書いておきながら、自分でこの条件のテストをしていませんでした^^;

システムのiCloudが有効になっているかどうかをどうやって確認するか少し悩んだのですが、シミュレーターで散々はまったので、次の戻り値がnilかどうかで判断すればいいことに気付きました。

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]

そして、バグ修正ができたのでAppleに申請しようとしたら、このOSで作られたバイナリは受け付けていないとかいうValidationエラーが(涙)

リリースと同時に全部のMacを10.7.3にしてしまったのが災いしました。

おまけに、コードサインエラーがでていたのでProvisioning関連を見直していたら、iCloudをEnableにしたDistribution用のProvisioningがインストールできない状態になって、アプリを申請できない状態になってしまいました。”Unexpected error”ってとってもやばそうです…。

はぁ…。

もともとiCloudの確認のためにMac Developer Programを購入したので、iCloud対応してみたのですが、iCloudでこんなに苦労をするならMac Developer Programを買うより、iPod touchでも買ってiCloudの確認をした方が良かったような気がします。実際iCloudは遅くて使い物になりませんしね。テストしてみた感じでは、1日たってデータが同期されていたらOKくらいの気持ちでいないと、いつデータが同期されるのかイライラして待っていることになってストレスが溜まります。デバッグ状態で確認していると、頻繁にデータダウンロードエラーを起こして、何回も何回もリトライしています。こんな状態だとシビアなデータはコンフリクトしまくりで、使い物にならないでしょう。現状のiCloudは、夜中にバックアップを取るとか、どうでもいいことに使うのが一番です。バックアップ自体はどうでも良くはないですが、1日取れていなかっても次の日に取れればいいし、どうしてもiCloudで取れないとなったら、Macに繋げてMacにバックアップを取るという回避策もありますしね。

ところで、全く同じように作ったiCloud対応のiPadアプリはサクッと審査を通ってしまいました。不思議に思って自分の実機で確認してみたところ、Macとは違って、システムのiCloudをオフにしてもアプリは落ちずに動作します。どうやら、iOSのほうはアプリでシステムのiCloud有効確認しなくてもOSレベルかライブラリレベルかわかりませんが、勝手に上手くやってくれているみたいです。OS X ってやっぱりやっつけ仕事的な感じですね。