diff --git a/.github/workflows/ios-build.yml b/.github/workflows/ios-build.yml
index af8949e..7aac59f 100644
--- a/.github/workflows/ios-build.yml
+++ b/.github/workflows/ios-build.yml
@@ -1,14 +1,18 @@
name: Build Max+ iOS
on:
+ push:
+ branches:
+ - main
+ pull_request:
workflow_dispatch:
jobs:
build:
- runs-on: macos-14
+ runs-on: macos-15
env:
- FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
- timeout-minutes: 20
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
+ timeout-minutes: 40
steps:
- uses: actions/checkout@v4
@@ -16,7 +20,7 @@ jobs:
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
- xcode-version: "latest-stable"
+ xcode-version: "16.4"
- name: Setup Bun
uses: oven-sh/setup-bun@v2
@@ -32,61 +36,27 @@ jobs:
workspaces: "src-tauri"
- name: Install dependencies
- run: bun install
-
- - name: Prepare Tauri iOS
- run: |
- rm -rf src-tauri/gen/apple
- bun tauri ios init
-
- - name: Generate Icons
- run: bun run tauri icon static/favicon.png
+ run: bun install --frozen-lockfile
- name: Patch Cargo.toml for CI
run: |
sed -i '' 's|path = "../../rumax"|git = "https://github.com/me0wkie/rumax.git", branch = "main"|g' src-tauri/Cargo.toml
echo "Cargo.toml updated for cloud build:"
- cat src-tauri/Cargo.toml | grep rumax
-
- - name: Patch Tauri identifier for FCM
- run: |
- sed -i 's|"identifier": "org.meowkie.max"|"identifier": "ru.oneme.app"|g' src-tauri/tauri.conf.json
-
- echo "Tauri conf updated:"
- grep identifier src-tauri/tauri.conf.json
+ grep rumax src-tauri/Cargo.toml
- - name: Build Xcode Project
- run: |
- mkdir -p $GITHUB_WORKSPACE/bin
- cat << 'EOF' > $GITHUB_WORKSPACE/bin/xcodebuild
- #!/bin/bash
- exec /usr/bin/xcodebuild "$@" CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" PROVISIONING_PROFILE_SPECIFIER=""
- EOF
- chmod +x $GITHUB_WORKSPACE/bin/xcodebuild
- export PATH="$GITHUB_WORKSPACE/bin:$PATH"
-
- bun tauri ios build || true
-
- - name: Package IPA
- run: |
- mkdir -p Payload
-
- APP_PATH=$(find src-tauri/gen/apple -type d -name "*.app" | head -n 1)
+ - name: Prepare Tauri iOS
+ run: bun tauri ios init --ci
- if [ -z "$APP_PATH" ]; then
- echo "Error: .app file not found!"
- find src-tauri/gen/apple -type d -name "*.app"
- exit 1
- fi
+ - name: Generate Icons
+ run: bun run tauri icon static/favicon.png
- echo "Found app at: $APP_PATH"
- cp -r "$APP_PATH" Payload/
- zip -qr Max_Unsigned.ipa Payload
+ - name: Build iOS
+ run: bun tauri ios build --ci --target aarch64 --no-sign
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
- name: Mobile-iOS-Build
- path: maxplus_unsigned.ipa
+ name: maxplus-ios-unsigned
+ path: src-tauri/gen/apple/build/arm64/*.ipa
if-no-files-found: error
diff --git a/README.md b/README.md
index d8cc77b..3596bc2 100644
--- a/README.md
+++ b/README.md
@@ -182,7 +182,19 @@ $ cargo tauri android build --target aarch64
$ cargo tauri android build
```
-Нормальная сборка под iOS возможна только с macOS. Может понадобиться [платная подписка Apple Developer.](https://developer.apple.com/support/compare-memberships/)
+### Сборка под iOS 15+ на macOS
+
+В CI используется Xcode 16.4. После установки [зависимостей для iOS](https://v2.tauri.app/start/prerequisites/#ios) и зависимостей проекта:
+
+```sh
+bun tauri ios init
+bun run tauri icon static/favicon.png
+bun tauri ios build --target aarch64 --no-sign
+```
+
+Неподписанный IPA появится в `src-tauri/gen/apple/build/arm64/`. Для установки на устройство его нужно подписать. Для сборки с подписью настройте [Apple Developer и подпись Tauri](https://v2.tauri.app/distribute/sign/ios/) и уберите `--no-sign`.
+
+GitHub Actions **Build Max+ iOS** выполняет ту же release-сборку при push в `main`, в pull request и вручную через `workflow_dispatch`. IPA доступен в артефакте `maxplus-ios-unsigned` завершённого запуска. Workflow не публикует GitHub Release.
## Сброс данных клиента
Секретные чаты теряются!
diff --git a/src-tauri/Info.ios.plist b/src-tauri/Info.ios.plist
index 1609b9d..8f2e722 100644
--- a/src-tauri/Info.ios.plist
+++ b/src-tauri/Info.ios.plist
@@ -4,8 +4,6 @@
NSFaceIDUsageDescription
Authenticate with biometric
-
-
NSCameraUsageDescription
Read QR codes
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index a492ca1..6ef4b5d 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -39,6 +39,9 @@
"icons/icon.icns",
"icons/icon.ico"
],
+ "iOS": {
+ "minimumSystemVersion": "15.0"
+ },
"linux": {
"appimage": {
"bundleMediaFramework": false