2_gatekeeperopening

コード書いとる?

今年はいろんなイベントに出てパズモナの宣伝するぞー!! そうだ、イベント限定PC版とか作って頒布しよー!! そもそもmacOSやWindowsでも動くように作ってあるかんねー!! アプリをビルドしてzipに固めてアップロードして、それを別のPCでダウンロードして...ぎゃあああ..!!!!

ってなったので、その対策をメモ。

GateKeeperは、macOS上でアプリを安全に実行するための仕組みです。 ⇒公式による解説

インターネットからダウンロードしてきた野良アプリを開こうとして警告が出るアレです。 

ただこれ救済策が用意されていて「アプリアイコンを右クリック→開く」でアプリは開けます。自己責任でってやつですね。GateKeeperはmacOSを脅威から守ってくれる賢い番犬ですので、くれぐれも設定でオフったりしないように...

ここで問題となったのが、アプリのセーブデータを保存する場所です。パズモナmacOS版では アプリのコンテンツ内 としていたのですが... GateKeeperが発動していると、アプリはサンドボックス環境で実行されます。 この環境がファイル書き出し禁止になっていて、セーブデータを書き出せない状況になりました。これは困った。

で、これをどう解決するかというと、macOSが用意してくれているデータを書き出す場所を使えばよろしい。

~/Library/Applucation Support/[アプリのバンドル名]

こんな感じの場所です。

これをどうやって取得するかというと... Objective-Cで書く訳ですね...

これでオッケィ。無事所定の場所にデータを書き出せるようになりました!!

さてこのGateKeeper、今後は野良アプリを開けなくする可能性があるそうな。 ⇒解説記事

というわけで、アプリへの署名と公証を得る手順も調べてみました。macOSのDeveloper登録は無料枠でもいいらしいです。 ⇒公式資料


まずはアプリへの署名手順
  1. Xcodeのアカウント設定にて証明書を取得する
    step1

    step2
  2. プロジェクト設定でSigningを有効にする(Autoで良い)
    step3
  3.  ビルド設定でHardened Runtimeを有効にする
    step4
  4. ビルドが通れば署名成功

続いて、公証を得る手順 ⇒公式資料
  1. Product→Archive
    スクリーンショット 2019-01-24 17.25.12
  2. オーガナイザを開くとArchiveされたアプリが登録されている
    スクリーンショット 2019-01-24 17.25.58のコピー
  3. Distribute Appボタンから進む
    スクリーンショット 2019-01-24 17.25.58のコピー2

  4. Developer IDを選んで次へ
    スクリーンショット 2019-01-24 17.26.49
  5. Uploadを選んで次へ
    スクリーンショット 2019-01-24 17.27.12
  6. Automacically manage signingを選んでUploadボタンから進む
    スクリーンショット 2019-01-24 18.00.44
  7. アップロードに成功すると、しばらくして通知が飛んでくる
  8. Export Notarized App ボタンを押すと、公証済みのアプリが出力される
    スクリーンショット 2019-01-24 17.25.58
以上!! 割とあっさり。これでアプリの配布が捗りますね。ただ...ここまでの手順は記憶を頼りにまとめたので、うまくいかない場合には公式の資料を参照してください。


ではまた次回。