Meanwhile I installed all tooling manually the traditional way, using home-brew (at least from a nix file).
It started to work, when I installed cocoapods manually ( sudo gem install cocoapods
), for which I needed a more recent version of ruby, which I installed and PATHed using nix.
I activated my flake.nix again, uncommenting one item at a time. But without libiconv
and darwin.apple_sdk.frameworks.CoreServices
the rust part of my project does not build - and with only these and nothing else (in an empty shellHook) it still doesn’t work (Lexical or Preprocessor Issue (Xcode): 'UIKit/UIKit.h' file not found
).
Unfortunately I can’t use nix for my flutter-rust-bridge project - and I wonder if anyone is able to use nix for flutter build ios
.
If so, please post your configuration here!
I think flutter is using Xcode so heavily, which is probably so much tied to the MacOS (one can’t install certain old versions on new processors), so that ‘freeze the versions with nix for later reproducibility’ is practically not needed - as one might anyways need to support the in-future-latest mobile os, which would require the latest toolchain. And regarding 3rd party libs, etc, cargo.lock and pubspec.lock (and Podfile.lock) do a good job already.
Not going too philosophical I wonder if nix is needed with quite modern toolchains … though I love the idea of deterministic environments.
Anyhow, if somebody made it work - please let me know!