Flutter: ์—ฌ๋Ÿฌ ๋ช…๋ น์€ '/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 08์›” 16์ผ  ยท  50์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: flutter/flutter

MacO ํ™˜๊ฒฝ์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋””๋ฒ„๊น…ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๋ช…๋ น์€ '/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
1) ๋Œ€์ƒ 'Runner'์—๋Š” '/ios/Flutter/Flutter.framework'์—์„œ '/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework'๋กœ ๋ณต์‚ฌ ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค.
2) ํ•ด๋‹น ๋ช…๋ น์€ Target 'Runner'์˜ ๋ช…๋ น์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ๋‹จ๊ณ„ "[CP] Embed Pods Frameworks"
๊ฒฝ๊ณ : ์ค‘๋ณต๋œ ์ถœ๋ ฅ ํŒŒ์ผ ๋ฌด์‹œ: '//build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework'(๋Œ€์ƒ 'Runner'์—์„œ)
์ฐธ๊ณ : ์ƒˆ ๋นŒ๋“œ ์‹œ์Šคํ…œ ์‚ฌ์šฉ์ฐธ๊ณ : ๋นŒ๋“œ ๊ณ„ํš ๊ณ„ํš: ๋นŒ๋“œ ์„ค๋ช… ๊ตฌ์„ฑ

๋งฅ 10.14 ๋ฒ ํƒ€
์—‘์Šค์ฝ”๋“œ 10 ๋ฒ ํƒ€

๊ทธ๊ฒƒ์„ ๊ณ ์น˜๋Š” ๋ฐฉ๋ฒ•? ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

annoyance crowd platform-ios crash tool

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Xcode 10์—์„œ Runner ์ž‘์—… ๊ณต๊ฐ„ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ File , Workspace Settings ํ•˜์—ฌ ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ Legacy Build System .

schermafbeelding 2018-08-16 om 14 10 10

๋ชจ๋“  50 ๋Œ“๊ธ€

์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
ํ”„๋กœ์ ํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ์…จ๋‚˜์š”?
์–ด๋–ค ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฉฐ ์–ด๋–ค ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๊นŒ?

flutter doctor -v ์˜ ์ถœ๋ ฅ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

Xcode 10์—์„œ Runner ์ž‘์—… ๊ณต๊ฐ„ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ File , Workspace Settings ํ•˜์—ฌ ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ Legacy Build System .

schermafbeelding 2018-08-16 om 14 10 10

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ํšจ๊ณผ๊ฐ€์žˆ๋‹ค.

์˜ํ–ฅ์„ ๋ฐ›๋Š” ํ”„๋กœ์ ํŠธ

์ด ๋ฌธ์ œ๋Š” CocoaPods์— ์˜์กดํ•˜๋Š” Xcode 10์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ๋ชจ๋“  Flutter ํ”„๋กœ์ ํŠธ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜์กดํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋‘ ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ต์…˜ 1: ๊ธฐ์กด ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. @gi097 ์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ios/Runner.xcworkspace ์—ด๊ณ  ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ Legacy Build System ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ต์…˜ 2: ์ƒˆ๋กœ์šด Xcode 10 ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    1. ios/Runner.xcworkspace ์—ด๊ธฐ

    2. ํ”„๋กœ์ ํŠธ ํƒ์ƒ‰๊ธฐ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ Runner ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    3. ๊ธฐ๋ณธ ๋ณด๊ธฐ์—์„œ Runner ๋Œ€์ƒ์„ ์„ ํƒํ•œ ๋‹ค์Œ Build Phases ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    4. Embed Frameworks ๋‹จ๊ณ„๋ฅผ ํ™•์žฅํ•˜๊ณ  ํฌํ•จ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ๋ชฉ๋ก์—์„œ Flutter.framework ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    5. - ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋ชฉ๋ก์—์„œ Flutter.framework - ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค( App.framework ์œ ์ง€ ํ•ด์•ผ ํ•จ).

๊ทผ๋ณธ ์›์ธ

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ Flutter.framework๋ฅผ ๋นŒ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Frameworks ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์Ÿ ๋นŒ๋“œ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Runner ํ”„๋กœ์ ํŠธ์˜ Embed Frameworks ๋นŒ๋“œ ๋‹จ๊ณ„
  2. pod install ๊ฐ€ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒ์„ฑํ•˜๋Š” [CP] Embed Pods Frameworks ๋นŒ๋“œ ๋‹จ๊ณ„.

ํ•ญ๋ชฉ (1)์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์—†๋Š” ๊ฒฝ์šฐ(๋”ฐ๋ผ์„œ Xcode ํ”„๋กœ์ ํŠธ์— CocoaPods ํ†ตํ•ฉ์ด ์—†๋Š” ๊ฒฝ์šฐ) ๋นŒ๋“œ๋œ ์•ฑ์— ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ณต์‚ฌ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ญ๋ชฉ (2)๋Š” Flutter์˜ podspec์ด Flutter.framework ๋ฅผ vended_framework๋กœ ์„ ์–ธํ•˜๊ณ  CocoaPods๊ฐ€ CocoaPods ์ข…์†์„ฑ์˜ ์ „์ด์  ํ์‡„์—์„œ ์ด๋Ÿฌํ•œ ๊ฐ vended_framework์— ๋Œ€ํ•œ ๋ณต์‚ฌ ๋‹จ๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰๊ฐ์ ์ธ ์ˆ˜์ •

