pubのトラブルシューティング
パッケージ公開時に「403」エラーが発生する
#pub publish
を実行すると、次のエラーが表示されます
HTTP error 403: Forbidden
...
You aren't an uploader for package '<foo>'
この問題は、アカウントのいずれかにパッケージを公開する権限が付与されているが、pubクライアントが別のアカウントで登録している場合に発生する可能性があります。
pubの認証プロセスは、pub認証情報ファイルを削除することでリセットできます
Linux
#$XDG_CONFIG_HOME
が定義されている場合
$ rm $XDG_CONFIG_HOME/dart/pub-credentials.json
それ以外の場合
$ rm $HOME/.config/dart/pub-credentials.json
macOS
#$ rm $HOME/Library/Application Support/dart/pub-credentials.json
Windows
#コマンドプロンプトを使用している場合
$ del "%APPDATA%\dart\pub-credentials.json"
PowerShellを使用している場合
$ Remove-Item -Path "%APPDATA%\dart\pub-credentials.json"
パッケージ公開時に「UnauthorizedAccess」エラーが発生する
#pub publish
を実行すると、次のエラーが表示されます
UnauthorizedAccess: Unauthorized user: <username> is not allowed to upload versions to package '<foo>'.
パッケージの新しいバージョンを公開する権限を持つユーザーリストに含まれていない場合、このメッセージが表示されます。 アップローダーを参照してください。
pub buildがHttpExceptionエラーで失敗する
#pub build
を実行すると、次のようなHttpExceptionエラーが表示されます
Pub build failed, [1] IsolateSpawnException: 'HttpException: Connection closed while receiving data,
...
library handler failed
...
これは、AVG 2013インターネットセキュリティスイートなど、一部のアンチウイルスソフトウェアが原因で発生する可能性があります。 セキュリティスイートのマニュアルで、この機能を一時的に無効にする方法を確認してください。 たとえば、AVGコンポーネントを無効にする方法を参照してください。
企業ファイアウォールの背後からpub getが失敗する
#コマンドラインから、pubはhttp_proxy
およびhttps_proxy
環境変数に従います。 プロキシサーバーの環境変数は次のように設定できます。
Linux/macOSの場合
$ export https_proxy=hostname:port
Windowsコマンドプロンプトの場合
$ set https_proxy=hostname:port
Windows PowerShellの場合
$ $Env:https_proxy="hostname:port"
プロキシが認証情報を必要とする場合は、次のように設定できます。
Linux/macOSの場合
$ export https_proxy=username:password@hostname:port
Windowsコマンドプロンプトの場合
$ set https_proxy=username:password@hostname:port
Windows PowerShellの場合
$ $Env:https_proxy="username:password@hostname:port"
サインイン後にlocalhostにアクセスできない
#コンテナ内またはSSHセッション経由でdart pub publish
を実行する場合、dart pub
がリッスンしているlocalhost
は、ブラウザからアクセスできるlocalhost
とは異なる場合があります。 ブラウザを使用してサインインできますが、ブラウザはhttp://localhost:<port>?code=...
にアクセスできないと訴えます。
コマンドラインを使用してサインインを完了するこの回避策を試してください
ターミナルウィンドウで、
dart pub publish
を実行します。表示されるブラウザウィンドウで、サインインします。
ブラウザは*新しいlocalhost URL*(http://localhost:<port>?code=...
)にリダイレクトされますが、URLにアクセスできないと訴えます。ブラウザから*新しいlocalhost URL*をコピーします。
dart pub publish
が呼び出されたのと同じコンテナまたは同じホストの別のターミナルウィンドウで、curl
コマンドを使用して*新しいlocalhost URL*を使用してサインインを完了します$ curl 'http://localhost:<port>?code=...'
パッケージの検索中にソケットエラーが発生する
#インターネットにアクセスできない場合、ISPがpub.dev
をブロックしている場合、またはセキュリティソフトウェアがdart
からのインターネットアクセスをブロックしている場合、次のエラーが発生する可能性があります。
Got socket error trying to find package ... at https://pub.dev.
pub get failed (server unavailable) -- attempting retry 1 in 1 second...
インターネット接続を確認し、dart
からのインターネットアクセスをブロックするファイアウォールやその他のセキュリティソフトウェアがないことを確認してください。
カスペルスキーインターネットセキュリティの詳細な手順
メニューバーから*カスペルスキーインターネットセキュリティ*保護をオフにしても、VPNアプリケーションフィルターsysextctrld
はバックグラウンドで引き続き実行されます。 このフィルターにより、pub.dev
への接続に失敗します。 この問題を解決するには、https://pub.dev
とhttps://pub.dartlang.org
の両方を信頼ゾーンに追加します
- カスペルスキーインターネットセキュリティを開きます。
- **プライバシー**アイコンをクリックします。
- **ウェブサイトトラッキングのブロック**セクションで、**設定**ボタンをクリックします。
- 上部のアイコンバーで、**脅威**を選択します。
- **脅威**で、**信頼ゾーン**をクリックします。
- **信頼できるWebアドレス**タブを選択します。
- **+**ボタンをクリックし、URL
https://pub.dev
を追加します。 - **OK**をクリックします。
https://pub.dartlang.org
についても前の2つの手順を繰り返します
特に明記されていない限り、このサイトのドキュメントはDart 3.5.3を反映しています。 ページの最終更新日:2024-02-07。 ソースを表示 または 問題を報告する。