flutter build ios --release ์คํ :
=== ๊ตฌ์ฑ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ํฌ๋์ firebase_messaging ํ๊ฒ ๊ตฌ์ถ ===
/ Users / * * / development / flutter / .pub-cache / hosted / pub.dartlang.org / geolocator-0.0.1 / ios / Classes / GeolocatorPlugin.m : 2 : 9 : ์น๋ช
์ ์ธ ์ค๋ฅ : 'geolocator / geolocator-Swift .h 'ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.
๋ด ์์ฌ ์ถ๋ ฅ :
์์ฌ ์์ฝ (๋ชจ๋ ์ธ๋ถ ์ฌํญ์ ๋ณด๋ ค๋ฉด flutter doctor -v๋ฅผ ์คํํ์ญ์์ค) :
[โ] Flutter (์ฑ๋ ๊ฐ๋ฐ, v0.5.5, Mac OS X 10.13.3 17D102, ๋ก์ผ์ผ pt-PT)
[โ] Android ํด์ฒด์ธ-Android ๊ธฐ๊ธฐ ์ฉ ๊ฐ๋ฐ
โ Android SDK๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
https://developer.android.com/studio/index.html ์์ Android Studio๋ฅผ ์ค์นํฉ๋๋ค.
์ฒ์ ์์ํ ๋ Android SDK ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค.
(๋๋ ์์ธํ ์ง์นจ์ https://flutter.io/setup/#android-setup์ ๋ฐฉ๋ฌธํ์ญ์์ค).
Android SDK๊ฐ ์ฌ์ฉ์ ์ง์ ์์น์ ์ค์น๋ ๊ฒฝ์ฐ $ ANDROID_HOME์ ํด๋น ์์น๋ก ์ค์ ํฉ๋๋ค.
[โ] iOS ํด์ฒด์ธ-iOS ๊ธฐ๊ธฐ ์ฉ ๊ฐ๋ฐ (Xcode 9.2)
[โ] Android Studio (์ค์น๋์ง ์์)
[!] VS Code (๋ฒ์ 1.14.2)
[!] ์ฐ๊ฒฐ๋ ์ฅ์น
! ์ฌ์ฉ ๊ฐ๋ฅํ ์ฅ์น ์์
@ manuelgomes2 ๋ฌธ์ ํด ์ฃผ์ ์ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
๋ฌธ์ ๋ฅผ ๋ถ์ํ๊ณ ์ฌํ ํ ์ ์์๊ณ ์์ ์์ ์ค์ ๋๋ค (PR # 18 ์ฐธ์กฐ).
@ manuelgomes2 Google์ ๋ฌธ์ ํ ํ ํ์ฌ Swift ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ Objective-C (๊ธฐ๋ณธ๊ฐ)๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ ๋ Flutter ์ฑ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. Stack Overflow ์ง๋ฌธ์ ๋ํ ํผ๋๋ฐฑ์ ์ฐธ์กฐํ์ญ์์ค.
ํ์ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ์ iOS์์ Swift
๋ฅผ ์ฌ์ฉํ๋๋ก ์ฑ์ ์์ฑํ๋ ๊ฒ์
๋๋ค (์ : ๋ค์ Flutter CLI ๋ช
๋ น flutter create -i swift my_app
, -i swift ์ค์์น ํ์ธ). ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์ฑ ํฌ๊ธฐ์ ์๋นํ ์ค๋ฒ ํค๋๋ฅผ ๋ฐ์์ํฌ ๊ฒ์ด๋ผ๋ ์ ์ ๊ฒฝ๊ณ ํด์ผํฉ๋๋ค.
๊ทธ ๋์ ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ํ์ํ์ง ์๊ณ ์ฑ ํฌ๊ธฐ์ ๋ถ์ ์ ์ธ ์ํฅ์์ฃผ์ง ์๋๋ก Swift์์ Objective-C๋ก ํ๋ฌ๊ทธ์ธ์ ๋ฒ์ญํ๋ ์์ ์ ์งํํ ๊ฒ์ ๋๋ค.
์๊ฐ์ ๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.ํ์ง๋ง "flutter create -i swift my_app"์ ํด๊ฒฐ์ฑ ์ด ์๋๋๋ค. ์ฒ์๋ถํฐ "-i swift"๋ฅผ ์ฌ์ฉํ์ฌ iOS ์ฑ์ ๋ง๋ค์์ง ๋ง ๋ฌธ์ ๊ฐ ์ง์๋ฉ๋๋ค.
ํ ๊ฐ์ง ์ด์ํ ์ ์ XCode์์ GeneratedPluginRegistrant.m์ ์ด๋ฉด ํ๋ฌ๊ทธ์ธ์ด ๋ค๋ฅธ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ์ ๋ํด ๋ค๋ฅธ ์์ (๋ณด๋ผ์)์ผ๋ก ๋ํ๋๊ณ ์ด๋ฆ์ "FLT"๋ก ์์ํ์ง ์๋ ์ ์ผํ ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ์ฃ์กํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์ ๊ด๋ จ์ด ์๋์ง ์๊ณ ์์ต๋๊น? XCode์์์ด ํ์ผ์ ์ด๋ฉด ๋์ผํ๊ฒ ํ์๋ฉ๋๊น?
๊ฐ์ฌํฉ๋๋ค.
(์คํฌ๋ฆฐ ์ท ์ฐธ๊ณ ) :
@mvanbeusekom ๋ ๋ค๋ฅธ ์
๋ฐ์ดํธ, ๋ง์นจ๋ด ์ฑ์ ๋น๋ํ์ต๋๋ค. ๋ค์ ์ค์ด ๋ด podfile์ ์ฃผ์์ผ๋ก ์ถ๊ฐ๋์์ต๋๋ค.
use_frameworks!
์ค์ ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๋ฉด ์ฑ์ด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ๋ฉ๋๋ค. ์ด์ ์ฑ์ด ์์์ ์ถฉ๋ํ์ง๋ง ์ดํด ๋ณด๊ฒ ์ต๋๋ค (์ด ์ฑ์ด ios์์ ์์น ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ผ๋ถ ์ค์ ์ด ํ์ํฉ๋๋ค)
๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@mvanbeusekom์ ๋ฐฉ๊ธ ์๋ก ๋ง๋ ํ๋ฌํฐ ์ฑ์์ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์คํํ์ต๋๋ค. ์ฌ์ค- "use_frameworks!" ์กด์ฌํ์ง ์์ผ๋ฉด ๋น๋๊ฐ ์คํจํฉ๋๋ค.
๋ํ ์ฑ ์คํ ์ด์ ๋น๋๋ฅผ ์
๋ก๋ํ์ง๋ง (๋ฒ ํ ์คํธ) ๋ชจ๋ ๊ฒ์ด ์์กฐ๋กญ๊ฒ ์งํ๋์์ต๋๋ค.
AFAIK, ์ ์ด๋ ๋์๊ฒ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@ manuelgomes2 ๋ ์ข์ ์์์ ๋๋ค. ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
ํ์คํ, ์ฑ์ด ์์๋ ๋ ์ถฉ๋์ด ๋ฐ์ํ์ ๊ฐ๋ฅ์ฑ์ด์๋ ์ด์ ๋ ์์น ๊ธฐ๋ฐ ์๋น์ค ์ฌ์ฉ ๊ถํ์ด Info.plist
ํ์ผ์ ๋๋ฝ๋์ด ์๋ค๋ ์ฌ์ค๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค (์ถ๊ฐ ํ ๊ถํ์ ๋ํ ๋ฌธ์๋ README.md
ํ์ผ).
์ธํฐ๋ท ๊ฒ์์ ํ ํ ๋์์ด ๋ ๋งํ ๋ค์ ์ค๋ ๋๋ฅผ ์ฐพ์์ต๋๋ค (README์๋ ์ถ๊ฐ ํ ๊ฒ์ ๋๋ค) : https://github.com/flutter/flutter/issues/16049
์๋ ํ์ธ์!
์ด ๋ฌธ์ ๋ฅผ๋ณด๊ณ ์ฒ์์๋ @ manuelgomes2 ๊ฐ firebase_messaging
๋ฐ geolocator
) ์ฌ์ฉํ๊ณ ์์๊ณ ๋ฌธ์ ๊ฐ ์์์ ์์ ์ต๋๋ค.
๋์ค์ ๊ทธ๋ firebase_messaging
์์ด ์๋ก์ด ์ฑ์ ๋ง๋ค๊ณ ๋น๋ ํ ์์์์ต๋๋ค.
๋ง๋์, ๊ฐ์ ํ๋ก์ ํธ์์ ๋ ๊ฐ์ง๋ฅผ ํจ๊ป ์ฌ์ฉํ ์ ์์์ต๋๊น?
๊ทธ๊ฒ์ ํ์ฌ ๋ด ๋ฌธ์ ์ ๋๋ค. ๋ถ๋ช ํ Firebase ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ๋ FB์๋ use_frameworks๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ Swift ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ๊ณผ ๊ฒฐํฉ ํ ์ ์์ต๋๋ค! ๋์ค๋ ค๋ฉด Swift ์ฝ๋ ํ๋ฌ๊ทธ์ธ์๋ use_frameworks๊ฐ ํ์ํฉ๋๋ค! ์! :-/
(์ค์ ๋ก ๊ทธ๊ฒ์ด ๊ฑฐ์ง ์ผ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค)
์ฐ๊ฒฐ๋ SO ์ง๋ฌธ์ @ffeu ์์ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ์ธ๊ธํ์ต๋๋ค.
The โSwift Language Versionโ (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.
๋์๊ฒ ์ด๊ฒ์ ๋ค์ ์ค์ ์ถ๊ฐํ์ฌ Podfile
์ Swift ๋ฒ์ ์ ์ง์ ํด์ผํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
config.build_settings['SWIFT_VERSION'] = '4.1'
๋ค์๊ณผ ๊ฐ์ด post_install
๋ธ๋ก์ ์ผ๋ถ ์ฌ์ผํฉ๋๋ค.
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.1'
end
end
end
ํ ์คํธํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ํจ๊ณผ๊ฐ ์์์ง ํ์คํ์ง ์์ง๋ง ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋์์ด๋๋์ง ์๋ ค์ฃผ์ธ์.
์ถ์ ๋๋ ๋ํ Stack Overflow์ ๋ํ ๋ต๋ณ์ผ๋ก ์์ ๋ด์ฉ์ ๊ฒ์ํ์ต๋๋ค.
์๋ ํ์ธ์ Maurits, ์๋ํ์ต๋๋ค! \์ํ/
์ด์ ์ ํ ์คํธํ์ง๋ง '3.2'๋ก๋ง ํ ์คํธํ์ต๋๋ค! 4.0๊ณผ 4.1 ๋ชจ๋์์ ์๋ํ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค!
3.2, 4.0, 4.1 ๋ฐ 4.2๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ฌ ํ
์คํธํ์ง๋ง ์ฌ์ ํ XCode์ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค.
'geolocator/geolocator-Swift.h' file not found
์ด๊ฒ์ ๋ด ํ์ผ์ ์ฝ๋์
๋๋ค.
#import "GeolocatorPlugin.h"
#import <geolocator/geolocator-Swift.h> // this line causes error
<strong i="8">@implementation</strong> GeolocatorPlugin
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
[SwiftGeolocatorPlugin registerWithRegistrar:registrar];
}
<strong i="9">@end</strong>
๋๊ตฌ๋ ์ง ๋๋ฅผ ์๋ด ํ ์ ์์ต๋๊น?
Xcode ๋ฒ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@mvanbeusekom์ ๋ฐฉ๊ธ ์๋ก ๋ง๋ ํ๋ฌํฐ ์ฑ์์ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์คํํ์ต๋๋ค. ์ฌ์ค- "use_frameworks!" ์กด์ฌํ์ง ์์ผ๋ฉด ๋น๋๊ฐ ์คํจํฉ๋๋ค.
๋ํ ์ฑ ์คํ ์ด์ ๋น๋๋ฅผ ์ ๋ก๋ํ์ง๋ง (๋ฒ ํ ์คํธ) ๋ชจ๋ ๊ฒ์ด ์์กฐ๋กญ๊ฒ ์งํ๋์์ต๋๋ค.
AFAIK, ์ ์ด๋ ๋์๊ฒ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.