์ฆ‰๊ฐ์ ์ธ ์ˆ˜์ •์€ ์žฅ๊ธฐ์ ์œผ๋กœ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์ด ๋งˆ๋ จ๋  ๋•Œ๊นŒ์ง€ ๋ ˆ๊ฑฐ์‹œ ๋นŒ๋“œ ์ˆ˜์ •์„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ ํƒ€๋Š” -useNewBuildSystem=NO ๋˜๋Š” -useModernBuildSystem=NO ํ–ˆ์ง€๋งŒ GM ๋นŒ๋“œ์—์„œ ์ œ๊ฑฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ‚ค-๊ฐ’ ์Œ( <key>BuildSystemType</key><string>Original</string> )์„ ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings .

์žฅ๊ธฐ ์ˆ˜์ •

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์˜ต์…˜์€ ์œ„์˜ Embed Frameworks ๋‹จ๊ณ„์—์„œ Flutter.framework๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ ์ข…์†์„ฑ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ํ•ญ์ƒ ํฌ๋“œ ์„ค์น˜์— ์˜์กดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Embed Frameworks ๋‹จ๊ณ„์—์„œ Flutter.framework๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ์ž๋™์œผ๋กœ ํŽธ์ง‘ํ•˜๋ ค๋ฉด Flutter ๋„๊ตฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ : ๋” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ. con: cocoapods๋ฅผ Flutter ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์„ค์น˜ ๋‹จ๊ณ„๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์‹คํ–‰์—๋Š” ์ €์žฅ์†Œ์˜ ๊ฑฐ๋Œ€ํ•˜๊ณ  ๋Š๋ฆฐ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‚ฌ์šฉ ์ค‘์ด๋ฉด ์ž๋™์œผ๋กœ Embed Frameworks ๋‹จ๊ณ„์—์„œ Flutter.framework๋ฅผ ํ™•์ธํ•˜๊ณ  ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ๋” ๋‚˜์€ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์žฅ์  : ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜. ๋‹จ์ : ๋” ๋ณต์žกํ•œ ์ฝ”๋“œ.

์–ด๋Š ์ชฝ์ด๋“  project.pbxproj ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ํŽธ์ง‘ํ•˜๊ณ  ๋‚ด์žฅ ํ”„๋ ˆ์ž„์›Œํฌ ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์ ์ง„์ ์ธ ์ž‘์—…์ด ์•„๋‹ˆ๋ฉฐ ๋” ๋‚˜์€ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

/cc @tvolkert @gspencergoog @dnfield

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋ฅผ ํ”Œ๋Ÿฌ๋”ฉํ•  ์˜๋„๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ๊ฒฐ์˜์•ˆ์„ ๋”ฐ๋ž๋‹ค #20685

ํ•˜์ง€๋งŒ ์ด์ œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

captura de tela 2018-09-18 as 10 06 38 am

๋ˆ„๊ตฌ๋“ ์ง€ ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
@gi097 @cbracken @zoechi @sidealice @hungrymonkey

@tiagosito master ๋ธŒ๋žœ์น˜์— ์ผ์‹œ์ ์œผ๋กœ ํŒจ์น˜๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹น๋ถ„๊ฐ„์€ ์œ„์˜ ๋‚ด ์˜๊ฒฌ์— ๋‚˜์—ด๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

@tiagosito ํŒจ์น˜๊ฐ€ ๋งˆ์Šคํ„ฐ์— ์ž ์‹œ ์ƒ๋ฅ™ํ•ฉ๋‹ˆ๋‹ค. ๋‹น๋ถ„๊ฐ„์€ ์œ„์˜ ๋‚ด ์˜๊ฒฌ์— ๋‚˜์—ด๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

@cbracken ๋‚˜๋Š” ๋‹น์‹ ์ด๋ณด๊ณ  ํ•œ ์˜ต์…˜ 2๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค # 20685

ํ•˜์ง€๋งŒ ์ด ์ž‘์€ ๋ฌธ์ œ๊ฐ€ #21989

์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค #21989

์ €๋Š” ๋งˆ์Šคํ„ฐ ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ง์”€ํ•˜์‹  ํŒจ์น˜๊ฐ€ ๋ฆด๋ฆฌ์Šค๋˜๋ฉด ๋ฒ ํƒ€ ์ฑ„๋„์—์„œ ๋™์ผํ•œ ์†”๋ฃจ์…˜์œผ๋กœ ๊ณต๊ฒฉ์„ ๋ฐ›๊ฒŒ ๋˜๋‚˜์š”?

@cbracken ๊ณผ @gi097 ๊ทธ๋™์•ˆ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

๋˜ํ•œ iOS 12๋กœ ์ด๋™ํ•œ ํ›„ ์˜ค๋Š˜ ์ผ์ฐ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. iOS 12์—๋Š” xcode 10์ด ํ•„์š”ํ–ˆ๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ ํ”Œ๋Ÿฌํ„ฐ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์˜ต์…˜ 2๊ฐ€ ์ž‘๋™ํ–ˆ์ง€๋งŒ ํŒจํ‚ค์ง€ ๋นŒ๋“œ ์บ์‹œ๋ฅผ ์ง€์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

