メインコンテンツにスキップ

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

#

コマンド プロンプトを使用している場合

cmd
$ 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 Internet Security Suite のような一部のウイルス対策ソフトウェアの結果として発生する可能性があります。セキュリティ スイートのマニュアルを確認して、この機能を一時的に無効にする方法を確認してください。たとえば、「AVG コンポーネントを無効にする方法」を参照してください。

企業のファイアウォールの内側から Pub get が失敗する

#

コマンド ラインから、pub は http_proxy および https_proxy 環境変数を尊重します。プロキシ サーバー環境変数は次のように設定できます。

Linux/macOS

export https_proxy=hostname:port

Windows コマンド プロンプト

cmd
$ set https_proxy=hostname:port

Windows PowerShell

$ $Env:https_proxy="hostname:port"

プロキシに認証情報が必要な場合は、次のように設定できます。

Linux/macOS

export https_proxy=username:password@hostname:port

Windows コマンド プロンプト

cmd
$ 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 と異なる場合があります。ブラウザでサインインできる場合でも、ブラウザは https://:<port>?code=... に到達できないと文句を言います。

コマンド ラインを使用してサインインを完了する、この回避策を試してください。

  1. ターミナル ウィンドウで dart pub publish を実行します。

  2. 表示されるブラウザ ウィンドウでサインインします。
    ブラウザは新しい localhost URL (https://:<port>?code=...) にリダイレクトされますが、URL に到達できないと文句を言います。

  3. ブラウザから新しい localhost URL をコピーします。

  4. dart pub publish が呼び出されたのと同じコンテナまたは同じホストの別のターミナル ウィンドウで、新しい localhost URL を使用して curl コマンドを使用してサインインを完了します。

    curl 'https://:<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 からのインターネット アクセスをブロックしていないことを確認してください。

Kaspersky Internet Security の詳細な手順

メニュー バーから *Kaspersky Internet Security* の保護をオフにすると、VPN アプリケーション フィルター sysextctrld はバックグラウンドで実行され続けます。このフィルターにより、pub.dev への接続に失敗します。この問題を解決するには、https://pub.devhttps://pub.dartlang.org の両方を信頼ゾーンに追加します。

  1. Kaspersky Internet Security を開きます。
  2. プライバシーアイコンをクリックします。
  3. **ウェブサイトの追跡をブロックする**セクションで、設定ボタンをクリックします。
  4. 上部のアイコン バーで、**脅威**を選択します。
  5. **脅威**の下で、信頼ゾーンをクリックします。
  6. 信頼できる Web アドレスタブを選択します。
  7. + ボタンをクリックし、URL https://pub.dev を追加します。
  8. OK をクリックします。
  9. https://pub.dartlang.org についても、前の 2 つの手順を繰り返します。