はじめに
今回は、Macアプリに対して公証を行う手順をまとめました。
App Store以外の配布の場合、公証を済ませていないアプリはGatekeeperにより起動がブロックされてしまいます。
とりあえず配布して使ってもらいたい場合は野良アプリでも良いと思いますが、正式版としてアプリを配布する場合は公証を行った方が良いでしょう。
【紹介】個人開発
Mac向けの、定型文の挿入も可能なクリップボード履歴管理アプリです。
Windows版は以前からありましたが、基本的な使い方はMac版も同じですので、もしよかったらダウンロードしてみてください。
準備
サンプルアプリを作成するためには、以下を参考にプロジェクトを作成してください。
野良アプリの確認
公証を行う前に、野良アプリについて確認しましょう。
公証を済ませていない、いわゆる野良アプリについては、以下の記事を参考にしてください。
公証が済んでいないアプリを起動すると、以下のようにブロックされてしまいます。
“SampleApp.app”が悪質なソフトウェアかどうかをAppleでは確認できないため、このソフトウェアは開けません。
このソフトウェアはアップデートが必要です。
詳しくは開発元にお問い合わせください。
ちなみに起動することはできます。
アプリケーションアイコンをControlキーを押しながらクリックし、ショートカットメニューから「開く」を選択します。
今度は開くボタンが表示されますので、起動できます。
アプリの対応状況については、Apparencyというアプリで確認することができます。
野良アプリを確認してみましょう。
GatekeeperがRejectedになっています。
また、Appに署名もされておらず、「Ad-hoc signature」となっています。
この状況では、アプリ起動時にGatekeeperによりブロックされます。
公証
準備
さっそく公証を受けてみます。
やり方が変わっているようで、調べてみるとコマンドを実行したり、色々と作業が必要な記事が多いですが、現時点で試してみると割と簡単にできました。
前提条件として、Apple Developer Programに登録する必要があります。
ちなみにXcodeを使用して公証を行いますが、Apple Developerへサインインして何か設定する必要はありません。
全てXcodeが自動で設定してくれます。
Xcodeで、xcodeprojファイルを開きます。
TARGETSのSampleAppを選択し、「Signing & Capabilities」を開きます。
Teamに、Apple Developer Programのアカウントを指定します。
Sandboxについて
Sandboxについては、公証を受けるにあたり必須ではないようです。(App Storeで配布する際は必須)
Macアプリを作成すると、デフォルトでSandboxが有効になっておりますので、特別な理由がなければそのまま有効にしておくと良いと思います。
有効の場合、「Signing & Capabilities」に以下のように表示されています。
Hardened Runtimeを有効化
公証を受けるにあたり、Hardened Runtimeを有効にする必要があります。
デフォルトでは無効になっており、公証時に以下のエラーが表示されてしまいます。
Hardened Runtime is not enabled.
“SampleApp.app” must be rebuilt with support for the Hardened Runtime.
Enable the Hardened Runtime capability in the project editor, test your app, rebuild your archive, and upload again.
「Signing & Capabilities」を開き、プラスボタンをクリックします。
Hardened Runtimeをダブルクリックします。
プロジェクトに追加されました。
Archive
Xcodeのメニューバーの「Product -> Archive」を選択します。
アーカイブが完了すると、Archivesという画面が表示され、アプリの一覧が表示されます。
「Distribute App」ボタンをクリックします。
「Developer ID」を選択し、Nextボタンをクリックします。
「Upload」を選択し、Nextボタンをクリックします。
「Automatically manage signing」を選択し、Nextボタンをクリックします。
確認画面が表示されますので、Uploadボタンをクリックします。
アップロードが行われます。
アップロードが完了しました。公証が済むまで時間がかかります。
公証の状況は、ログで確認することができます。
実際に公証は数分程度で完了します。(メールが届きます)
「Export Notarized App」ボタンが有効になりますので、クリックします。
任意の場所にappファイルを保存します。
appファイルを配布するには、zip形式に圧縮しましょう。
起動確認
作成したzipファイルを試しに配布し、Mac上で起動確認を行います。
zipファイルをサーバにアップロードし、ダウンロードして解凍します。
野良アプリの場合はブロックされましたが、今回は以下のポップアップが表示され無事に起動することができました。
“SampleApp”はインターネットからダウンロードされたアプリケーションです。開いてもよろしいですか?
Appleによるチェックで悪質なソフトウェアは検出されませんでした。
Apparencyで確認してみましょう。
Gatekeeperも含め全てOKになっています。
さいごに
今回は、Macアプリに対して公証を行う手順をまとめました。
アプリを配布する際に参考にしてみてください。
他にも私のブログで、Swiftについて解説している記事がありますのでご覧ください。
コメント