~/flutter/.pub-cache/hosted/
flutter clean
flutter packages get

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋จธ๋ฆฌ๋ฅผ ๊ธ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ๋‚ด ์˜๊ฒฌ ์—์„œ '์ฆ‰์‹œ ์ˆ˜์ •'์ด ๋งˆ์Šคํ„ฐ์— ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ dev ์ฑ„๋„์— ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ์ด๊ฒƒ์€ ์ด์ œ dev ์ฑ„๋„์— ์ƒ๋ฅ™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—„์ฒญ๋‚œ!
Btw, ์ด ํŒจ์น˜๋ฅผ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์–ด๋–ป๊ฒŒ ์ ์šฉํ•ฉ๋‹ˆ๊นŒ? ๋‹จ์ˆœํžˆ ํ”Œ๋Ÿฌํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ?

@tadejkan flutter channel dev ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ dev ์ฑ„๋„๋กœ ์ „ํ™˜ํ•œ ๋‹ค์Œ flutter upgrade ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@cbracken ๋‚จ์•„์žˆ๋Š” ์˜์‹ฌ์€ ... ์šฐ๋ฆฌ๋Š” ๋ ˆ๊ฑฐ์‹œ ์ปดํŒŒ์ผ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํŒจ์น˜๊ฐ€ ์ด๋ฏธ ์ƒˆ ์ปดํŒŒ์ผ ๋ชจ๋“œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์—ฌ๊ธฐ์„œ ์ œ์‹œํ•œ 1๋‹จ๊ณ„๋‚˜ 2๋‹จ๊ณ„์˜ ํ•ด๋ฒ•์„ ์ ์šฉํ•œ ํŒจ์น˜์ธ์ง€ ์•„๋‹ˆ๋ฉด ์ด๋ฏธ ํ™•์ •๋œ ํ•ด๋ฒ•์ด๋ฉฐ ์ด ํŒจ์น˜๊ฐ€ ์–ธ์ œ ๋ฒ ํƒ€ ์ฑ„๋„์— ์ ์šฉ๋  ๊ฒƒ์ธ๊ฐ€?

@tiagosito ํŒจ์น˜๋Š” ์œ„์˜ '์ฆ‰์‹œ ์ˆ˜์ •'(Xcode 10 ์ด์ „ ๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ๋‹ค์‹œ ์„ ํƒ)์„ ๊ตฌํ˜„ํ•˜์—ฌ ์ด๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆ˜์ •์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋Œ€์ฒด ๋น ๋ฅธ ์ˆ˜์ •์ด ์žˆ์ง€๋งŒ iOS ๊ธฐ๋ฐ˜์˜ ๋ชจ๋“  Flutter ์•ฑ(ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์•ฑ ํฌํ•จ)์— ๋Œ€ํ•ด CocoaPods๋ฅผ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. CocoaPods์˜ ์ฒซ ๋ฒˆ์งธ ์‹คํ–‰์„ ์œ„ํ•œ ์ดˆ๊ธฐ ๋‹ค์šด๋กœ๋“œ ํฌ๊ธฐ/์‹œ๊ฐ„์„ ๊ฐ์•ˆํ•  ๋•Œ ์ €๋Š” ๊ทธ ๊ฒฝ๋กœ๋ฅผ ํ”ผํ•˜๋Š” ๊ฒƒ์„ ์ •๋ง๋กœ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์†”๋ฃจ์…˜์€ CocoaPods/ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ ๊ฐ์ง€ํ•˜๊ณ  CocoaPods์— ์˜์กดํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ Flutter.framework ๋ฅผ ์ถœ๋ ฅ ์•ฑ์— ํฌํ•จํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒฝ์šฐ์—๋Š” ํฌํ•จ ๋‹จ๊ณ„๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์ž‘์—…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ง€๊ธˆ 4์ผ ๋™์•ˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ios ๊ตฌ์ถ• ๋ฌธ์ œ์— ์ง๋ฉดํ•ด ์žˆ์Šต๋‹ˆ๋‹ค... ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ๋“ค๊ณผ ์กฐํ•ฉ์„ ์‹œ๋„ํ•˜๋ฉด์„œ ์ง€๊ธˆ ๋งค์šฐ ๋ฌด๊ธฐ๋ ฅํ•ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์Šฌํผ์ง‘๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์˜ค๋ฅ˜ ์ดํ›„์˜ ์ตœ์‹  ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._localAuthenticationInfo in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._keychainInfo in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._hasLocalAuthentication in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._hasKeychain in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._cachedState in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._keychainExpireTime in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_CLASS_$_MDMPasscodeCache in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_METACLASS_$_MDMPasscodeCache in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._hasEnteredBackground in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeState._status in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) duplicate symbol _OBJC_IVAR_$_MDMPasscodeState._info in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) duplicate symbol _OBJC_CLASS_$_MDMPasscodeState in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) duplicate symbol _OBJC_METACLASS_$_MDMPasscodeState in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) ld: 13 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

