pub.dev用にcredentials.jsonを再取得する
pub.devにpackageを上げる際にはpub.devの認可が必要です。まだであればpublishする際にブラウザが立ち上がり、ローカルにcredentials.jsonが保持されます。
CIなどに組み込みたい場合、このcredentials.jsonを環境変数に渡します。そして、有効期限が切れた際は再び必要になります。
今回は再び必要になった時に再取得する方法の紹介です。
確認したバージョンは次の通りです。
- flutter: v1.20.0
- pub: v2.9
credentials.jsonのpath
$ pub
として実行した時はユーザルート配下の.pub-cacheディレクトリに生成されます。DartにBundleされてるのでDartのインストール状況によっては異なるかもしれません。
$ cat ~/.pub-cache/credentials.json
$ flutter pub
として実行した時はflutterリポジトリのルート配下の.pub-cacheディレクトリに生成されます。公開しようとしているパッケージの方ではなく、ローカルマシンにインストールしてあるflutterの方です。
$ cat <YOUR FLUTTER PATH>/.pub-cache/credentials.json
専用のコマンドは無い
現状専用のコマンドはありませんでした。
なので再びpublishのフローを行うことで生成します。
この時、すでに公開済みのバージョンにしてpublishすることで、credentials.jsonを生成しつつ公開作業に失敗させることができます。
pub.devのpackageの命名規則は pub.dev/packages/<your_package>/versions/<version>
となってます。
—dry-runオプションも存在はしてるのですが、あくまでpubspec.yamlのフォーマットの確認など、ローカルで完結するものしか確認できないのでcredentials.jsonの再生成用途には使えません。
GitHub Actionsのワークフローからpublishする
自作のActionですが、こちらが使えます。GitHubで検索するとちらほら使われていて嬉しいです。
まとめ
credentials.jsonの有無を確認したい時はユーザルートとflutterをインストールしてあるディレクトリを確認する
専用のコマンドはないのでワークアラウンド的な方法で取得する