first commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Запуск Berdoff Music на iOS
|
||||
|
||||
Файлы в этой директории представляют собой Swift-оболочку, готовую к запуску на Mac в Xcode.
|
||||
|
||||
## Инструкция по запуску:
|
||||
|
||||
1. Перенесите всю папку `MusicMultiplatform` на компьютер Mac.
|
||||
2. Убедитесь, что установлен **Xcode** и инструмент **Cocoapods** (если используете менеджер зависимостей, хотя для прямого импорта фреймворка он необязателен).
|
||||
3. Самый простой способ запустить проект — открыть его в **Android Studio для Mac** (с установленным плагином Kotlin Multiplatform) или **JetBrains Fleet**. В них появится цель `iosApp` (симулятор или устройство). При нажатии кнопки Run IDE сама сгенерирует проект и свяжет его!
|
||||
4. Альтернативный способ через Xcode:
|
||||
- Создайте новый проект "iOS App" с интерфейсом **SwiftUI** в Xcode внутри папки `iosApp`.
|
||||
- Замените файлы проекта на `iOSApp.swift` и `ContentView.swift` из этой директории.
|
||||
- Перейдите во вкладку **Build Phases** вашего проекта в Xcode.
|
||||
- Нажмите `+` -> `New Run Script Phase` и вставьте скрипт сборки фреймворка Compose:
|
||||
```bash
|
||||
cd "$SRCROOT/.."
|
||||
./gradlew :composeApp:embedAndSignAppleFrameworkForXcode
|
||||
```
|
||||
- Переместите эту фазу `Run Script` НАВЕРХ списка фаз сборки (над Compile Sources).
|
||||
- В настройках **Build Settings** добавьте путь к сгенерированному фреймворку (обычно `$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)`) в `Framework Search Paths`.
|
||||
- Нажмите **Run** в Xcode!
|
||||
@@ -0,0 +1,18 @@
|
||||
import UIKit
|
||||
import SwiftUI
|
||||
import composeApp
|
||||
|
||||
struct ComposeView: UIViewControllerRepresentable {
|
||||
func makeUIViewController(context: Context) -> UIViewController {
|
||||
MainViewControllerKt.MainViewController()
|
||||
}
|
||||
|
||||
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
|
||||
}
|
||||
|
||||
struct ContentView: View {
|
||||
var body: some View {
|
||||
ComposeView()
|
||||
.ignoresSafeArea(.all, edges: .bottom) // Avoid double safe area insetting under screen gesture navigation
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import SwiftUI
|
||||
import composeApp
|
||||
|
||||
@main
|
||||
struct iOSApp: App {
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
ContentView()
|
||||
.ignoresSafeArea(.keyboard) // Don't let SwiftUI handle keyboard, Compose handles it natively
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user