fix macos permission issues

This commit is contained in:
Henry Hiles 2026-08-08 18:52:49 -04:00
commit 5bbd51c4bc
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 82 additions and 79 deletions

View file

@ -1,49 +1,50 @@
name: "Build iOS App" name: "Build iOS App"
on: on:
push: push:
branches: ["main"] branches: ["main"]
tags: ["*"] tags: ["*"]
workflow_dispatch: workflow_dispatch:
jobs: jobs:
build-app: build-app:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v6
with: with:
submodules: recursive submodules: recursive
- name: Lix GHA Installer Action - name: Lix GHA Installer Action
uses: samueldr/lix-gha-installer-action@v2026-02-22 uses: samueldr/lix-gha-installer-action@v2026-02-22
with: with:
extra_nix_config: experimental-features = nix-command flakes flake-self-attrs extra_nix_config: experimental-features = nix-command flakes flake-self-attrs
- name: Build app - name: Build app
run: | run: |
nix develop --command bash -c ' nix develop --command bash -c '
set -e set -e
flutter pub get flutter pub get
dart scripts/generate.dart dart scripts/generate.dart
flutter pub run build_runner build flutter pub run build_runner build
# Nix-provided Flutter'"'"'s bundled frameworks are read-only, which
# breaks lipo when Flutter thins them into build/ (NixOS/nixpkgs#405066).
find "$(dirname "$(dirname "$(readlink -f "$(command -v flutter)")")")" -type d -iname "*.framework" -exec chmod -R u+w {} + 2>/dev/null || true
flutter build ios --release --no-codesign
'
# Unsigned IPA: SideStore/AltStore re-sign this on-device with the FLUTTER_ROOT="$(dirname "$(dirname "$(readlink -f "$(command -v flutter)")")")"
# user's own Apple ID at install time, so no certificate is needed here. sudo find -L "$FLUTTER_ROOT" -type d -iname "*.framework" -exec chmod -R u+w {} +
- name: Package unsigned IPA
run: |
mkdir Payload
cp -r build/ios/iphoneos/Runner.app Payload/
zip -r Nexus.ipa Payload
- name: Upload IPA artifact flutter build ios --release --no-codesign
uses: actions/upload-artifact@v6 '
with:
name: Nexus.ipa # Unsigned IPA: SideStore/AltStore re-sign this on-device with the
path: Nexus.ipa # user's own Apple ID at install time, so no certificate is needed here.
- name: Package unsigned IPA
run: |
mkdir Payload
cp -r build/ios/iphoneos/Runner.app Payload/
zip -r Nexus.ipa Payload
- name: Upload IPA artifact
uses: actions/upload-artifact@v6
with:
name: Nexus.ipa
path: Nexus.ipa

View file

@ -1,40 +1,42 @@
name: "Build MacOS App" name: "Build MacOS App"
on: on:
push: push:
branches: ["main"] branches: ["main"]
tags: ["*"] tags: ["*"]
workflow_dispatch: workflow_dispatch:
jobs: jobs:
build-app: build-app:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v6
with: with:
submodules: recursive submodules: recursive
- name: Lix GHA Installer Action - name: Lix GHA Installer Action
uses: samueldr/lix-gha-installer-action@v2026-02-22 uses: samueldr/lix-gha-installer-action@v2026-02-22
with: with:
extra_nix_config: experimental-features = nix-command flakes flake-self-attrs extra_nix_config: experimental-features = nix-command flakes flake-self-attrs
- run: | - name: Build app
nix develop --command bash -c ' run: |
set -e nix develop --command bash -c '
flutter pub get set -e
dart scripts/generate.dart flutter pub get
flutter pub run build_runner build dart scripts/generate.dart
# Nix-provided Flutter'"'"'s bundled frameworks are read-only, which flutter pub run build_runner build
# breaks lipo when Flutter thins them into build/ (NixOS/nixpkgs#405066).
find "$(dirname "$(dirname "$(readlink -f "$(command -v flutter)")")")" -type d -iname "*.framework" -exec chmod -R u+w {} + 2>/dev/null || true
flutter build macos --release
'
- name: Upload installer artifact FLUTTER_ROOT="$(dirname "$(dirname "$(readlink -f "$(command -v flutter)")")")"
uses: actions/upload-artifact@v6 sudo find -L "$FLUTTER_ROOT" -type d -iname "*.framework" -exec chmod -R u+w {} +
with:
name: App flutter build macos --release
path: build/macos/Build/Products/Release/Nexus.app '
- name: Upload installer artifact
uses: actions/upload-artifact@v6
with:
name: App
path: build/macos/Build/Products/Release/Nexus.app