ld: 13 duplicate symbols for architecture x86_64
Launching lib/main.dart on iPhone XS Max in debug mode...
Xcode build done.
Failed to build iOS app
Error output from Xcode build:
โ†ณ
** BUILD FAILED **
Xcode's output:
โ†ณ
warning: The iOS Simulator deployment target is set to 4.3, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'nanopb')
warning: The iOS Simulator deployment target is set to 6.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'GoogleUtilities')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'GTMSessionFetcher')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'Protobuf')
warning: The iOS Simulator deployment target is set to 5.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'leveldb-library')
warning: The iOS Simulator deployment target is set to 5.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'BoringSSL')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'gRPC-RxLibrary')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'gRPC-Core')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'gRPC-C++')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'gRPC-gRPCCertificates')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'gRPC')
warning: The iOS Simulator deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'gRPC-ProtoRPC')
warning: The iOS Simulator deployment target is set to 6.0, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'cloud_firestore')
duplicate symbol __channel in:
/Users/erikiado/Code/internals/flutter/find_word/build/ios/Debug-iphonesimulator/audioplayers/libaudioplayers.a(AudioplayersPlugin.o)
/Users/erikiado/Code/internals/flutter/find_word/build/ios/Debug-iphonesimulator/firebase_admob/libfirebase_admob.a(FLTMobileAd.o)
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
note: Using new build systemnote: Planning buildnote: Constructing build description
Could not build the application for the simulator.
Error launching application on iPhone XS Max.
Exited (sigterm)

@erikiado ๋ฐ @LiveRock ๊ท€ํ•˜์˜ ๋ฌธ์ œ(x86_64 ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋นŒ๋“œ์˜ ์ค‘๋ณต ๊ธฐํ˜ธ)๋Š” ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด

๋ฒ ํƒ€ ์ฑ„๋„์˜ ETA?

@lukepighetti ์ด์ œ beta ์ฑ„๋„๋กœ ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค(์ˆœ๊ฐ„ ์ „). flutter upgrade ๋–จ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค!

๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@sidealice ๋„ ํ•ด๊ฒฐ๋˜์—ˆ๋‚˜์š”?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ์†”๋ฃจ์…˜ 2๊ฐ€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค!

์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์—†์œผ๋ฉด ๋ถˆํ–‰ํžˆ๋„ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ๋งˆ์ง€๋ชปํ•ด ์ง€๊ธˆ ์ด ๋ฒ„๊ทธ๋ฅผ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค. ๋ฐ”๋กœ ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค!
๊ธฐ์—ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
cc @ํ•˜์ด์‹œ

๊ณ ๋งˆ์›Œ ํ˜•! ํšจ๊ณผ๊ฐ€์žˆ๋‹ค.

Flutter ์•ˆ์ • ์ฑ„๋„ v1.0.0์—์„œ ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ • ์‚ฌํ•ญ์ด ์•ˆ์ •์ ์ด์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

[โœ“] Flutter(Mac OS X 10.14.1 18B75์—์„œ ์ฑ„๋„ ์•ˆ์ • ๋ฒ„์ „, v1.0.0, ๋กœ์ผ€์ผ en-GB)
โ€ข /usr/local/share/flutter์˜ Flutter ๋ฒ„์ „ 1.0.0
โ€ข Framework ๊ฐœ์ • 5391447fae(3์ฃผ ์ „), 2018-11-29 19:41:26 -0800
โ€ข ์—”์ง„ ๋ฒ„์ „ 7375a0f414
โ€ข Dart ๋ฒ„์ „ 2.1.0(๋นŒ๋“œ 2.1.0-dev.9.4 f9ebf21297)

[โœ“] iOS ํˆด์ฒด์ธ - iOS ๊ธฐ๊ธฐ์šฉ ๊ฐœ๋ฐœ(Xcode 10.1)
โ€ข /Applications/Xcode.app/Contents/Developer์˜ Xcode
โ€ข Xcode 10.1, ๋นŒ๋“œ ๋ฒ„์ „ 10B61
โ€ข ios-deploy 2.0.0
โ€ข CocoaPods ๋ฒ„์ „ 1.5.3

@JannieT dev ๋„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
stable ์— ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ dev ์—์„œ ์ž‘๋™ํ•œ๋‹ค๋ฉด ๋Œ€๋‹ต์€ ์•„๋งˆ๋„ "์•„๋‹ˆ์š”"์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”! ํ™•์ธ์„ ์œ„ํ•ด ์ˆ˜์ • ์‚ฌํ•ญ์€ Stable v1.0.0์— ์žˆ์Šต๋‹ˆ๋‹ค.
์•„์นด์ด๋ธŒ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•  ๋•Œ ๋ฌธ์„œํ™”๋œ .xcworkspace ๋Œ€์‹  .xcodeproject ํŒŒ์ผ์„ ์—ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ง€๊ธˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

error: Multiple commands produce '/Users/n.gendron/Library/Developer/Xcode/DerivedData/Runner-eilfeqiwvjuvbghjmkepqybkaoja/ArchiveIntermediates/Runner/InstallationBuildProductsLocation/Applications/Runner.app/Frameworks/Flutter.framework':
1) Target 'Runner' has copy command from '/Users/n.gendron/Documents/GitLab/techno_store/ios/Flutter/Flutter.framework' to '/Users/n.gendron/Library/Developer/Xcode/DerivedData/Runner-eilfeqiwvjuvbghjmkepqybkaoja/ArchiveIntermediates/Runner/InstallationBuildProductsLocation/Applications/Runner.app/Frameworks/Flutter.framework'
2) That command depends on command in Target 'Runner': script phase โ€œ[CP] Embed Pods Frameworksโ€
[โœ“] Flutter (Channel dev, v1.2.2, on Mac OS X 10.13.6 17G5019, locale fr-CA)
    โ€ข Flutter version 1.2.2 at /Library/flutter
    โ€ข Framework revision 007a415c2a (5 days ago), 2019-02-21 20:22:47 -0800
    โ€ข Engine revision f1f19bba8f
    โ€ข Dart version 2.2.0 (build 2.2.0-dev.2.1 c92d5ca288)

