😬

flutterのmacosアプリ開発でうまく動かなかったら

2022/08/12に公開
  • ファイルアクセス
  • カメラの使用
  • インターネットアクセス

これらの機能を使うアプリでコード的に絶対間違いがないのに動かなくなったら
まずサンドボックス環境を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:
https://techgamelife.net/2021/08/09/flutter-create-macos-app/#:~:text=Copy-,macosのデスクトップアプリを作成時引っかかるポイント,-macOSのデスク

お気持ち表明

僕はこれのせいでインターネットアクセスができず
やる気がなくなり実質1ヶ月詰まっていました...

iOS,MacOS系開発はこういう系の罠が多くて心が荒む...
でもそれゆえにセキュアなアプリができる面もあり何とも言えない...

Discussion