最近、Macアプリをリリースして「Mac App Store」と「App Store」に違いが見られたのでまとめてみました。
TestFlightが使えない
今回一番困ったのはこれです。そこでMacアプリのテストにはHockeyAppというサービスを使いました。アプリを登録してHockeySDK.frameworkを組み込んでDeveloper IDでサインしたバイナリをアップロードするという手順で使えました。クラッシュログも見れますし、dSYMをアップロードしておけばsymbolicateもやってくれます。
AppAnalyticsが使えない(*)
iOSアプリは自動的にアプリストアのページビューやセッション数、アクティブ端末数などがiTunes Connectで見られるようになっていますが、Macアプリにはそのようなデータはまったく提供されません。
(*)2019年1月更新:MacアプリもAppAnalyticsが一部使えるようになりました。
Phased Releaseができない(*)
iOSアプリは段階的リリースを使用して7日間にわたってアップデートをリリースすることができますが、Macアプリはこの機能に対応しておらず、利用できません。
(*)2019年3月更新:Macアプリも段階リリースに対応しました!
ユーザーレビュー
Mac版StoreKitではSKStoreReviewControllerが利用できず、アプリ内でレビューダイアログを表示することはできません。ただMac App StoreでもApp Store同様、ユーザーレビューに返信することができ、またiTunes Connectですべてのレビューを閲覧することもできます。アプリのアップデートを配信する際に、ユーザー評価をリセットしない選択も可能です。
IAP Promotionが使えない
iOS 11から使えるようになったアプリ内課金アイテムをプロモーションするIAP Promotionは、Macアプリでは利用できません。
スクリーンショットは5枚まで
2018年2月からiOSアプリでは10枚のスクリーンショットをiTunes Connectに登録できるようになりましたが、Macアプリは相変わらず5枚までです。
ストア構造が以前のまま(*)
iOS 11からApp Storeの構造が大きく変わり、Todayタブが追加されたりゲームとアプリが別のタブに表示されるようになりましたが、Mac App Storeの構造は2010年の登場時からほとんど変わっていません。
(*)2018年9月更新:Mac App StoreがMojaveで大幅に変わりました。
対応ライブラリが少ない
ストア関連ではありませんが、MacアプリではiOSで使えるライブラリが対応していない場合が多いです。Google AnalyticsやFirebase、Twitter SDKやFacebook SDKなどはMacアプリでは使えません。代わりに直接APIを叩く必要があります。
このようにApp Storeとは大きく異なるMac App Storeですが、良くなっている部分もあります。
アプリの予約販売はできる
MacアプリはiOSアプリと同様に予約販売することが可能です。
プロモコードが使える
最近ではあまり使うこともありませんが、アプリを無料でダウンロードできるプロモコードが利用できます。またIAPのプロモコードも利用可能です。
サブスクリプションが使える
IAPの種類もiOSアプリと同じで、Auto-RenewableやNon-Renewingのサブスクリプションも利用できます。
Crashes Organizerが使える
Xcode付属のCrashes OrganizerはMacアプリでも使えます。
その他、気がついたことがあれば随時更新していきます。