LoginSignup
1
0

ExpoでHTTP通信を許可する

Last updated at Posted at 2024-04-04

HTTP通信を行う(HTTPSではなくHTTP)

Androidの場合

Androidでhttpなリモート画像のロードやWebViewでURLを開く場合はexpo-build-propertiesを使用します。

npx expo install expo-build-properties

その後app.jsonに以下を追加します。

{
  "expo": {
    ...省略
    "plugins": [
      [
        "expo-build-properties",
        {
          "android": {
            "usesCleartextTraffic": true
          }
        }
      ]
    ]
  }
}

iOSの場合

これまではiOSでは特別な設定は必要なくhttpのURLをWebViewで開けていたのですが、Expo SDK 50にアップグレードしたところエラーが表示されるようになりました。

下記のようなエラーが表示されます。

NSURLErrorDomain
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

iOSの場合はこのエラーを解消するためにapp.jsoninfoPlistに以下を追加します。

{
  "expo": {
    ...省略
    "ios": {
      "infoPlist": {
        "NSAppTransportSecurity": {
          "NSAllowsArbitraryLoads": false,
          "NSExceptionDomains": {
            "mydomain.jp": {
              "NSExceptionAllowsInsecureHTTPLoads": true
            }
          }
        }
      }
    }
  }
}

mydomain.jpの部分はhttp通信を許可するドメインに置き換えます。

まとめ

Expo GOアプリでの開発中はhttpリクエストのエラーは出ません。eas buildして内部配布やストア配布を行った際に上記の設定を行わないとOSによってhttp通信をブロックされるようです。

1
0
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
1
0