Flutter-geolocator: Ошибка компиляции на iOS

Созданный на 15 янв. 2019  ·  3Комментарии  ·  Источник: Baseflow/flutter-geolocator

🐛 Отчет об ошибке

Существуют различные предупреждения, вызывающие сбой сборки при добавлении геолокатора: ^2.1.1 в проект и таргетинге на iOS.

Не удалось создать приложение для iOS.
Вывод ошибки из сборки Xcode:

* ПОСТРОЙКА НЕ ПРОШЛА *

Выход Xcode:

/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift: 50 : 59: ошибка: «openSettingsURLString» был переименован в «UIApplicationOpenSettingsURLString»
URL-адрес защиты пусть = URL (строка: UIApplication.openSettingsURLString),
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIAp plication :64 :22: примечание: 'openSettingsURLString' был представлен в Swift 4.2.
открытый класс пусть openSettingsURLString: String
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift: 55 : 45: ошибка: метки аргументов '(rawValue :)' не соответствуют ни одной из доступных перегрузок
let optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey (rawValue: "universalLinksOnly"): NSNumber (значение: true)]
^ ~ ~ ~ ~ ~ ~ ~~
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift: 55 : 45: примечание: существуют перегрузки для «UIApplication.OpenExternalURLOptionsKey» с этими частично совпадающими списками параметров: (coder: NSCoder), (stringLiteral: StaticString), (format: NSString, CVarArg...), (string: NSString ), (utf8String: UnsafePointer), (UTF8String: UnsafePointer), (строка: строка), (contentsOfFile: строка), (contentsOf: URL), (contentsOfURL: URL), (cString: UnsafePointer), (CString: UnsafePointer)
let optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey (rawValue: "universalLinksOnly"): NSNumber (значение: true)]
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:59:91: ошибка: «openSettingsURLString» был переименован в « UIApplicationOpenSettingsURLString'
пусть успех = UIApplication.shared.openURL (URL.init (строка: UIApplication.openSettingsURLString)!)
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIApplication: 64: 22: примечание: «openSettingsURLString» был представлен в Swift 4.2.
открытый класс пусть openSettingsURLString: String
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:99:54: ошибка: параметр кортежа закрытия '(ключ: строка , значение: Any)' не поддерживает деструктурирование
return Dictionary (uniqueKeysWithValues: input.map {ключ, значение в (UIApplication.OpenExternalURLOptionsKey (rawValue: ключ), значение)})
^ ~ ~~(аргумент) -> <#Результат#> let (ключ, значение) = arg;























~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:111:45: предупреждение: сравнение указателя и целого числа ('NSInteger ' (он же 'длинный') и 'пустой *')если (self->_previousStatusBarStyle != ноль) {~ ~ ~ ~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:108:18: предупреждение: ' openURL:options :completionHandler:' доступно только на iOS 10.0 или новее [-Wunguarded-availability][приложение openURL:url^ ~ ~В модуле «UIKit», импортированном из /Volumes/PROJECTS/nomadradar-app/repo/nomadradar/ios/Pods/Target Support Files/url_launcher/url_launcher-prefix.

*) варианты завершенияHandler:(void (^ __nullable)(BOOL успех))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:108:18: примечание: заключить ' openURL:options :completionHandler: ' в проверке @ available , чтобы отключить это предупреждение[приложение openURL:url^ ~ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: предупреждение: «SFSafariViewController» доступен только на iOS 9.0 или новее [-Wunguarded-доступность]SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];^ ~ ~ ~ ~~В модуле «SafariServices», импортированном из /Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDK/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: примечание: ' SFSafariViewController' был явно помечен здесь как частичный@ интерфейс SFSafariViewController : UIViewController^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: примечание: вложите «SFSafariViewController» в @ available установите флажок, чтобы отключить это предупреждениеSFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];^ ~ ~ ~ ~~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: предупреждение: «SFSafariViewController» доступен только на iOS 9.0 или новее [-Wunguarded-доступность]SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];^ ~ ~ ~ ~~~~
В модуле «SafariServices», импортированном из /Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDK/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: примечание: ' SFSafariViewController' был явно помечен здесь как частичный
@ интерфейс SFSafariViewController : UIViewController
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: примечание: вложите «SFSafariViewController» в @ available установите флажок, чтобы отключить это предупреждение
SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];

Ожидаемое поведение

Нет ошибок.

Шаги воспроизведения

Конфигурация

Версия: ^2.1.1

[✓] Flutter (стабильный канал, версия 1.0.0, в Mac OS X 10.13.6 17G4015, языковой стандарт de-DE)
• Flutter версии 1.0.0 в /Users/dirkeisold/programming/flutter.
• Версия фреймворка 5391447fae (7 недель назад), 29.11.2018 19:41:26 -0800
• Версия двигателя 7375a0f414
• Dart версии 2.1.0 (сборка 2.1.0-dev.9.4 f9ebf21297)

[✓] Набор инструментов Android — разработка для устройств Android (Android SDK 28.0.3)
• Android SDK в /Users/dirkeisold/programming/android-sdk-macosx.
• Местоположение Android NDK не настроено (необязательно; полезно для встроенной поддержки профилирования).
• Платформа android-28, инструменты сборки 28.0.3
• ANDROID_HOME = /Users/dirkeisold/programming/android-sdk-macosx
• Двоичный файл Java по адресу: /Applications/Android Studio 3.2.app/Contents/jre/jdk/Contents/Home/bin/java.
• Java-версия OpenJDK Runtime Environment (сборка 1.8.0_152-релиз-1136-b06)
• Принимаются все лицензии Android.

[✓] Набор инструментов iOS — разработка для устройств iOS (Xcode 10.1)
• Xcode в /Applications/Xcode.app/Contents/Developer.
• Xcode 10.1, версия сборки 10B61.
• iOS-развертывание 2.0.0
• CocoaPods версии 1.5.3

Самый полезный комментарий

@deisold , @tommaso1 , причина, по которой вы получаете эту проблему, вероятно, заключается в том, что вы все еще компилируете более старую версию SWIFT (я полагаю, что текущая версия по умолчанию — 4.1). Вы можете просто изменить это, обновив Podfile , используя следующие инструкции.

В вашем подфайле убедитесь, что вы добавили строку use_frameworks! (лучше всего добавить эту строку непосредственно под целевым бегуном, сделайте так:

target 'Runner' do
  use_frameworks!

Также в вашем подфайле убедитесь, что вы добавили строку config.build_settings['SWIFT_VERSION'] = '4.2' в блок post_installer. После добавления этой строки блок post_installer должен выглядеть так:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['SWIFT_VERSION'] = '4.2'
    end
  end
end

Все 3 Комментарий

+1

попробуй флаттер чистый flutter clean

@deisold , @tommaso1 , причина, по которой вы получаете эту проблему, вероятно, заключается в том, что вы все еще компилируете более старую версию SWIFT (я полагаю, что текущая версия по умолчанию — 4.1). Вы можете просто изменить это, обновив Podfile , используя следующие инструкции.

В вашем подфайле убедитесь, что вы добавили строку use_frameworks! (лучше всего добавить эту строку непосредственно под целевым бегуном, сделайте так:

target 'Runner' do
  use_frameworks!

Также в вашем подфайле убедитесь, что вы добавили строку config.build_settings['SWIFT_VERSION'] = '4.2' в блок post_installer. После добавления этой строки блок post_installer должен выглядеть так:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['SWIFT_VERSION'] = '4.2'
    end
  end
end
Была ли эта страница полезной?
0 / 5 - 0 рейтинги