From 7850ca8d335b62c346d215e4563eb2c5f02852f4 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Wed, 14 Oct 2026 22:16:32 +0600 Subject: [PATCH] [2026-10-14] eagle: personal/how-to/ipad-ios935-build-deploy.md --- personal/how-to/ipad-ios935-build-deploy.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/personal/how-to/ipad-ios935-build-deploy.md b/personal/how-to/ipad-ios935-build-deploy.md index 0c0b3dbd..3f68178c 100644 --- a/personal/how-to/ipad-ios935-build-deploy.md +++ b/personal/how-to/ipad-ios935-build-deploy.md @@ -66,13 +66,15 @@ ssh -p 2235 -i /absolute/path/to/ipad-key \ 1. Получить job `succeeded` и lease `ready`, затем создать pinned SSH config через установленный Virfield CLI. Проверить `sw_vers`, `xcodebuild -version`, `xcrun --sdk iphoneos --show-sdk-version` в госте. Не работать на golden. 2. Передать checkouts/зафиксированные зависимости в guest `~/workspace`; сохранить SHA исходников и полный build log отдельно для каждого приложения. -3. Для Xcode targets использовать `-sdk iphoneos -configuration Release -destination generic/platform=iOS`, `ARCHS=armv7`, `ONLY_ACTIVE_ARCH=NO`, `IPHONEOS_DEPLOYMENT_TARGET=9.3`, `CODE_SIGNING_ALLOWED=NO`, `CODE_SIGNING_REQUIRED=NO`. Edhita требует `pod install` с закреплёнными версиями и template AppSecret; iVim — соответствующие старые frameworks; Notepad — scheme `Notepad`. GitJournal требует старый Flutter и его pubspec.lock/Podfile.lock, затем release build без Apple signing. +3. Для Xcode targets использовать `-sdk iphoneos -configuration Release -destination generic/platform=iOS`, `ARCHS=armv7`, `ONLY_ACTIVE_ARCH=NO`, `IPHONEOS_DEPLOYMENT_TARGET=9.3`, `CODE_SIGNING_ALLOWED=NO`, `CODE_SIGNING_REQUIRED=NO`. Edhita требует `pod install` с закреплёнными версиями и template AppSecret; iVim — соответствующие старые frameworks; Notepad — app scheme `Example` (scheme `Notepad` собирает только framework). GitJournal требует старый Flutter и его pubspec.lock/Podfile.lock, затем release build без Apple signing. Подготовлен `~/Developer/ipad-editors/build-native-on-monterey.sh`; проверен только синтаксис `bash -n`, фактическая сборка ожидает ready worker. 4. Экспортировать .app/IPA на Mac до окончания lease; проверять `lipo -archs` у executable и всех вложенных Mach-O: должен присутствовать `armv7`. Проверить minimum OS <=9.3.5, UIDeviceFamily включает 2, итоговые bundle IDs, отсутствие обязательной arm64 capability. Подписывать вложенные dylib/framework/appex до основного executable. 5. Fake sign выбранным совместимым `ldid`, проверить signature/entitlements; сформировать IPA с `Payload/.app` и SHA-256. `codesign -s -` без проверки совместимости старого устройства не считать проверенным эквивалентом. 6. Через уже настроенный SSH key проверить jailbreak, AppSync, `appinst` и `ldid`. Перед установкой прочитать список installed bundles: существующий экземпляр с пользовательскими документами не удалять/перезаписывать без подтверждения. Для новой тестовой сборки выбрать отдельный bundle ID при необходимости. 7. Передать IPA, вызвать доступный installer, проверить его exit code и появление bundle. При disconnect сначала прочитать состояние устройства, затем решать о повторе. Обновить icon cache, запустить по bundle ID доступным launcher и проверить работающий процесс/экран. Installer success не доказывает launch или редактирование. 8. Сохранить результат отдельно для build, fake sign, install, launch, Markdown editing; дополнить эту заметку фактическими командами и логами. Освободить только собственную lease после экспорта и явного разрешения cleanup. +Fake signer source скачан отдельно: [ProcursusTeam/ldid](https://github.com/ProcursusTeam/ldid/tree/af86971ae72ec3ed3d0a699107c4e882324c941b), checkout `~/Developer/ipad-editors/ldid`, ревизия `af86971ae72ec3ed3d0a699107c4e882324c941b`. Это вспомогательный инструмент, не пятый редактор. Бинарник собран на локальном Mac (`make -j4`, libplist 2.8.0 / libcrypto 3.6.5); запуск usage проверен, версия `v2.1.5-procursus7-23-gaf86971`, Mach-O arm64. SHA-256: `f36d613b2fb6e245f99bef8373844e7fa6c97a2f82059faadc74dcbcc90c9458`. Это host tool для подписи, не сборка редактора; редакторы по запросу должны собираться на Monterey. Подпись armv7-приложений ещё не проверена. Для старой ОС ldid позволяет явно выбрать hash `-Hsha1`; фактическую совместимость проверить на готовом артефакте и устройстве. + ## Связь с Obsidian sync На Mac `~/scripts/sync-vault.sh` уже запускается `launchd` `com.sync-vault` каждые 300 секунд; текущий daemon state подтверждает StartInterval. Remote скрипта — `nas`, не GitHub. Редактирование серверных .md через SFTP может использовать этот существующий синк; прямому iPad GitJournal/Working Copy потребуется собственный remote. Обычный iOS-app sandbox не даёт cron для Bash/Git; на jailbroken устройстве daemon/launchd и системные Git/Bash требуют отдельной настройки. Запрос на cron пока был исследовательским: существующие расписания не менялись.