[โœ“] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    โ€ข Android SDK at /Users/n.gendron/Library/Android/sdk
    โ€ข Android NDK location not configured (optional; useful for native profiling support)
    โ€ข Platform android-28, build-tools 28.0.3
    โ€ข Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    โ€ข Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    โ€ข All Android licenses accepted.

[โœ“] iOS toolchain - develop for iOS devices (Xcode 10.1)
    โ€ข Xcode at /Applications/Xcode.app/Contents/Developer
    โ€ข Xcode 10.1, Build version 10B61
    โ€ข ios-deploy 1.9.4
    โ€ข CocoaPods version 1.6.1

[โœ“] Android Studio (version 3.3)
    โ€ข Android Studio at /Applications/Android Studio.app/Contents
    โ€ข Flutter plugin version 33.1.1
    โ€ข Dart plugin version 182.5215
    โ€ข Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[โœ“] VS Code
    โ€ข VS Code at /Applications/Visual Studio Code.app/Contents
    โ€ข Flutter extension version 2.12.2

[โœ“] Connected device (1 available)
    โ€ข iPad de TechnoSolutions โ€ข 3e430eb4db265d124e9684f487cc542f2442ed1d โ€ข ios โ€ข iOS 10.3.3

โ€ข No issues found!

Legacy Build System ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Flutter.framework ์ œ๊ฑฐ๋„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

#import <barcode_scan/BarcodeScanPlugin.h> # 'barcode_scan/BarcodeScanPlugin.h' file not found

์˜ํ–ฅ์„ ๋ฐ›๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋ฐ”์ฝ”๋“œ_์Šค์บ” ์ž…๋‹ˆ๋‹ค.


๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•œ ๊ฒƒ์€ https://github.com/apptreesoftware/flutter_barcode_reader/issues/44#issuecomment -460415307์ž…๋‹ˆ๋‹ค.

open -a Xcode ios

์ƒˆ๋กœ์šด ๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•œ ์žฅ๊ธฐ์ ์ธ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ผ ์ด ์‹œ์ ์—์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ ์—ฝ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์—†์œผ๋ฉด ๋ถˆํ–‰ํžˆ๋„ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ๋งˆ์ง€๋ชปํ•ด ์ง€๊ธˆ ์ด ๋ฒ„๊ทธ๋ฅผ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค. ๋ฐ”๋กœ ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค!
๊ธฐ์—ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌํ„ฐ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ๋งŒ๋“  ๋‹ค์Œ Android ์ŠคํŠœ๋””์˜ค๋ฅผ ํ†ตํ•ด ๋นŒ๋“œํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

[โœ“] Flutter (Channel beta, v1.3.8, on Mac OS X 10.14.4 18E226, locale en-AU)
    โ€ข Flutter version 1.3.8 at /Users/yantsui/Installs/flutter
    โ€ข Framework revision e5b1ed7a7f (6 weeks ago), 2019-03-06 14:23:37 -0800
    โ€ข Engine revision f4951df193
    โ€ข Dart version 2.2.1 (build 2.2.1-dev.0.0 571ea80e11)

[โœ—] Android toolchain - develop for Android devices
    โœ— Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, set ANDROID_HOME to that location.
      You may also want to add it to your PATH environment variable.


[โœ“] iOS toolchain - develop for iOS devices (Xcode 10.2)
    โ€ข Xcode at /Applications/Xcode.app/Contents/Developer
    โ€ข Xcode 10.2, Build version 10E125
    โ€ข ios-deploy 1.9.4
    โ€ข CocoaPods version 1.6.1

[!] Android Studio (not installed)
    โ€ข Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).

[โœ“] IntelliJ IDEA Ultimate Edition (version 2018.3.5)
    โ€ข IntelliJ at /Applications/IntelliJ IDEA.app
    โ€ข Flutter plugin version 34.0.2
    โ€ข Dart plugin version 183.5912.23

[!] VS Code (version 1.33.0)
    โ€ข VS Code at /Applications/Visual Studio Code.app/Contents
    โœ— Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[โœ“] Connected device (1 available)
    โ€ข iPhone Xส€ โ€ข 39D838DF-E49E-4F0A-8F40-B73C91700F6E โ€ข ios โ€ข com.apple.CoreSimulator.SimRuntime.iOS-12-2 (simulator)

! Doctor found issues in 3 categories.
flutter clean
flutter build ios
Xcode 10 -> Product -> Clean Build Folder
Xcode 10 -> Product -> Run

Xcode ์˜ค๋ฅ˜:

Showing All Messages
:-1: Multiple commands produce '/Users/meow/Documents/meow/crystal/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework':
1) Target 'Runner' has copy command from '/Users/meow/Documents/meow/crystal/ios/Flutter/Flutter.framework' to '/Users/meow/Documents/meow/crystal/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework'
2) That command depends on command in Target 'Runner': script phase โ€œ[CP] Embed Pods Frameworksโ€

