Bluetoothを使ったチャットアプリ(Mac版)のストアリリースを行いました。
ハマった点が技術記事から見つからず苦戦したため、その内容を共有したいと思います。
主にビルドを提出する段階や、審査で抜けやすいポイントなどを纏めています。
アプリの宣伝込みなため、ご了承くださいm(_ _)m
リリースしたアプリの概要
開発環境
Mac OS 10.13
Xcode 8.3.3
iOS 11 (本アプリのiOS版をデバッグで使用)
Swift 3.2
アプリの機能
CoreBluetoothのGATTプロトコルを使ってユーザが標準入力したテキストを加工し、メッセージとして送受信する機能を持ったチャットアプリ。相手がアプリ起動中しか送信できない。バックグラウンド可。
特徴
Wi-Fiなどのネットワーク接続を使用しない。
相手を登録しなくてもアプリを起動していれば送信できる。
iOS端末とMacOS端末間で通信が可能。
ターゲット層
災害時に使用したいなど。
ハマった内容
ビルド後、出力したストア向けのパッケージがフリーズする。
> 理由 : productbuildを実行していなかったため。
>> https://stackoverflow.com/questions/8038788/mac-app-store-productbuild
> iOS開発のノリでやるとはじめに躓きます。
※2021/3/12現在ではビルドアーカイブを作成した後、以下の選択でストアに申請が可能になりました。
情報が古かったので更新しました。
CoreBluetoothの機能が開発では動いていたが、ストア向けにビルドすると機能しなくなった。
理由 : 指定するsandboxの値の中にcom.apple.security.device.bluetoothが漏れていたため。アプリで使用する機能はsandboxでの指定が必須となります。僕の場合はストアに申請する際にcodesignを行うためのシェルを作り、パッケージに反映して申請しました。
参考 : https://github.com/nanoporetech/lamprey/blob/master/tools/mac/sign-app
ストアリリース用のビルドシェルを用意することをオススメします。
背景色を開発側が決め打ちで指定していたためリジェクトを受けた。
ユーザが自由に色を選べるようにしないといけないらしい。
https://developer.apple.com/macos/human-interface-guidelines/visual-design/color/
この辺りはよくガイドラインを読んで理解した上で申請しないといけなかったです。
ストア申請でテスト手順を示さなかったため、「画面がblankだよー」と突き返される。
Youtubeなどで説明動画を用意して提示すると良いです。
クラッシュするよ、と突き返される。
クラッシュレポートを解析するための手順備忘録以下参照。
https://qiita.com/yu_okb/items/82b41f08882d578c2f25
資料がネット上に不足していたため、StackOverFlowをメインに調べながら作業を進めた。
言語知識と英語をもっと勉強しよう...
補足
MacAppStoreへの審査においてはiOSアプリ同様ガイドラインが用意されており、一通り読解しておいた方がいいと思います。Appleが各国の文化をガイドラインに反映していたり、Apple独自の決まりがあったりするので、それに合わせたデザインをコーディングする必要があります。
リジェクトを受けた際は、どこがダメだったのかをアピールコメントで聞いてみると良いかと思います。