--- title: reflect-skip Skip Fuse — Pitfalls created: '2026-05-20' updated: '2026-05-22' last_synced: '2026-05-22' type: reference namespace: personal tags: - reflect - skip - swiftui - kotlin - pitfall confidence: 0.9 --- # reflect-skip Skip Fuse — Adding a New SwiftUI View ## Problem При добавлении нового SwiftUI View-файла в `Sources/ReflectApp/Views/` Skip Fuse **не создаёт Kotlin-стаб автоматически**. Приложение крашится с `ClassNotFoundException` при запуске. ## Fix — создать Kotlin-стаб вручную Нужно создать стаб в **обоих** местах: 1. `DerivedData/.../reflect-skip.output/ReflectApp/skipstone/ReflectApp/src/main/kotlin/reflect/app/` 2. `.build/plugins/outputs/reflect-skip/ReflectApp/destination/skipstone/ReflectApp/src/main/kotlin/reflect/app/` **Шаблон:** скопировать `OnboardingView.kt`, заменить: - Имя класса - `@State` vars Constructor принимает closure-параметры. После создания стабов: ```bash skip gradle assembleDebug ``` ## Package.swift — обязательная структура Без этих секций Xcode падает с "Missing package product 'ReflectApp'": ```swift // Package.swift — обязательные поля products: [ .library(name: "ReflectApp", targets: ["ReflectApp"]) ], targets: [ .target( name: "ReflectApp", path: "Sources/ReflectApp", dependencies: [ .product(name: "SkipFuse", package: "skip-fuse"), .product(name: "SkipUI", package: "skip-ui"), // НЕ добавлять skip-fuse-ui как отдельную зависимость ], plugins: [.plugin(name: "skipstone", package: "skip")] ) ] ``` **Pitfall:** `skip-fuse-ui` как отдельный product не существует — нужны `skip-fuse` + `skip-ui` раздельно. ## Прочие питфоллы - `@State private` → менять на `internal` в Kotlin-стабе - `case none` в enum крашит JNI — избегать - `ViewModifier` → инлайнить в тело View - `PRODUCT_NAME=ReflectApp` в Build Settings не менять - `@AppStorage` поля добавлять вручную в Kotlin-стаб ## Deploy & Signing ```bash # Build and publish (~15s Gradle): ./build-and-publish.sh ``` Android signing keystore: `~/.android/signing/nolvu-release.jks` (alias: nolvu2026) ## Проект `~/Developer/reflect-skip` ## Связанные страницы - [[tech/hermes-eagle-mac]] — Hermes на Eagle, openclaw-claude-proxy - [[tech/hermes-docker-kraken]] — Hermes на Кракене (Docker)