๊ฒฐ์ •๋œ:
open -a Xcode ios ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ Runner.xcworkspace ๋Œ€์‹  ์‚ฌ์šฉํ•˜์—ฌ Xcode์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์—ˆ๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ž‘์—… ๊ณต๊ฐ„์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด ๋•Œ์—๋„ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ๋ ˆ๊ฑฐ์‹œ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[CP] Emded Pods Framework ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” CocoaPods ์„ค์น˜ ์˜ต์…˜ disable_input_output_paths๋ฅผ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Xcode ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด ์ž…๋ ฅ ํŒŒ์ผ์„ ๊ฑด๋“œ๋ ค๋„ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์— ์‹คํŒจํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์„ค์น˜ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. https://www.ralfebert.de/ios/blog/cocoapods-clean-input-output-files๋ฅผ ์ฐธ์กฐ

์žฅ์ :

  • Xcode ํ”„๋กœ์ ํŠธ๋Š” ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ์—†์ด ์ƒˆ ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Xcode๋Š” ๋ ˆ๊ฑฐ์‹œ ๋นŒ๋“œ ์ง€์›์„ ์ค‘๋‹จํ•˜๊ฒ ๋‹ค๊ณ  ์œ„ํ˜‘ํ•ด์™”๊ธฐ ๋•Œ๋ฌธ์— Flutter๋Š” ๊ทธ๋Ÿด ๋•Œ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ„๋‹จํ•œ ์ˆ˜์ •.
  • Embed Frameworks ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ Flutter.framework๊ฐ€ ํ•ญ์ƒ ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ถ”๊ฐ€ ๋…ผ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ๊ฐ€ ํŒจํ‚ค์ง€๊ฐ€ ์—†๋Š” ๋ฐ”๋‹๋ผ Flutter์ธ ๊ฒฝ์šฐ CocoaPods๊ฐ€ ์ข…์†์„ฑ์ด ๋  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์ :

  • Pods-Runner-frameworks.sh ์Šคํฌ๋ฆฝํŠธ๋Š” Flutter.framework๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋“  ๋นŒ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‚ด 2018 MacBook Pro์—์„œ๋Š” ๋นŒ๋“œ์— ~1์ดˆ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด Xcode ๋นŒ๋“œ ์‹œ์Šคํ…œ ๋ฒ„๊ทธ๊ฐ€ ํ•ด๊ฒฐ๋˜๋ฉด CocoaPods๊ฐ€ ํ•ด๋‹น ์„ค์น˜ ์˜ต์…˜์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ค‘๋ณต ํ”„๋ ˆ์ž„์›Œํฌ ๋ณต์‚ฌ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • disable_input_output_paths ์˜ต์…˜์ด ๋„์ž…๋˜๋ฉด ์ตœ์†Œ CocoaPods ๋ฒ„์ „์„ 1.0.0์—์„œ 1.6.0์œผ๋กœ ๋Š˜๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@jmagman ๊ต‰์žฅํ•ด ! ์ด ์ ‘๊ทผ ๋ฐฉ์‹์ด ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ ๋น„์šฉ์ด ์ •๋ง ๋งŽ์ด ๋“œ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ Cocoapods๊ฐ€ ๋ณด์ด๋Š” ์ง€์ ์— ๋„๋‹ฌํ•˜๋ฉด ์ด๋ฅผ ์ตœ์ ํ™”๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ทธ ๋™์•ˆ ์ฆ‰๊ฐ์ ์ธ ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค!

๊ฐ์‚ฌ ํ•ด์š”!!!!!

๊ฐ์‚ฌ ํ•ด์š”

์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋˜๋ฉด Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŒŒ์ผ > ์ž‘์—… ๊ณต๊ฐ„ ์„ค์ •... > ์‹œ์Šคํ…œ ๋นŒ๋“œ, ๋“œ๋กญ๋‹ค์šด์„ ์ƒˆ ๋นŒ๋“œ ์‹œ์Šคํ…œ(๊ธฐ๋ณธ๊ฐ’)์œผ๋กœ ๋ณ€๊ฒฝ
  2. Podfile์—์„œ ๋‹ค์Œ ํ–‰์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
install! 'cocoapods', :disable_input_output_paths => true

์˜ˆ๋ฅผ ๋“ค์–ด https://github.com/flutter/flutter/blob/master/examples/platform_view/ios/Podfile ์„ ์ฐธ์กฐ

  1. Runner ๋Œ€์ƒ "[CP] Embed Pods Framework" ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ๋ชจ๋“  ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

@jmagman ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค - ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด # flutter upgrade ๋ฅผ ํ†ตํ•ด Podfile์—์„œ ์ด ๋ณ€๊ฒฝ์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰) flutter build ios ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Xcode์—์„œ ์•„์นด์ด๋ธŒํ•˜๋ ค๊ณ  ํ•  ๋•Œ # ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 18673.

@jmagman ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค - ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด # flutter upgrade ๋ฅผ ํ†ตํ•ด Podfile์—์„œ ์ด ๋ณ€๊ฒฝ์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰) flutter build ios ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Xcode์—์„œ ์•„์นด์ด๋ธŒํ•˜๋ ค๊ณ  ํ•  ๋•Œ # ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 18673.

