ํ๋ก์ ํธ์ 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),
^ ~ ~ ~ ~
UIApplicationOpenSettingsURL๋ฌธ์์ด
UIKit.UIApp plication:64 :22: ์ฐธ๊ณ : 'openSettingsURLString'์ Swift 4.2์์ ๋์
๋์์ต๋๋ค.
๊ณต๊ฐ ํด๋์ค let openSettingsURLString: ๋ฌธ์์ด
^^
/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
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'์ ์ด๋ฆ์ด ' UIApplicationOpenSettingsURL๋ฌธ์์ด'
์ฑ๊ณตํ์ = UIApplication.shared.openURL(URL.init(string: UIApplication.openSettingsURLString)!)
^ ~ ~ ~ ~
UIApplicationOpenSettingsURL๋ฌธ์์ด
UIKit.UIApplication:64:22: ์ฐธ๊ณ : 'openSettingsURLString'์ Swift 4.2์์ ๋์
๋์์ต๋๋ค.
๊ณต๊ฐ ํด๋์ค let openSettingsURLString: ๋ฌธ์์ด
^^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:99:54: ์ค๋ฅ: ํด๋ก์ ํํ ๋งค๊ฐ๋ณ์ '(ํค: ๋ฌธ์์ด , ๊ฐ: Any)'๋ ๊ตฌ์กฐํ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
๋ฐํ ์ฌ์ (uniqueKeysWithValues: input.map { ํค, ๊ฐ์ ๊ฐ(UIApplication.OpenExternalURLOptionsKey(rawValue: ํค), ๊ฐ)})
^ ~ ~~(์ธ์) -> <#๊ฒฐ๊ณผ#> let (ํค, ๊ฐ) = ์ธ์; ~ ~ ~ ^ ~~ ~ ~ ~ ~ ^ ~/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][์ ํ๋ฆฌ์ผ์ด์
์คํURL:url^ ~ ~/Volumes/PROJECTS/nomadradar-app/repo/nomadradar/ios/Pods/Target Support Files/url_launcher/url_launcher-prefix์์ ๊ฐ์ ธ์จ 'UIKit' ๋ชจ๋์์. *) ์ต์
completionHandler:(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: ์ฐธ๊ณ : enclose ' openURL:options :completionHandler: ' @available ๊ฒ์ฌ์์ ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํฉ๋๋ค.[์ ํ๋ฆฌ์ผ์ด์
์คํURL: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-availability]SFSafariViewController *safari = [[SFSafariViewController ํ ๋น] in itWithURL:url ];^ ~ ~ ~ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5์์ ๊ฐ์ ธ์จ 'SafariServices' ๋ชจ๋์์:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: ์ฐธ๊ณ : ' SFSafariViewController'๋ ์ฌ๊ธฐ์ ๋ถ๋ถ์ ์ผ๋ก ๋ช
์์ ์ผ๋ก ํ์๋์์ต๋๋ค.@interface 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 ํ ๋น] 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-availability]SFSafariViewController *safari = [[SFSafariViewController ํ ๋น] in itWithURL:url ];^ ~ ~ ~ ~
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5์์ ๊ฐ์ ธ์จ 'SafariServices' ๋ชจ๋์์:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: ์ฐธ๊ณ : ' SFSafariViewController'๋ ์ฌ๊ธฐ์ ๋ถ๋ถ์ ์ผ๋ก ๋ช
์์ ์ผ๋ก ํ์๋์์ต๋๋ค.
@interface 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 ํ ๋น] in itWithURL:url ];
์ค๋ฅ๊ฐ ์์ต๋๋ค.
๋ฒ์ : ^2.1.1
[โ] Flutter(Mac OS X 10.13.6 17G4015, de-DE ๋ก์ผ์ผ์์ ์์ ์ ์ธ ์ฑ๋, v1.0.0)
โข /Users/dirkeisold/programming/flutter์ Flutter ๋ฒ์ 1.0.0
โข Framework ๊ฐ์ 5391447fae(7์ฃผ ์ ), 2018-11-29 19:41:26 -0800
โข ์์ง ๋ฒ์ 7375a0f414
โข Dart ๋ฒ์ 2.1.0(๋น๋ 2.1.0-dev.9.4 f9ebf21297)
[โ] Android ํด์ฒด์ธ - Android ๊ธฐ๊ธฐ์ฉ ๊ฐ๋ฐ(Android SDK 28.0.3)
โข /Users/dirkeisold/programming/android-sdk-macosx์ Android SDK
โข 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 ๋ฐํ์ ํ๊ฒฝ(๋น๋ 1.8.0_152-release-1136-b06)
โข ๋ชจ๋ Android ๋ผ์ด์ ์ค๊ฐ ํ์ฉ๋ฉ๋๋ค.
[โ] iOS ํด์ฒด์ธ - iOS ๊ธฐ๊ธฐ์ฉ ๊ฐ๋ฐ(Xcode 10.1)
โข /Applications/Xcode.app/Contents/Developer์ Xcode
โข Xcode 10.1, ๋น๋ ๋ฒ์ 10B61
โข ios-deploy 2.0.0
โข CocoaPods ๋ฒ์ 1.5.3
+1
ํ๋ฌํฐ ํด๋ฆฐ ์๋ flutter clean
@deisold , @tommaso1 , ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ ์๋ง๋ ์ด์ SWIFT ๋ฒ์ ์ ๋ํด ์ปดํ์ผ ์ค์ด๊ธฐ ๋๋ฌธ์ผ ๊ฒ์
๋๋ค(ํ์ฌ ๊ธฐ๋ณธ๊ฐ์ 4.1์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค). ๋ค์ ์ง์นจ์ ๋ฐ๋ผ Podfile
๋ฅผ ์
๋ฐ์ดํธํ์ฌ ๊ฐ๋จํ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
Podfile์์ use_frameworks ๋ผ์ธ์ ์ถ๊ฐํ๋์ง ํ์ธํ์ธ์! (๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋์ Runner ๋ฐ๋ก ์๋์ ์ด ์ค์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
target 'Runner' do
use_frameworks!
๋ํ Podfile์์ 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
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@deisold , @tommaso1 , ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ ์๋ง๋ ์ด์ SWIFT ๋ฒ์ ์ ๋ํด ์ปดํ์ผ ์ค์ด๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค(ํ์ฌ ๊ธฐ๋ณธ๊ฐ์ 4.1์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค). ๋ค์ ์ง์นจ์ ๋ฐ๋ผ
Podfile
๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ๊ฐ๋จํ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.Podfile์์ use_frameworks ๋ผ์ธ์ ์ถ๊ฐํ๋์ง ํ์ธํ์ธ์! (๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋์ Runner ๋ฐ๋ก ์๋์ ์ด ์ค์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
๋ํ Podfile์์
config.build_settings['SWIFT_VERSION'] = '4.2'
ํ์ post_installer ๋ธ๋ก์ ์ถ๊ฐํ๋์ง ํ์ธํ์ญ์์ค. ์ด ์ค์ ์ถ๊ฐํ ํ post_installer ๋ธ๋ก์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.