-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or requestreview requiredIssue has not been assigned yetIssue has not been assigned yettarget:iosBug/Feature is targeted towards the iOS releaseBug/Feature is targeted towards the iOS release
Description
Category
New Feature
Target Platform
iOS
Feature Description
This app is currently an Android exclusive. I want to provide binaries targeted towards iOS.
Proposed Solution / Mockup
tauri supports iOS builds. There's some plumbing required to make it work.
- macOS required
- Install Xcode from the Mac App Store (latest version recommended)
- Install Xcode Command Line Tools:
xcode-select --install - Apple Developer Account: Free account works for local testing, paid (99 $/year) required for App Store distribution and bundle signing
- Add iOS Rust targets:
rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios - Initialize tauri iOS:
cargo tauri ios initand review the generated files
- src-tauri/gen/apple/ - iOS project files
- src-tauri/gen/apple/librefit.xcodeproj - Xcode project
- src-tauri/tauri.conf.json - Check for iOS-specific configuration
Config update:
- Update
tauri.conf.jsonwith iOS-specific settings:
{
"identifier": "io.tohowabohu.librefit",
"bundle": {
"iOS": {
"minimumSystemVersion": "14.0",
"developmentTeam": "YOUR_TEAM_ID"
}
}
}
- Review and update permissions in the tauri capabilties config
After that, the usual cargo tauri commands can be used for development and local tests.
For CI/CD a ios-templates folder might be needed, similar to android-templates overwriting generated files during the build process.
Problem Statement (Optional)
No response
Alternatives Considered (Optional)
No response
Additional Context (Optional)
ios-release.yml could look like this:
name: 'iOS Release'
on:
workflow_dispatch:
permissions:
contents: write
jobs:
build-ios:
name: 'Build iOS App'
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install frontend dependencies
run: npm ci
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-ios,aarch64-apple-ios-sim,x86_64-apple-ios
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
shared-key: ios-build
- name: Install Tauri CLI
run: cargo install tauri-cli --version "=2.9.5" --locked
- name: Initialize Tauri iOS
working-directory: src-tauri
run: cargo tauri ios init
- name: Generate iOS icons
working-directory: src-tauri
run: cargo tauri icon icons/icon.png
- name: Build iOS App
working-directory: src-tauri
run: cargo tauri ios build --target aarch64-apple-iosReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestreview requiredIssue has not been assigned yetIssue has not been assigned yettarget:iosBug/Feature is targeted towards the iOS releaseBug/Feature is targeted towards the iOS release