😬
flutterのmacosアプリ開発でうまく動かなかったら
- ファイルアクセス
- カメラの使用
- インターネットアクセス
これらの機能を使うアプリでコード的に絶対間違いがないのに動かなくなったら
まずサンドボックス環境をoffしてるか確認しましょう。
example/macos/Runner/DebugProfile.entitlements
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<false/> <== ここをfalseに変える
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
</plist>
うまくいかない理由は、デフォルトではmacOSのビルドは署名されるように構成されており、サンドボックス化されているためです。サンドボックス化されているためアプリの特定範囲より外へのアクセスはできないようになっています。
そのため、外部へのアクセスが必要な場合は、作成するアプリで必要な機能の資格を設定する必要があります。
ref:
お気持ち表明
僕はこれのせいでインターネットアクセスができず
やる気がなくなり実質1ヶ月詰まっていました...
iOS,MacOS系開発はこういう系の罠が多くて心が荒む...
でもそれゆえにセキュアなアプリができる面もあり何とも言えない...
Discussion