Flutter-geolocator: Kompilasi kesalahan di iOS

Dibuat pada 15 Jan 2019  ·  3Komentar  ·  Sumber: Baseflow/flutter-geolocator

Laporan Bug

Ada berbagai peringatan yang menyebabkan kegagalan build saat menambahkan geolocator: ^2.1.1 ke proyek dan menargetkan iOS.

Gagal membuat aplikasi iOS
Output kesalahan dari Xcode build:
↳.
* BANGUN GAGAL *

keluaran Xcode:
↳.
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:50 :59: error: 'openSettingsURLString' telah diubah namanya menjadi 'UIApplicationOpenSettingsURLString'
penjaga biarkan url = URL(string: UIApplication.openSettingsURLString),
^ ~ ~ ~ ~
UIAaplikasiOpenSettingsURLString
UIKit.UIAp plication :64 :22: catatan: 'openSettingsURLString' diperkenalkan di Swift 4.2
kelas publik biarkan openSettingsURLString: String
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:55 :45: error: label argumen '(rawValue:)' tidak cocok dengan kelebihan yang tersedia
biarkan optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue: "universalLinksOnly"): NSNumber(nilai: true)]
^ ~ ~ ~ ~ ~ ~ ~ ~~
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:55 :45: catatan: kelebihan untuk 'UIApplication.OpenExternalURLOptionsKey' ada dengan daftar parameter yang cocok sebagian ini: (coder: NSCoder), (stringLiteral: StaticString), (format: NSString, CVarArg...), (string: NSString ), (utf8String: UnsafePointer), (UTF8String: UnsafePointer), (string: String), (contentsOfFile: String), (contentsOf: URL), (contentsOfURL: URL), (cString: UnsafePointer), (CString: UnsafePointer)
biarkan optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue: "universalLinksOnly"): NSNumber(nilai: true)]
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:59:91: error: 'openSettingsURLString' telah diubah namanya menjadi ' UIAaplikasiOpenSettingsURLString'
biarkan sukses = UIApplication.shared.openURL(URL.init(string: UIApplication.openSettingsURLString)!)
^ ~ ~ ~ ~
UIAaplikasiOpenSettingsURLString
UIKit.UIApplication:64:22: catatan: 'openSettingsURLString' diperkenalkan di Swift 4.2
kelas publik biarkan openSettingsURLString: String
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:99:54: error: closure parameter tuple '(key: String , nilai: Any)' tidak mendukung destrukturisasi
return Dictionary(uniqueKeysWithValues: input.map { key, value in (UIApplication.OpenExternalURLOptionsKey(rawValue: key), value)})
^ ~ ~~(arg) -> <#Hasil#> biarkan (kunci, nilai) = arg;























