広告

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

Swift

当サイトではアフィリエイト広告を利用しています。

広告

はじめに

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

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

使用するバージョン
  • macOS Monterey (M1)
  • Xcode 13
  • Swift 5
  • SwiftUI
広告

【紹介】個人開発

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

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

準備

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

【SwiftUI】Mac向けアプリを作ろう
SwiftUIを使って、Mac向けのネイティブアプリを作成する手順をまとめました。

野良アプリの確認

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

【SwiftUI】野良アプリの配布【Macアプリ】
SwiftUIで作成したアプリを、野良アプリとして他のユーザへ配布するやり方をまとめました。

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

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

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

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

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

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

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

Apparency — An app for inspecting macOS apps

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

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

広告

公証

準備

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

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

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

Apple Developer Program – Apple Developer
Apple Developer Programに加入すれば、iPhone、iPad、Mac、Apple TV、Apple Vision Pro、Apple Watch用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について解説している記事がありますのでご覧ください。

MacOSSwiftプログラミング
広告

個人開発

千草 @chigusaweb

現役のITエンジニア。 気ままにコードを書いたり技術情報を発信しています。 Webアプリ/Windows・Macアプリ/モバイルアプリなど。 (Java, PHP, Javascript, Swift, Python, C#, 他) 個人開発:Clibor, Quipha, TXT-Crypter, 符計算特訓, チグサツール Kindle本: Laravel9 実践入門, 他

クリップボード履歴

Clibor

Windows

Cliborはシンプルで高機能なクリップボード履歴ソフトです。
また普段よく使うワードを定型文として登録し、いつでもクリップボードに保存することができます。高度なテキスト整形・FIFOモード・ホットキーに対応。

クリップボード履歴

Windows版Cliborの利便性を、そのままMacでも。
定型文登録、高度なテキスト整形、FIFOモードなど、便利なクリップボード履歴機能を利用できます。macOS最新のTahoeにも対応。

テキスト暗号化

テキストを暗号化してURLで共有・保存できる無料サービスです。
パスフレーズを知る人だけが復号できます。登録不要、データはサーバーに保存されません。
Notionでも利用できます。

学習

Quipha

Web / iOS

自分だけの問題集や問題を作成し、クイズを行い、学習に活用することができるアプリです。
例えば、学校の授業、語学学習、IT資格やその他の資格など多彩な分野での学習を支援します。
いつでも、どこでも、あなたの学習をサポート。

ツール

日常の「ちょっとした効率化」をサポートするWeb便利ツール集。
テキスト・データ処理から最新のAI連携まで、日々のちょっとした手間でググりがちなユーティリティを1つの場所に集約。

麻雀

麻雀の符計算をひたすら特訓しマスターしましょう。
初心者の方はもちろん、もっと速く計算したい方にも役立ちます。
5万対局以上の実践から問題を収録。

コメント

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