Delphi Community Edition Meet up ! - macOS デプロイ編

これは、2018年8月3日に行なった Delphi Community Edition Meet up ! で行なった macOS へのデプロイデモの記事です

Delphi Community Edition では、Windows 64bit・macOS・iOS・Android のネイティブアプリケーションの開発を行うことができます
この記事では macOS へのデプロイに必要な準備や、実際の手順などについて解説します

## デモで行なったこと
[Delphi Community Edition 上で作成した Windows アプリケーション](https://qiita.com/CYonezawa/items/e20c3018c6eb6e1200a0)を、ターゲットを macOS 側に切り替えて macOS 上にデプロイして実行した

Windows 32bit アプリケーションだと
![macOS11.png](https://qiita-image-store.s3.amazonaws.com/0/164551/3fe8991e-ce2c-4d10-66c4-de6e5cbf924b.png)

で、データを読み込むとこうなる
![macOS12.png](https://qiita-image-store.s3.amazonaws.com/0/164551/4b39d781-b13d-5a8d-62cd-ef09a6696f41.png)

プロジェクトマネージャ上で、目的のターゲットにダブルクリックで切り替えて実行すると
![macOS13_1.png](https://qiita-image-store.s3.amazonaws.com/0/164551/b3ea7d6a-b219-3c8f-f1dd-53cee7d667cd.png)

macOS 上に PAServer 経由でデプロイされて
![macosx02.png](https://qiita-image-store.s3.amazonaws.com/0/164551/de11516c-6b63-f292-82a0-c957dafacd06.png)

Windows と同じように実行できるのだ
![macosx03.png](https://qiita-image-store.s3.amazonaws.com/0/164551/bb4422e5-0f76-8175-b98c-534d104e68f8.png)

## docwiki は、ここらあたりを見てくださいね

- [FireMonkey プラットフォームに必要な準備](http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/FireMonkey_%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E6%BA%96%E5%82%99)
- [OS X アプリケーション開発](http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/OS_X_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA)
- [Mac での Xcode コマンド ライン ツールのインストール](http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Mac_%E3%81%A7%E3%81%AE_Xcode_%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89_%E3%83%A9%E3%82%A4%E3%83%B3_%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
- [Mac でのプラットフォーム アシスタントのインストール](http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Mac_%E3%81%A7%E3%81%AE%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0_%E3%82%A2%E3%82%B7%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%88%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)

## macOS にデプロイするために必要な材料
- Mac マシン macOS 10.10(Yosemite) 以上
- Xcode
- Command Line Tools
- PAServer

### Mac マシン
持っていない方は、頑張って買ってくださいw
macOS のバージョンは 10.10(Yosemite) 以上ですので、中古のものでも OS の用件が満たされていれば大丈夫です

### Xcode
Xcode とは何ぞやを知りたい方は[こちら](https://developer.apple.com/jp/xcode/)を
[ダウンロードはここから](https://developer.apple.com/download/)できます
この記事を書いている現在(2018年8月)の Xcode の最新バージョンは 9.4.1 です
ダウンロードには、[Apple Developer](https://developer.apple.com/jp/programs/) の登録が必要です
Mac への Xcode のインストールは Qiita 上の記事など、あちらこちらにありますので、ここでは特にふれません

### Command Line Tools
最近のバージョンでは Xcode をインストールすると Command Line Tools もインストールされるようになりました
念のため確認されたい方は、[Mac での Xcode コマンド ライン ツールのインストール](http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Mac_%E3%81%A7%E3%81%AE_Xcode_%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89_%E3%83%A9%E3%82%A4%E3%83%B3_%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)の要領で確認してくださいませ

### PAServer
Delphi から macOS 側にアプリケーションをデプロイして実行する際に経由するサーバー
本名はプラットアシスタントサーバー(Platform Assistant Server)といいます
<インストールフォルダ>\PAServer\PAServer19.0.pkg ファイルを Mac PC 上で実行してインストールします
インストール手順は、[Mac でのプラットフォーム アシスタントのインストール](http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Mac_%E3%81%A7%E3%81%AE%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0_%E3%82%A2%E3%82%B7%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%88%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB) 参照してくださいませ

## Mac PC と Delphi をつなげる
- 材料はそろいましたか？
- Xcode は Mac PC にインストールしましたか？
- PAServer は Mac PC にインストールしましたか？
- Mac PC と Delphi がインストールされている PC はネットワークに接続していますか？（互いに参照できますか？）

準備ができているのであれば、Mac PC と Delphi をつなげますよッ！

### Mac PC 側の準備 
1. PAServer を起動します - アプリケーションフォルダ内にある PAServer-19.0 をダブルクリックして起動します
2. ターミナルの形で PAServer が起動します
3. 「接続プロファイル パスワード <パスワードがない場合はたた Enter キーを押す>: というメッセージがでますので、通常は Enter キーを押します
4. 「Developer Tool Access が別のプロセスを制御しようとしています」のダイアログが表示されたら Mac PC のユーザーのパスワードを入力して許可を行ないます
5. 「Platform Assistant Server をポート 64211 で起動します」が表示され、プロンプト入力になります
6. IP アドレスを確認します。i と入力して Enter キーを押します
7. 表示された IP アドレスは Delphi 側の設定で利用します
8. PAServer は、Delphi 側と通信するため、このままにしておきます

PAServer のターミナルの画面（一部情報は消しています）
![macosx01.png](https://qiita-image-store.s3.amazonaws.com/0/164551/9a9bc494-9116-0141-2c6f-1063d5567a10.png)

### Delphi 側の準備
1. Delphi のメニューから「ツール｜オプション」を選択します
![macOS01.png](https://qiita-image-store.s3.amazonaws.com/0/164551/47432188-01dc-415a-ea2c-bd3a451f4309.png)

2. 環境オプション内の「接続プロファイルマネージャ」を選択します
3. 「追加」ボタンをクリックします
![macOS02.png](https://qiita-image-store.s3.amazonaws.com/0/164551/fbb4a3e3-3d90-405c-bd24-a4a290df4368.png)

4. 「接続プロファイルの作成」が表示されます
5. プロファイル名の箇所は任意の名前を入力します（ここでは分かりやすく Mac OS）プラットフォームは OSX を選択して「次へ」をクリックします![macOS03.png](https://qiita-image-store.s3.amazonaws.com/0/164551/a2d0b032-da3e-5b33-af3d-4949a0786c7e.png)

6. リモートマシンのところに PAServer 側で確認した IP アドレスを入力して、「接続テスト」をクリックします
![macOS04.png](https://qiita-image-store.s3.amazonaws.com/0/164551/0d8921e6-4df9-4fd6-ade7-111798446d8f.png)

7. 正しく PAServer と接続できたのであれば「終了」をクリックします
![macOS05.png](https://qiita-image-store.s3.amazonaws.com/0/164551/569249ff-4fb3-de0b-e597-bd632f22dbf5.png)

8. 少し下にある「SDK マネージャ」をクリックします
9. 「追加」ボタンをクリックします（Android は設定済みなので、このような画面になっています）
![macOS07.png](https://qiita-image-store.s3.amazonaws.com/0/164551/d8c53f06-dada-9724-2ebc-7cc0c23a0efe.png)

10. 「新規 SDK 追加」のダイアログが表示されます
11. プラットフォームの選択は OS X、接続するプロファイルの選択は、さっき設定した Mac OS、SDKバージョンの選択は、表示されたものの中から選んでください（この環境では 10.12 を選択）全て設定したら「OK」ボタンをクリックします![macOS08.png](https://qiita-image-store.s3.amazonaws.com/0/164551/fa22b9ad-bb45-e7ce-cca6-9623041fd29f.png)

12. Mac 側と通信が行なわれ、必要なファイルがインポートされます
![macOS09.png](https://qiita-image-store.s3.amazonaws.com/0/164551/450cf2c3-399a-46fb-56b0-e3ebc15d5341.png)

13. SDKが追加されたことを確認して「OK」ボタンを押します
![macOS10.png](https://qiita-image-store.s3.amazonaws.com/0/164551/623d4e21-87b2-826e-1cc8-bbccf77b41b9.png)

これで Delphi 側の準備完了です
Delphi のプロジェクトマネージャーでターゲットを切り替えて実行すると macOS のネイティブアプリケーションがビルドされて、PAServer で接続している Mac PC 側にデプロイされ、実行されます
macOS のアプリケーション開発も楽しんでくださいね♪