3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Fastlane pemでpush通知の証明書の更新

Last updated at Posted at 2019-12-06

Fastlaneでpush通知の証明書(Apple Push Notification Service)作成

iosアプリを作成している人であればおなじみの、push通知のための証明書、通称「pemファイル」。

こいつの期限が1年なので毎年更新しなくちゃいけないんですよね。

でも前にやったのは結構前だから、やり方調べるところから、、、と、やっていて気づいたら半日終わってた。

なんてことにならないようにfastlaneを使ってコマンド一つでベシっと作成できるようにしましょう。

fastlaneのインストール

すでにインストール済みの人は飛ばしてください。

// xcodeコマンドのインストール
$ xcode-select --install

// gemでのインストールだけど、fastlane pemを使う上でrubyの知識は不要
$ sudo gem install fastlane --verbose

// 証明書を作るだけなら不必要 →飛ばしてOK
$ cd <プロジェクトのディレクトリ>
$ fastlane init

一発で作りたい

対話的に作成したい人は、作成したい場所で下記コマンドでできますが、私は対話形式は面倒なので一撃で作成します。

// 対話形式でやる場合
$ fastlane pem
[23:12:13]: Your Apple ID Username: <ログインID(メールアドレス)>
...
<色々効かれるので答えていく>

// 一撃で作る場合
$ fastlane pem -u "ログインID(メールアドレス)" -a <Bundle ID> -e <ファイルの出力先ディレクトリ> -f -o <出力ファイル名> 
> password:<パスワード>

// ヘルプの表示
$ fastlane pem -h

これで証明書の作成ができました!!

※ちなみに初めてやる時に2ファクタ認証が走ります。この時に1台目の端末がない場合には、6桁のコードの代わりに「sms」と入力して、登録している別の電話番号を選択して、再度6桁のコードを別端末に送ってもらいましょう。

注意点

ただ、このFastlaneを使ってできることは、新規で証明書を作成するということだけで、Apple Developper側にある既存の証明書を削除するということはできないよう。
しかも、Apple Developper側では最大2つまでしかpush通知用の証明書を作成することができないので、完全に自動的に更新をするのは今のところ難しそう、、、

App Store Connect APIのページを確認しても削除をするといったAPIは今の所(2019/12/06)見つけられていませんが、もしかしたら今後削除本当の意味での更新ができるようになるかもしれませんね。

App Store Connect API:https://developer.apple.com/documentation/appstoreconnectapi

最後に

Fastlaneについての情報がネットにあんまり転がっていなくて、試行錯誤しながら頑張って調べていますが、まだまだ理解が足りない部分が多々あるので、間違っている箇所等があれば指摘いただけると助かります。

次はビルドの提出の自動化を頑張るぞー!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?