# iOS Flutter + CocoaPods. Нативка через плагины — зависимости смотри в `Podfile` / `Podfile.lock`. ## Окружение Полный Xcode (не только CLT). После апдейта Xcode: ```bash sudo xcode-select -s /Applications/Xcode.app/Contents/Developer sudo xcodebuild -runFirstLaunch ``` Нет нужного iOS в сборке — Xcode → Settings → Platforms, докачать runtime. `flutter doctor -v` для быстрой проверки toolchain. ## Сборка из репозитория Из корня (важно для `Generated.xcconfig`): ```bash flutter pub get cd ios && pod install && cd .. ``` Открывать **`Runner.xcworkspace`**, не `Runner.xcodeproj`. Ключ **Yandex MapKit**: в `Info.plist` — `YandexMapKitApiKey` = `$(YANDEX_MAPKIT_API_KEY)`. Значение задаётся в `ios/Flutter/Debug.xcconfig`, `Release.xcconfig`, `Profile.xcconfig` (в конце файла; опционально перед этим `#include? "Secrets.xcconfig"` — см. `Secrets.xcconfig.example`). В `AppDelegate.swift` до `super.application` вызываются `YMKMapKit.setLocale` / `setApiKey` из plist — иначе SDK падает при регистрации плагина. ## Подпись Runner → Signing & Capabilities, свой Team. Bundle id: `com.sparkit.beHappy` — должен совпадать с App ID в developer portal под TestFlight / App Store. ## Артефакты ```bash flutter build ipa ``` `.ipa` — в `build/ios/ipa/` (точный путь Flutter печатает в конце). Альтернатива: Xcode → Archive → Distribute. `ExportOptions.plist` в репу не коммитим. ## Симулятор ```bash flutter devices flutter run -d ``` У `mobile_scanner` 5.x в Pods тянется Google ML Kit; на симуляторах Apple Silicon под свежим iOS Xcode часто ругается на arm64 и криво матчит destination. Если `flutter run` на симе отвалился — собери на **физическом устройстве** или проверь обновления плагина / обходы в `Podfile` под твою связку Xcode + runtime. ## Ссылки [Flutter: iOS deployment](https://docs.flutter.dev/deployment/ios)