Ответ 1
- Удалить существующую папку
ios
из корня проекта флаттера. - Запустите эту команду
flutter create -i swift.
Эта команда создаст только каталог ios
с поддержкой swift.
Я хочу знать, есть ли способ включить быструю поддержку проекта флаттера. Я только включил поддержку Kotlin при создании проекта. Мне тоже нужно включить Swift. Есть ли команда, которую я могу выполнить, или любая настройка в плагине флаттера для Android studio, где я могу включить, или есть возможность включить в Xcode?
Это то, что я хочу сделать, но для существующего проекта Flutter
ios
из корня проекта флаттера.flutter create -i swift.
Эта команда создаст только каталог ios
с поддержкой swift.
Ну, я сейчас ищу то же самое, также я включаю поддержку kotlin... так, как включить поддержку swift или kotlin для существующего проекта?
flutter create -i swift -a kotlin .
* Снова примените свои изменения в папке iOS (он же info.plist), теперь в папке Runner, теперь у вас нет файлов main.m и AppDelegate.h, вместо этого у вас есть AppDelegate.swift на быстром языке, так что если вам нужно поставить API там код другой.
* Если вы применили строку -a kotlin, проверьте предыдущие изменения файлов в папке Android (пример: проверьте код миграции AndroidX в build.gradle - gradle.properties, проверьте манифест), потому что команда добавляет некоторый код или полностью изменяет некоторые файлы.
Также, если вы хотите, вы можете удалить папку android/app/src/main/java, потому что теперь приложение использует папку kotlin
Малоизвестный секрет - вы можете запустить flutter create.
в каталоге приложения Flutter, и он восстановит проект, воссоздав все отсутствующие файлы. Так что, если у вас уже есть проект, созданный с помощью Objective-C и Java, вы можете запустить:
flutter create . -i swift -a kotlin
конвертировать хост-приложение в Kotlin и Swift.
(Игнорируй Kotlin ты хочешь, но мой опыт таков, что просто оставь это там)
Просто откройте свой PodFile в [Your_Project]/ios/Podfile
И добавьте config.build_settings['SWIFT_VERSION'] = '4.1'
в часть post_install. При необходимости измените Swift Version.
Пример:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.1' # required by simple_permission
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
Для сценария, в котором у вас уже есть модуль ios
частично написанный на Objective-C, и теперь вы просто хотите использовать код Swift, тогда я предлагаю вам щелкнуть правой кнопкой мыши на ios
в project window
и выбрать Open iOS module in XCode
из контекстного меню.
Чем вы можете просто следовать этим инструкциям: https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_swift_into_objective-c
Если вы планируете переписать модуль в Swift, я бы создал новый проект с тем же именем, что и у вашего оригинала, и включил поддержку Swift. Чем бы я просто скопировал весь модуль ios
в ваш оригинальный проект.
Заголовок моста должен быть создан. Откройте проект с помощью XCode. Затем выберите Файл → Создать → Файл → Файл Swift. При создании файла swift будет отображаться диалоговое окно (поскольку этот файл удален, можно использовать любое имя). XCode спросит вас, хотите ли вы создать Bridging Header, нажмите yes. Убедитесь, что у вас есть use_frameworks! в блоке Runner, в ios/Podfile。 Убедитесь, что в вашем XCode выбран SWIFT_VERSION 4.2 → Настройки сборки Сделать трепетать чистым Перейдите в папку ios, удалите Podfile.lock и Pods, а затем выполните pod install --repo-update
Сначала вам нужно получить файл AppDelegate.swift
Вы можете сделать это, сгенерировав новый проект flutter create -i swift
Файл будет расположен по пути: ios/Runner/AppDelegate.swift
Или скопируйте приведенный ниже код и создайте файл с тем же именем (взят из нового проекта для флаттера 1.9.x)
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
Затем удалите файлы из ios/Runner
: AppDelegate.m
, AppDelegate.h
, main.m
(если он существует). Затем мы заходим в xcode и удаляем в нем эти файлы.
В диспетчере файлов скопируйте файл AppDelegate.swift
в ios/Runner
. Откройте папку ios/Runner
Затем возьмите и перетащите файл AppDelegate.swift
в ios/Runner
. Перетащите только в xcode!
Отметьте указанные пункты, после завершения нажмите
Создать мост
Запустите flutter clean
, pod install
(в папке ios) по одному. И запустить с помощью flutter run
Готово!