From 9badd638797ea7de3debab8927b7dcc17d126215 Mon Sep 17 00:00:00 2001 From: klockky Date: Thu, 21 May 2026 20:06:56 +0000 Subject: [PATCH] =?UTF-8?q?ci(ios):=20pseudo-sign=20IPA=20=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B7=20ldid=20=D0=B4=D0=BB=D1=8F=20=D1=83=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=BD=D0=B0=20jai?= =?UTF-8?q?lbreak?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Без подписи iOS-ядро не загружает Mach-O, и Filza ругается на полное отсутствие подписи. Подписываем frameworks/dylibs/app extensions и главный бинарь Runner через ldid с минимальными entitlements — IPA теперь ставится через Filza/TrollStore/rootless-jailbreak. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/release-dev.yml | 38 ++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-dev.yml b/.github/workflows/release-dev.yml index b26d607..6ac2d2c 100644 --- a/.github/workflows/release-dev.yml +++ b/.github/workflows/release-dev.yml @@ -180,11 +180,43 @@ jobs: run: flutter pub get - name: Build iOS (no codesign) run: flutter build ios --release --no-codesign - - name: Package unsigned IPA + - name: Install ldid + run: brew install ldid + - name: Pseudo-sign with ldid + run: | + set -euo pipefail + APP="build/ios/iphoneos/Runner.app" + ENT="$(mktemp -t ent).plist" + cat > "$ENT" <<'PLIST' + + + + + platform-application + get-task-allow + com.apple.private.security.no-container + + + PLIST + if [ -d "$APP/Frameworks" ]; then + find "$APP/Frameworks" -type f -name "*.dylib" -print0 | xargs -0 -I{} ldid -S "{}" + find "$APP/Frameworks" -type d -name "*.framework" | while read -r fw; do + bin="$fw/$(basename "$fw" .framework)" + [ -f "$bin" ] && ldid -S "$bin" + done + fi + if [ -d "$APP/PlugIns" ]; then + find "$APP/PlugIns" -type d -name "*.appex" | while read -r ext; do + bin="$ext/$(basename "$ext" .appex)" + [ -f "$bin" ] && ldid -S"$ENT" "$bin" + done + fi + ldid -S"$ENT" "$APP/Runner" + - name: Package IPA run: | mkdir -p dist build/ios/Payload cp -R build/ios/iphoneos/Runner.app build/ios/Payload/ - (cd build/ios && zip -qr ../../dist/Komet-ios-unsigned.ipa Payload) + (cd build/ios && zip -qr ../../dist/Komet-ios-pseudosigned.ipa Payload) - name: Upload iOS artifact uses: actions/upload-artifact@v4 with: @@ -225,5 +257,5 @@ jobs: body: | Automated pre-release built from `${{ github.ref_name }}` @ `${{ github.sha }}`. - ⚠️ The iOS build is **unsigned** — install via AltStore / Sideloadly / a jailbroken device only. + ⚠️ The iOS build is **pseudo-signed via ldid** — install on a jailbroken device (Filza / TrollStore / rootless) or sideload via AltStore / Sideloadly. files: dist/*