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
66 changes: 18 additions & 48 deletions .github/workflows/ios-build.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,26 @@
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

- 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
Expand All @@ -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
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

## Сброс данных клиента
Секретные чаты теряются!
Expand Down
2 changes: 0 additions & 2 deletions src-tauri/Info.ios.plist
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
<dict>
<key>NSFaceIDUsageDescription</key>
<string>Authenticate with biometric</string>
</dict>
<dict>
<key>NSCameraUsageDescription</key>
<string>Read QR codes</string>
</dict>
Expand Down
3 changes: 3 additions & 0 deletions src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@
"icons/icon.icns",
"icons/icon.ico"
],
"iOS": {
"minimumSystemVersion": "15.0"
},
"linux": {
"appimage": {
"bundleMediaFramework": false
Expand Down
Loading