Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 1 addition & 10 deletions .github/workflows/build-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
jobs:
build-ios:
name: Build iOS Simulator App
runs-on: macos-15
runs-on: bladerunner-macos

steps:
- name: Checkout repository
Expand All @@ -31,15 +31,6 @@ jobs:
brew install nim
echo "$HOME/.nimble/bin" >> $GITHUB_PATH

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
working-directory: mobile-app/ios

- name: Select Xcode 16.4
run: sudo xcode-select -s "/Applications/Xcode_16.4.app/Contents/Developer"

- name: Build iOS
working-directory: mobile-app
run: make build-ios
Expand Down
21 changes: 3 additions & 18 deletions .github/workflows/nix-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,14 @@ jobs:
extra_nix_config: |
experimental-features = nix-command flakes

- name: Cache Nix store
uses: cachix/cachix-action@v15
with:
name: devenv
skipPush: true

- name: Init git repo (required by nimble)
working-directory: mobile-app
run: |
git init
git config user.email "ci@test.com"
git config user.name "CI"
git add -A
git commit -m "init"
git diff --cached --quiet || git commit -m "init"

- name: Build Android via Nix + Make
run: nix develop --command bash -c 'make android'
Expand All @@ -49,7 +43,7 @@ jobs:

nix-ios:
name: Nix → iOS Build
runs-on: macos-15
runs-on: bladerunner-macos

steps:
- name: Checkout repository
Expand All @@ -61,23 +55,14 @@ jobs:
extra_nix_config: |
experimental-features = nix-command flakes

- name: Cache Nix store
uses: cachix/cachix-action@v15
with:
name: devenv
skipPush: true

- name: Select Xcode 16.4
run: sudo xcode-select -s "/Applications/Xcode_16.4.app/Contents/Developer"

- name: Init git repo (required by nimble)
working-directory: mobile-app
run: |
git init
git config user.email "ci@test.com"
git config user.name "CI"
git add -A
git commit -m "init"
git diff --cached --quiet || git commit -m "init"

- name: Install Nim deps (Nix nimble links OpenSSL 3 + Security.framework which clash)
run: |
Expand Down
11 changes: 1 addition & 10 deletions .github/workflows/validate-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:

scaffold-and-build-ios:
name: Template → iOS Build
runs-on: macos-15
runs-on: bladerunner-macos

steps:
- name: Checkout repository
Expand Down Expand Up @@ -140,15 +140,6 @@ jobs:
brew install nim
echo "$HOME/.nimble/bin" >> $GITHUB_PATH

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
working-directory: test-app/ios

- name: Select Xcode 16.4
run: sudo xcode-select -s "/Applications/Xcode_16.4.app/Contents/Developer"

- name: Build iOS
working-directory: test-app
env:
Expand Down
7 changes: 6 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,15 @@
# Nix transitive deps (e.g. nim → apple-sdk) set SDKROOT/DEVELOPER_DIR
# to the Nix SDK and put a broken xcrun wrapper in PATH, unset these
# and prepend /usr/bin so system Xcode tools take priority.
unset DEVELOPER_DIR SDKROOT
unset SDKROOT
unset NIX_CFLAGS_COMPILE NIX_ENFORCE_NO_NATIVE
unset NIX_IGNORE_LD_THROUGH_GCC NIX_DONT_SET_RPATH NIX_DONT_SET_RPATH_FOR_BUILD NIX_NO_SELF_RPATH
export PATH="/usr/bin:$PATH"
if [ -d /Applications/Xcode.app/Contents/Developer ]; then
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
else
unset DEVELOPER_DIR
fi
echo " • macOS: iOS and Android development available"
echo " • CocoaPods: $(pod --version 2>/dev/null || echo 'not available')"
else
Expand Down
2 changes: 2 additions & 0 deletions mobile-app/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ build-nim: nim-static-lib nim-bindings nim-headers
build-ios: install build-nim codegen pod-install
@echo "Building iOS Simulator app..."
@set -o pipefail && env -i HOME=$(HOME) PATH=/usr/bin:/bin:/usr/sbin:/sbin LANG=en_US.UTF-8 \
DEVELOPER_DIR="$$DEVELOPER_DIR" \
TMPDIR="$$TMPDIR" \
xcodebuild -workspace $(XCODE_WORKSPACE) \
-scheme $(XCODE_SCHEME) \
-sdk iphonesimulator \
Expand Down
14 changes: 14 additions & 0 deletions mobile-app/ios/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,20 @@ target 'nimrnmobileapp' do
:ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true',
)

# fmt 11.0.2 (bundled with RN 0.81) emits FMT_STRING("...") lambdas
# that Xcode 26's clang rejects as not constant-evaluable. Strip the
# wrapper so the literal goes through the plain consteval ctor path.
# Remove when bumping to RN 0.82 (ships fmt prebuilt).
fmt_inl = File.join(installer.sandbox.root, 'fmt/include/fmt/format-inl.h')
if File.exist?(fmt_inl)
content = File.read(fmt_inl)
patched = content.gsub(/FMT_STRING\(("[^"]*")\)/, '\1')
if patched != content
File.chmod(0644, fmt_inl)
File.write(fmt_inl, patched)
end
end

# fix for Xcode 16 build issues
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
Expand Down
2 changes: 1 addition & 1 deletion mobile-app/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,6 @@ SPEC CHECKSUMS:
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
Yoga: 922d794dce2af9c437f864bf4093abfa7a131adb

PODFILE CHECKSUM: 30222b370f2c6e2622deeb5e8d786e95202de871
PODFILE CHECKSUM: 2c305444c70fa279b301b0f41b47d1e9fa4781e9

COCOAPODS: 1.16.2
Loading