くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Flutter x iOSでリリース&AppleID認証のための証明書を用意する

FlutterをiOSでリリースする場合とかに署名用の証明書が必要。 いつも調べてるので、まとめてみたときの備忘録(´ω`)

開発/リリース向け

開発やリリースのために、証明書などがいろいろ必要
Apple Developerコンソールでポチポチする感じ

証明書署名リクエストの作成

作成する証明書に付与するアカウント情報

  • キーチェーンを起動
  • メニューの「キーチェーンアクセス」>「証明書アシスタント」>「認証局に証明書を要求」を選択
  • 「証明書アシスタント」ダイアログで、「ユーザのメールアドレス」フィールドにEメールアドレスを入力
  • 「通称」フィールドのわかりやすい名前を入力
  • 「CAのメールアドレス」フィールドは空白のまま
  • 「ディスクに保存」を選択し、「続ける」をクリック
  • CertificateSigningRequest.certSigningRequestが保存される

これを使って、各種証明書(Certificates)を作成するっぽい

Certificates(証明書)の作成

Certificate(証明書)は主に2種類

  • Development: 開発用。Apple Developmentなど
  • Distribution: 配信用。Apple Distributionなど

権限の範囲によっていろいろあるけど、
とりあえず、Apple Developmentを作成する

詳しい証明書の種類やドキュメントはこのあたり

Identifier(識別子/アプリID)の作成

アプリのIDをあらかじめ登録しておく必要がある。
このIdentifierに対して、Sisn In with ApplePush Notificationsなどの
利用する機能/サービスを設定する感じっぽい。

Descriptionが、AppleIDの管理画面で表示される

登録は以下から

ドキュメントはこのあたり

バイスの登録

開発用の端末の登録が必要なので登録しておく

ドキュメントはこのあたり

Provisioning Profileの作成

プロビジョニングプロファイルは、今まで作成した、
Certificates / Identifier / Devicesをまとめたやつ

開発用と配信用のものが用意されている

とりあえず、AdHocで作っておく

利用する証明書等を選んでいくと、.mobileprovisionをダウンロードできる

設定が完了すると、Xcodeの「Signing & Capabilities(署名と機能)」タブで利用できるようになる

AppleID認証向け

Google認証などがあると、AppleID認証もつけないといけない
公式ドキュメントだとこのあたり

Service IDの作成

FirebaseでSign in With Appleを利用する場合、サービスIDが必要になる。
iOSの場合は不要。AndroidやWebでは必要

  • Service IDの登録
    • IdentifierでService IDsを選択
    • アプリIDと重複できないため、<project-id>.firebaseapp.comとかにしておく
    • DescriptionはiOS以外のAndroid/Webで表示される
  • Service IDの設定
    • 登録したServiceIDを選択して開く
    • Sign In With Appleにチェックを入れて、Configureを押下
    • Primary App IDを対象のAppIDに設定
    • Domains and Subtomainsを設定(カンマ区切り)
      • <project-id>.firebaseapp.com
      • <project-id>.web.app
    • Return URLsを設定
      • https://<project-id>.firebaseapp.com/__/auth/handler
  • 秘密鍵の作成
    • Keysから秘密鍵を作成する
    • 利用するサービスを選択(後でEditできる)
    • AuthKey_<KEYID>.p8をダウンロード&保存
  • Firebase側にService IDを設定
    • AuthenticationでAppleを有効化
    • チームID/KeyID/秘密鍵を設定
    • 秘密鍵cat AuthKey_<KEYID>.p8 | pbcopyを貼り付ければOK
  • Xcode側の設定

以上!! ポチポチめんどくさいけど、これでできるようになったぞ(*´ω`*)

参考にしたサイトさま