~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:111:45: warning: perbandingan antara pointer dan integer ('NSInteger ' (alias 'panjang') dan 'void *')if (self->_previousStatusBarStyle != nil) {~ ~ ~ ~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:108:18: warning: ' openURL:options :completionHandler:' hanya tersedia di iOS 10.0 atau yang lebih baru [-Wunguarded-availability][URL terbuka aplikasi : url^ ~ ~Dalam modul 'UIKit' diimpor dari /Volumes/PROJECTS/nomadradar-app/repo/nomadradar/ios/Pods/Target Support Files/url_launcher/url_launcher-prefix.

*)penyelesaian opsiHandler:(void (^ __nullable)(BOOL sukses))penyelesaian 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: catatan: lampirkan ' openURL:options :completionHandler: ' dalam cek @available untuk membungkam peringatan ini[URL terbuka aplikasi : url^ ~ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: peringatan: 'SFSafariViewController' hanya tersedia di iOS 9.0 atau lebih baru [-Wunguarded-availability]SFSafariViewController *safari = [[Alokasi SFSafariViewController] di dalamnyaWithURL:url ];^ ~ ~ ~ ~~Dalam modul 'SafariServices' diimpor dari /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/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: note: ' SFSafariViewController' telah secara eksplisit ditandai sebagian di sini@interface SFSafariViewController : UIViewController^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: catatan: lampirkan 'SFSafariViewController' di @available centang untuk membungkam peringatan iniSFSafariViewController *safari = [[Alokasi SFSafariViewController] di dalamnyaWithURL:url ];^ ~ ~ ~ ~~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: peringatan: 'SFSafariViewController' hanya tersedia di iOS 9.0 atau lebih baru [-Wunguarded-availability]SFSafariViewController *safari = [[Alokasi SFSafariViewController] di dalamnyaWithURL:url ];^ ~ ~ ~ ~~~~
Dalam modul 'SafariServices' diimpor dari /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/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: note: ' SFSafariViewController' telah secara eksplisit ditandai sebagian di sini
@interface SFSafariViewController : UIViewController
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: catatan: lampirkan 'SFSafariViewController' di @available centang untuk membungkam peringatan ini
SFSafariViewController *safari = [[Alokasi SFSafariViewController] di dalamnyaWithURL:url ];

Perilaku yang diharapkan

Tidak ada kesalahan.

Langkah-langkah reproduksi

Konfigurasi

Versi: ^2.1.1

[✓] Flutter (Saluran stabil, v1.0.0, di Mac OS X 10.13.6 17G4015, lokal de-DE)
• Flutter versi 1.0.0 di /Users/dirkeisold/programming/flutter
• Revisi kerangka kerja 5391447fae (7 minggu lalu), 29-11-2018 19:41:26 -0800
• Revisi mesin 7375a0f414
• Dart versi 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[✓] Rantai alat Android - kembangkan untuk perangkat Android (Android SDK 28.0.3)
• Android SDK di /Users/dirkeisold/programming/android-sdk-macosx
• Lokasi Android NDK tidak dikonfigurasi (opsional; berguna untuk dukungan pembuatan profil asli)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = /Users/dirkeisold/programming/android-sdk-macosx
• Biner Java di: /Applications/Android Studio 3.2.app/Contents/jre/jdk/Contents/Home/bin/java
• Lingkungan Runtime OpenJDK versi Java (build 1.8.0_152-release-1136-b06)
• Semua lisensi Android diterima.

[✓] Rantai alat iOS - kembangkan untuk perangkat iOS (Xcode 10.1)
• Xcode di /Applications/Xcode.app/Contents/Developer
• Xcode 10.1, Bangun versi 10B61
• ios-deploy 2.0.0
• CocoaPods versi 1.5.3

Komentar yang paling membantu

@deisold , @tommaso1 , alasan Anda mendapatkan masalah ini mungkin karena Anda masih mengkompilasi dengan versi SWIFT yang lebih lama (saya percaya default saat ini adalah 4.1). Anda cukup mengubahnya dengan memperbarui Podfile Anda menggunakan petunjuk berikut.

Di Podfile Anda, pastikan Anda menambahkan baris use_frameworks! (yang terbaik adalah menambahkan baris ini langsung di bawah target Runner lakukan seperti ini:

target 'Runner' do
  use_frameworks!

Juga di Podfile Anda, pastikan Anda menambahkan baris config.build_settings['SWIFT_VERSION'] = '4.2' ke blok post_installer. Setelah menambahkan baris ini, blok post_installer akan terlihat seperti ini:

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

Semua 3 komentar

+1

coba flutter clean flutter clean

@deisold , @tommaso1 , alasan Anda mendapatkan masalah ini mungkin karena Anda masih mengkompilasi dengan versi SWIFT yang lebih lama (saya percaya default saat ini adalah 4.1). Anda cukup mengubahnya dengan memperbarui Podfile Anda menggunakan petunjuk berikut.

Di Podfile Anda, pastikan Anda menambahkan baris use_frameworks! (yang terbaik adalah menambahkan baris ini langsung di bawah target Runner lakukan seperti ini:

target 'Runner' do
  use_frameworks!

Juga di Podfile Anda, pastikan Anda menambahkan baris config.build_settings['SWIFT_VERSION'] = '4.2' ke blok post_installer. Setelah menambahkan baris ini, blok post_installer akan terlihat seperti ini:

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
Apakah halaman ini membantu?
0 / 5 - 0 peringkat