Open2
Flutterでアプリ開発時にハマったことまとめ
はまったこと1
HTTP通信ができない。
ClientException with SocketException: Connection failed (OS Error: Operation not permitted, errno = 1), address = example.com, port = 443,
- 解決策: ios / android / macos それぞれで通信の許可設定を別途入れる
- macos
$ git diff
diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements
index dddb8a3..08c3ab1 100644
--- a/macos/Runner/DebugProfile.entitlements
+++ b/macos/Runner/DebugProfile.entitlements
@@ -8,5 +8,7 @@
<true/>
<key>com.apple.security.network.server</key>
<true/>
+ <key>com.apple.security.network.client</key>
+ <true/>
</dict>
</plist>
diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements
index 852fa1a..ee95ab7 100644
--- a/macos/Runner/Release.entitlements
+++ b/macos/Runner/Release.entitlements
@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
+ <key>com.apple.security.network.client</key>
+ <true/>
</dict>
</plist>
- ios
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 663628b..07c1e56 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -45,5 +45,18 @@
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
+ <key>NSAppTransportSecurity</key>
+ <dict>
+ <key>NSExceptionDomains</key>
+ <dict>
+ <key>許可するドメイン</key>
+ <dict>
+ <key>NSExceptionAllowsInsecureHTTPLoads</key>
+ <true/>
+ <key>NSIncludesSubdomains</key>
+ <true/>
+ </dict>
+ </dict>
+ </dict>
</dict>
</plist>
iosのこれがいるかどうかは不明。
はまったこと2
プロジェクト名変えられない。何も考えずに「flutter create アプリ名
」で始めると「com.example.アプリ名」になってしまう。
- 解決策1(おすすめ): 素直に作り直す -
flutter create --org ドメイン名 アプリ名
- 解決策2(どうしても無理な場合): 以下の通り進める
はまったこと3
Macで開発中 SQLite使ってるとどこに保存されてるかがわからない。
- 解決策:
~/Library/Containers/ドメイン名.アプリ名/Data/Documents
の下にある。
はまったこと4
アイコンどうやって変えるのか。
pubspec.yaml
dev_dependencies:
flutter_launcher_icons: "^0.13.1"
flutter_launcher_icons:
android: true
ios: true
image_path: "assets/icon/icon.png"
上記を設定後、terminal上で以下を実行。
flutter pub get
flutter pub run flutter_launcher_icons