2
1
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

Flutter の iOS をターゲットにしたビルドで Xcode で起きていたエラーと対策

Last updated at Posted at 2024-01-15

Flutter の iOS をターゲットにしたビルドで Xcode に関係するエラーが起きていて理由も対策もわからなかった。

Failed to build iOS app
Error (Xcode): Sandbox: rsync.samba(87976) deny(1) file-write-create /Users/.../.../.../.../build/ios/Release-iphoneos/Flutter.framework

Error (Xcode): Sandbox: dart(87954) deny(1) file-write-create /Users/.../.../.../.../build/ios/Release-iphoneos/.last_build_id

Error (Xcode): Flutter failed to write to a file at "/Users/.../.../.../.../build/ios/Release-iphoneos/.last_build_id".

以上のような感じ。それこそ chtGPT にきいてもわからない。
メッセージで書き込めない、ということがわかるだけ。

ちなみに、コンソールから
touch /Users/.../.../.../.../build/ios/Release-iphoneos/.last_build_id
とか 
mkdir /Users/.../.../.../.../build/ios/Release-iphoneos/Flutter.framework 
とかはできる。

google で 
flutter build ios Error (Xcode): Sandbox: rsync.samba(87976) deny(1) file-write-create build/ios/Release-iphoneos/Flutter.framework 
で検索してみると、まずは日本語の記事がみつかった。

つまり、プロジェクトの中の ios/Runner.xcworkspace または Runner.xcodeproj を Xcode で開いて
 中央のペインでなにもタブが開いていなかったら
 No selection とあるはずなのでそれをクリックして Runner になったところで再びクリック
 そして Runner の Project と Targets が開くようにする。
 Targets としての Runner が選択されているはずだが
選ばれていなければ Target としての Runner をクリック
同じ中央のペインの上部の3行めメニューの中から Build Settings をクリック
4行めのフィルタに sandbox と入れると多くの項目がしぼりこまれてその結果から
Build Options の User Script Sandboxing を見つけ出す。
その設定値が Yes になっているはずだがこれを No にする。

これでうまくいった。
この設定はXcodeの側としてSandboxingするかどうか(つまり他には触らせないか)
という意味らしい。Flutterのbuild側から書き換えを許すということは、Xcodeの
Sandboxではなくなるので、No とでもいうことなのだろう。しらんけど。

Xcodeの15になってからこれの初期値がYesになったという。
それ以前は No だったので気が付かなかったというわけ。

2
1
1

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