メモ2ブログ

メモtoウェブログ。旧ブログはこちら。 http://sakebook.blogspot.jp/

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で検索するとちらほら使われていて嬉しいです。

github.com

まとめ

credentials.jsonの有無を確認したい時はユーザルートとflutterをインストールしてあるディレクトリを確認する

専用のコマンドはないのでワークアラウンド的な方法で取得する

参考

Publishing packages | Dart

Troubleshooting pub | Dart