[2026-10-15] eagle: personal/how-to/ipad-ios935-build-deploy.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-15 00:53:40 +06:00
1 parent f6f50b036a
commit 458aa83de2
1 file changed
+29 -1
+29 -1
View File
@@ -6,7 +6,7 @@ tags: [ipad, ios, markdown, virfield, build, deploy]
---
# iPad iOS 9.3.5 — сборка редакторов, fake sign и деплой
Запрос: checkout найденных открытых редакторов в `~/Developer`, сборка на Virfield/Monterey, fake sign и установка на физический iPad. **Edhita, Notepad Example и официальный iVim 1.40 собраны, fake-signed, установлены и запущены на iOS 9.3.5; экраны приложений проверены.** GitJournal ещё собирается после исправления несовместимых исторических зависимостей. Fork holzschu требует 32-bit rebuild зависимостей. Проверенный SSH-доступ к iPad настроен 2026-10-15 через `ssh-copy-id` после явного указания пользователем пароля. Второй Virfield worker восстановлен после отдельно разрешённого recovery; третий Monterey worker ready.
Запрос: checkout найденных открытых редакторов в `~/Developer`, сборка на Virfield/Monterey, fake sign и установка на физический iPad. **Edhita, Notepad Example, официальный iVim 1.40 и legacy GitJournal собраны, fake-signed, установлены и запущены на iOS 9.3.5; экраны всех четырёх приложений проверены.** GitJournal потребовал local compatibility patch, описанный ниже. Fork holzschu требует 32-bit rebuild зависимостей и не установлен. Проверенный SSH-доступ к iPad настроен 2026-10-15 через `ssh-copy-id` после явного указания пользователем пароля. Второй Virfield worker восстановлен после отдельно разрешённого recovery; третий Monterey worker завершил workload, артефакты экспортированы, пользователь запросил release.
## Устройство и доступ
@@ -140,6 +140,7 @@ Output directory должен быть новым: helper отказывает
| Notepad Example | `packages/Notepad-20261014/Example.ipa`; `835431ecb821d996b932e523fe32188f21b82fecab4808a6536a0fe0975c4748` | `com.ruddfawcett.Example`, minimum 9.3; USB install Complete / exit 0; process 3355, UI с Markdown test document виден на screenshot |
| iVim 1.40 | `packages/iVim-upstream-20261014/iVim.ipa`; `e2b67b451b11defb30fd8ba1d64a5f3e898a3010be14c3f451f41dfe12b6c777` | `com.terrychou.ivim`, minimum 9.3; USB install Complete / exit 0; process 3366, Vim welcome screen и клавиатура видны на screenshot |
| Edhita 2.3.0 | `packages/edhita-20261015/Edhita.ipa`; `f354872cc0e4596dca82903f0741ccf0204242befd3400e54fabcc1ef09a8aea` | `com.bornneet.Edhita`, minimum 9.3; USB install Complete / exit 0; detached debug launch exit 0, UI с Documents browser/Editor/Browser/Dual виден на screenshot |
| GitJournal 1.76.0+10, local legacy build | `packages/GitJournal-20261015/Runner.ipa`; `5dc474f641cb26e64586b8f1c48ee6520c0dd7797e53a6ab59ee721e098f7a52` | `io.gitjournal.gitjournal`, build10, minimum9.3; USB install Complete / exit0; detached launch exit0, onboarding UI показан на screenshot |
Установлен `ideviceinstaller` 1.2.0. До install отсутствие обоих bundle IDs проверено; другие приложения/документы не удалялись. Исполненные команды:
@@ -186,3 +187,30 @@ idevicescreenshot -u "$UDID" /Users/admin/Developer/ipad-editors/iVim-first-laun
GitJournal на replacement: опубликованный ext_storage 1.0.3 успешно разрешился. Затем выявлено противоречие upstream: Dart firebase_analytics 8.0.0 требует более высокий minimum iOS, несмотря на Runner9.0 и native lock6.33.0. Выбраны точные firebase_analytics6.2.0 / firebase_core0.5.2 из исторического iOS lock; это local compatibility patch. При пере-resolve незакреплённый dart-git HEAD перешёл на современный Dart3 и нарушил old SDK2.16.2. Все четыре git dependencies теперь явно pin к исходным resolved-ref (`4e47b63…`, `52a9def…`, `d7bfaa69…`, `2e2da41…`). Эти изменения находятся в host `GitJournal/pubspec.yaml` и переданы guest. Дальнейший результат компиляции пока ожидается.
Позднейшая проверка old Firebase6 выявила quiver2/quiver3 conflict с dart-git. **Final compatibility patch отключает optional Firebase analytics**: dependency удалена, `Analytics` сохраняет API с no-op Firebase methods и disabled collection, ссылка на отсутствующий публично `GoogleService-Info.plist` убрана из PBX. Actual pub get теперь успешно завершён (8.8s), native CocoaPods/build продолжается. Это локальная iOS9-сборка с изменениями в трёх source files, не утверждение неизменного upstream binary. Markdown/Git implementation сохранён.
### GitJournal: итоговая успешная сборка и установка
Следующий compiler pass выявил три ошибки: отсутствующий generated `lib/.env.dart`, removed `Platform.packageRoot` у platform3.0.0 на Dart2.16, несовместимый PointerEvent callback у photo_view0.11.1 на Flutter2.10. Исправлено:
- `platform: 3.1.0`, `photo_view: 0.13.0` — официальные pub.dev packages с SDK >=2.12 <3; API photo_view customChild, используемый приложением, сохранился. Versions/compatible callback проверены по опубликованному archive source.
- Helper исполняет просмотренный upstream `scripts/setup_env.dart` с `SENTRY_DSN=''`, генерируя пустой локальный config; настоящие credentials не искались. Sentry endpoint не задан.
- All four Git dependency refs явно закреплены из original lock; `ext_storage` взят с pub.dev1.0.3. Firebase analytics отключён. Final Dart/iOS lockfiles скопированы в host checkout.
Final pass `RUN_ID=20261015T003500Z` завершился **BUILD SUCCEEDED**, SDK15.5, ARCHSarmv7, target9.3, Apple codesigning disabled. Archive `gitjournal-export-20261015.tar.gz` экспортирован на Mac; directory `exported-editors/GitJournal` содержит app, build/dependency/configure logs, exact revisions/toolchain/Flutter version, used lockfiles, generated PBX/scheme, empty env и `compatibility.patch`. Различия tracked source включают два final lockfiles и три source files; оригинальная revision50dfb2d сохраняется отдельно.
```sh
python3 /Users/admin/Developer/ipad-editors/package-fake-signed.py \
/Users/admin/Developer/ipad-editors/exported-editors/GitJournal/Runner.app \
/Users/admin/Developer/ipad-editors/packages/GitJournal-20261015 \
--entitlements /Users/admin/Developer/ipad-editors/GitJournal/ios/Runner/Runner.entitlements
ideviceinstaller -u "$UDID" install \
/Users/admin/Developer/ipad-editors/packages/GitJournal-20261015/Runner.ipa
ideviceinstaller -u "$UDID" list -b io.gitjournal.gitjournal \
-a CFBundleIdentifier -a CFBundleDisplayName -a MinimumOSVersion -a CFBundleVersion
idevicedebug -u "$UDID" --detach run io.gitjournal.gitjournal
idevicescreenshot -u "$UDID" /Users/admin/Developer/ipad-editors/GitJournal-first-launch.png
```
Fake-sign verification проверил **49 Mach-O**: все armv7, minimum7.0 /9.0 /9.3, main/extension entitlements прочитаны обратно. Отсутствие target bundle перед install подтверждено; install Complete/exit0, metadata io.gitjournal.gitjournal /GitJournal /9.3 /10. Detached launch exit0, screenshot просмотрен: GitJournal onboarding `An Open Source Note Taking App built on top of Git`, кнопки Skip/Next. Это проверка запуска, а не реального remote sync: vault, account, clone/push и iCloud/ShareExtension отдельно не тестировались.
Все оставшиеся worker diagnostics и exact x86_64 Gemfile.lock также экспортированы в `diagnostics-20261015.tar.gz` / `exported-diagnostics`. Процесс сборки/деплоя закончен для четырёх совместимых вариантов; full fork holzschu остаётся архитектурно несовместимым с mini1 в имеющемся бинарном dependency наборе.