@jmagman ๋‚˜๋Š” ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด https://github.com/flutter/flutter/issues/16246#issuecomment -476329255๊ฐ€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํŽธ์„ ๋ผ์ณ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@jmagman XCode์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๋ถ„๋“ค์„ ์œ„ํ•ด 3๋‹จ๊ณ„๋ฅผ ๋” ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” Runner ๋Œ€์ƒ "[CP] Embed Pods Framework" ๋นŒ๋“œ ๋‹จ๊ณ„๋Š” ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์„ ๋ฐœ๊ฒฌ. ์™ผ์ชฝ ํƒ์ƒ‰ ๋ชจ์Œ์—์„œ "Runner"๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ "Build Phases" ํƒญ์„ ํด๋ฆญํ•œ ๋‹ค์Œ "Output Files"๋กœ ์Šคํฌ๋กคํ•˜์—ฌ ๋ชจ๋‘ ์„ ํƒํ•œ ๋‹ค์Œ ๋นผ๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

Mac ์—†์ด ์–ด๋–ป๊ฒŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํด๋ผ์šฐ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ iOS์šฉ์œผ๋กœ ๋นŒ๋“œํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค...

์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋˜๋ฉด Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŒŒ์ผ > ์ž‘์—… ๊ณต๊ฐ„ ์„ค์ •... > ์‹œ์Šคํ…œ ๋นŒ๋“œ, ๋“œ๋กญ๋‹ค์šด์„ ์ƒˆ ๋นŒ๋“œ ์‹œ์Šคํ…œ(๊ธฐ๋ณธ๊ฐ’)์œผ๋กœ ๋ณ€๊ฒฝ
  2. Podfile์—์„œ ๋‹ค์Œ ํ–‰์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
install! 'cocoapods', :disable_input_output_paths => true

์˜ˆ๋ฅผ ๋“ค์–ด https://github.com/flutter/flutter/blob/master/examples/platform_view/ios/Podfile ์„ ์ฐธ์กฐ

  1. Runner ๋Œ€์ƒ "[CP] Embed Pods Framework" ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ๋ชจ๋“  ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” #1 ๋ฐ #2๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ ios ๋””๋ ‰ํ† ๋ฆฌ์—์„œ pod install ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CocoaPods๋Š” ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ํ•ด๋‹น ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@gincos Mac์ด ์—†๋Š” ๊ฒฝ์šฐ PR https://github.com/flutter/flutter/pull/33684/ ์—์„œ Xcode ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Mac์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€์‹  ์œ„์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”!

  1. ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŒŒ์ผ > ์ž‘์—… ๊ณต๊ฐ„ ์„ค์ •... > ๋นŒ๋“œ ์‹œ์Šคํ…œ > ์ƒˆ ๋นŒ๋“œ ์‹œ์Šคํ…œ(๊ธฐ๋ณธ๊ฐ’)์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.
    https://github.com/flutter/flutter/pull/33684/files#diff -e7ad834b29956b3cbd9225dc81f2c06a

    1. Podfile์—์„œ ๋‹ค์Œ ํ–‰์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

      install! 'cocoapods', :disable_input_output_paths => true

      https://github.com/flutter/flutter/pull/33684/files#diff -4e7de62cf4dff9802f06b7f3cb120939

ํด๋ผ์šฐ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์ด pod install ํ•˜๊ณ  ์œ„์˜ #3์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ios/Runner.xcodeproj/project.pbxproj๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์กฐ์‹ฌํ•˜์‹ญ์‹œ์˜ค! Xcode ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์€ ์†์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://github.com/flutter/flutter/pull/33684/files#diff -e9e57f7f2e911a135acd8f08e79b20e1

@jmagman ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค! ์˜ˆ, ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๊ฐ€ ํฌ๋“œ ์„ค์น˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ด์ œ ์ตœ์‹  ๋ฒ ํƒ€์—์„œ Android ๋ฐ iOS ๋ชจ๋‘์— ๋Œ€ํ•ด ์˜ฌ๋ฐ”๋ฅธ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ํ–ฅ์„ ๋ฐ›๋Š” ํ”„๋กœ์ ํŠธ

์ด ๋ฌธ์ œ๋Š” CocoaPods์— ์˜์กดํ•˜๋Š” Xcode 10์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ๋ชจ๋“  Flutter ํ”„๋กœ์ ํŠธ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜์กดํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋‘ ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ต์…˜ 1: ๊ธฐ์กด ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. @gi097 ์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ios/Runner.xcworkspace ์—ด๊ณ  ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ Legacy Build System ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ต์…˜ 2: ์ƒˆ๋กœ์šด Xcode 10 ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    1. ios/Runner.xcworkspace ์—ด๊ธฐ
    2. ํ”„๋กœ์ ํŠธ ํƒ์ƒ‰๊ธฐ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ Runner ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    3. ๊ธฐ๋ณธ ๋ณด๊ธฐ์—์„œ Runner ๋Œ€์ƒ์„ ์„ ํƒํ•œ ๋‹ค์Œ Build Phases ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    4. Embed Frameworks ๋‹จ๊ณ„๋ฅผ ํ™•์žฅํ•˜๊ณ  ํฌํ•จ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ๋ชฉ๋ก์—์„œ Flutter.framework ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    5. - ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋ชฉ๋ก์—์„œ Flutter.framework - ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค( App.framework _์œ ์ง€_ ).

