自分だけのクイズ作成 - Quipha公開中

【Xcode】アプリの公証【Macアプリ】

Swift
スポンサーリンク

はじめに

今回は、Macアプリに対して公証を行う手順をまとめました。

App Store以外の配布の場合、公証を済ませていないアプリはGatekeeperにより起動がブロックされてしまいます。
とりあえず配布して使ってもらいたい場合は野良アプリでも良いと思いますが、正式版としてアプリを配布する場合は公証を行った方が良いでしょう。

使用するバージョン
  • macOS Monterey (M1)
  • Xcode 13
  • Swift 5
  • SwiftUI
スポンサーリンク

【紹介】個人開発

Mac向けの、定型文の挿入も可能なクリップボード履歴管理アプリです。
Windows版は以前からありましたが、基本的な使い方はMac版も同じですので、もしよかったらダウンロードしてみてください。

  • Xcode
  • Swift 5
  • SwiftUI
  • Realm Database
  • Appleによる公証済み

準備

サンプルアプリを作成するためには、以下を参考にプロジェクトを作成してください。

野良アプリの確認

公証を行う前に、野良アプリについて確認しましょう。
公証を済ませていない、いわゆる野良アプリについては、以下の記事を参考にしてください。

公証が済んでいないアプリを起動すると、以下のようにブロックされてしまいます。

“SampleApp.app”が悪質なソフトウェアかどうかをAppleでは確認できないため、このソフトウェアは開けません。

このソフトウェアはアップデートが必要です。
詳しくは開発元にお問い合わせください。

ちなみに起動することはできます。
アプリケーションアイコンをControlキーを押しながらクリックし、ショートカットメニューから「開く」を選択します。

今度は開くボタンが表示されますので、起動できます。

アプリケーションはセキュリティ設定の例外として保存され、以降は普通に起動することができます。

アプリの対応状況については、Apparencyというアプリで確認することができます。

Mothers Ruin Software | Apparency

野良アプリを確認してみましょう。

GatekeeperがRejectedになっています。
また、Appに署名もされておらず、「Ad-hoc signature」となっています。
この状況では、アプリ起動時にGatekeeperによりブロックされます。

スポンサーリンク

公証

準備

さっそく公証を受けてみます。

やり方が変わっているようで、調べてみるとコマンドを実行したり、色々と作業が必要な記事が多いですが、現時点で試してみると割と簡単にできました

前提条件として、Apple Developer Programに登録する必要があります。

Apple Developer Program - Apple Developer
Apple Developer Programに加入すれば、iPhone、iPad、Mac、Apple Watch、Apple TVの各App Storeで、世界中のユーザーとつながることができます。

私は先日登録しましたが、Apple Developer Programは年額12,980円でした。
安くはありませんが、公証を受けるには仕方がありません・・

ちなみにXcodeを使用して公証を行いますが、Apple Developerへサインインして何か設定する必要はありません。
全てXcodeが自動で設定してくれます。

Xcodeで、xcodeprojファイルを開きます。
TARGETSのSampleAppを選択し、「Signing & Capabilities」を開きます。

Teamに「Add Account」ボタンが表示されている場合は、Apple Developer Programを取得したApple IDでサインインします。

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」を選択します。

Archiveが完了するまで時間がかかります。

アーカイブが完了すると、Archivesという画面が表示され、アプリの一覧が表示されます。

「Distribute App」ボタンをクリックします。
「Developer ID」を選択し、Nextボタンをクリックします。

「Upload」を選択し、Nextボタンをクリックします。

「Automatically manage signing」を選択し、Nextボタンをクリックします。

自動的に証明書が作成されます。別途Apple Developerにサインインして確認してみましょう。

確認画面が表示されますので、Uploadボタンをクリックします。

アップロードが行われます。

アップロードが完了しました。公証が済むまで時間がかかります。

公証の状況は、ログで確認することができます。

実際に公証は数分程度で完了します。(メールが届きます)
「Export Notarized App」ボタンが有効になりますので、クリックします。

任意の場所にappファイルを保存します。

appファイルを配布するには、zip形式に圧縮しましょう。

このzipファイルを配布すればOKです。

起動確認

作成したzipファイルを試しに配布し、Mac上で起動確認を行います。
zipファイルをサーバにアップロードし、ダウンロードして解凍します。

野良アプリの場合はブロックされましたが、今回は以下のポップアップが表示され無事に起動することができました。

“SampleApp”はインターネットからダウンロードされたアプリケーションです。開いてもよろしいですか?

Appleによるチェックで悪質なソフトウェアは検出されませんでした。

Apparencyで確認してみましょう。
Gatekeeperも含め全てOKになっています。

さいごに

今回は、Macアプリに対して公証を行う手順をまとめました。
アプリを配布する際に参考にしてみてください。

他にも私のブログで、Swiftについて解説している記事がありますのでご覧ください。

\オススメ/

コメント

タイトルとURLをコピーしました