๊ทผ๋ณธ ์›์ธ

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ Flutter.framework๋ฅผ ๋นŒ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Frameworks ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์Ÿ ๋นŒ๋“œ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Runner ํ”„๋กœ์ ํŠธ์˜ Embed Frameworks ๋นŒ๋“œ ๋‹จ๊ณ„
  2. pod install ๊ฐ€ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒ์„ฑํ•˜๋Š” [CP] Embed Pods Frameworks ๋นŒ๋“œ ๋‹จ๊ณ„.

ํ•ญ๋ชฉ (1)์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์—†๋Š” ๊ฒฝ์šฐ(๋”ฐ๋ผ์„œ Xcode ํ”„๋กœ์ ํŠธ์— CocoaPods ํ†ตํ•ฉ์ด ์—†๋Š” ๊ฒฝ์šฐ) ๋นŒ๋“œ๋œ ์•ฑ์— ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ณต์‚ฌ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ญ๋ชฉ (2)๋Š” Flutter์˜ podspec์ด Flutter.framework ๋ฅผ vended_framework๋กœ ์„ ์–ธํ•˜๊ณ  CocoaPods๊ฐ€ CocoaPods ์ข…์†์„ฑ์˜ ์ „์ด์  ํ์‡„์—์„œ ์ด๋Ÿฌํ•œ ๊ฐ vended_framework์— ๋Œ€ํ•œ ๋ณต์‚ฌ ๋‹จ๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰๊ฐ์ ์ธ ์ˆ˜์ •

์ฆ‰๊ฐ์ ์ธ ์ˆ˜์ •์€ ์žฅ๊ธฐ์ ์œผ๋กœ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์ด ๋งˆ๋ จ๋  ๋•Œ๊นŒ์ง€ ๋ ˆ๊ฑฐ์‹œ ๋นŒ๋“œ ์ˆ˜์ •์„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ ํƒ€๋Š” -useNewBuildSystem=NO ๋˜๋Š” -useModernBuildSystem=NO ํ–ˆ์ง€๋งŒ GM ๋นŒ๋“œ์—์„œ ์ œ๊ฑฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ‚ค-๊ฐ’ ์Œ( <key>BuildSystemType</key><string>Original</string> )์„ ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings .

์žฅ๊ธฐ ์ˆ˜์ •

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์˜ต์…˜์€ ์œ„์˜ Embed Frameworks ๋‹จ๊ณ„์—์„œ Flutter.framework๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ ์ข…์†์„ฑ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ํ•ญ์ƒ ํฌ๋“œ ์„ค์น˜์— ์˜์กดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Embed Frameworks ๋‹จ๊ณ„์—์„œ Flutter.framework๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ์ž๋™์œผ๋กœ ํŽธ์ง‘ํ•˜๋ ค๋ฉด Flutter ๋„๊ตฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ : ๋” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ. con: cocoapods๋ฅผ Flutter ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์„ค์น˜ ๋‹จ๊ณ„๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์‹คํ–‰์—๋Š” ์ €์žฅ์†Œ์˜ ๊ฑฐ๋Œ€ํ•˜๊ณ  ๋Š๋ฆฐ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‚ฌ์šฉ ์ค‘์ด๋ฉด ์ž๋™์œผ๋กœ Embed Frameworks ๋‹จ๊ณ„์—์„œ Flutter.framework๋ฅผ ํ™•์ธํ•˜๊ณ  ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ๋” ๋‚˜์€ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์žฅ์  : ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜. ๋‹จ์ : ๋” ๋ณต์žกํ•œ ์ฝ”๋“œ.

์–ด๋Š ์ชฝ์ด๋“  project.pbxproj ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ํŽธ์ง‘ํ•˜๊ณ  ๋‚ด์žฅ ํ”„๋ ˆ์ž„์›Œํฌ ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์ ์ง„์ ์ธ ์ž‘์—…์ด ์•„๋‹ˆ๋ฉฐ ๋” ๋‚˜์€ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

/cc @tvolkert @gspencergoog @dnfield

@cbracken ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌปํžŒ ์ดํ›„ ์‹ค์ œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋‹ค์‹œ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋˜๋ฉด Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŒŒ์ผ > ์ž‘์—… ๊ณต๊ฐ„ ์„ค์ •... > ์‹œ์Šคํ…œ ๋นŒ๋“œ, ๋“œ๋กญ๋‹ค์šด์„ ์ƒˆ ๋นŒ๋“œ ์‹œ์Šคํ…œ(๊ธฐ๋ณธ๊ฐ’)์œผ๋กœ ๋ณ€๊ฒฝ
  2. Podfile์—์„œ ๋‹ค์Œ ํ–‰์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
install! 'cocoapods', :disable_input_output_paths => true

์˜ˆ๋ฅผ ๋“ค์–ด https://github.com/flutter/flutter/blob/master/examples/platform_view/ios/Podfile ์„ ์ฐธ์กฐ

  1. flutter build ios

์ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ง€์นจ์ด ์ด ๋ฌธ์ œ์˜ ๋์— ๋‚จ๋„๋ก ์ž ๊ธ€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ง€์นจ์„ ๋”ฐ๋ฅธ ํ›„ ์ถ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

์—…๋ฐ์ดํŠธ : ๋‹น์‹ ์ด์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ง€์นจ์„ ๋”ฐ๋ฅด ๊ฒฝ์šฐ https://flutter.dev/docs/development/ios-project-migration ๋‹น์‹ ์€ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค install! 'cocoapods', :disable_input_output_paths => true ๋‹น์‹ ์—์„œ ios/Podfile . Flutter ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