Xamarin.forms: ITMS-90809 : ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” API ์‚ฌ์šฉ-Apple์€ UIWebView API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ ์ œ์ถœ ์ˆ˜๋ฝ์„ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 08์›” 30์ผ  ยท  99์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: xamarin/Xamarin.Forms

ํ•ด๊ฒฐ์ฑ…

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/webview?tabs=windows#uiwebview -deprecation-and-app-store-rejection-itms-90809


๊ฐœ๋ฐœ์ž๋‹˜๊ป˜,

๊ท€ํ•˜์˜ ์•ฑ 'xxxx'1.0.11 (1.0.11)์˜ ์ตœ๊ทผ ์ „์†ก์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์†ก์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ด๋ฃจ์–ด์กŒ์ง€๋งŒ ๋‹ค์Œ ๋ฐฐ์†ก์—์„œ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ITMS-90809 : ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” API ์‚ฌ์šฉ-Apple์€ UIWebView API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ ์ œ์ถœ์„ ๋” ์ด์ƒ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://developer.apple.com/documentation/uikit/uiwebview ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ฌธ์ œ๋ฅผ ์ˆ˜์ • ํ•œ ํ›„ Xcode ๋˜๋Š” Application Loader๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ App Store Connect์— ์ƒˆ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”,

์•ฑ ์Šคํ† ์–ด ํŒ€

ํ•˜์ง€๋งŒ UIWebView๋ฅผ WKWebView (WKWebViewRenderer)๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

in-progress iOS ๐ŸŽ bug

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

์•ˆ๋…•ํ•˜์„ธ์š” @ Mikilll94 , ์šฐ๋ฆฌ๋Š”์ด ๋ฌธ์ œ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์ง€๋งŒ ์กฐ๋งŒ๊ฐ„ ์™„์ „ํ•œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. "์ „์ฒด ์†”๋ฃจ์…˜"์„ ์‚ฌ์šฉํ•˜๋ฉด Xamarin.Forms ์•ฑ์„ ์Šคํ† ์–ด์— ์ œ์ถœํ•  ๋•Œ๋งˆ๋‹ค Apple์—์„œ ๊ฒฝ๊ณ ๊ฐ€ ๋” ์ด์ƒ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด ์†Œ์Šค์—์„œ ํ˜„์žฌ WebViewRenderer ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋ Œ๋”๋Ÿฌ๊ฐ€ ํ˜„์žฌ ๊ธฐ๋ณธ๊ฐ’์ด๊ณ  ์˜์›ํžˆ ์†Œ์Šค์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ PR์„ ํ†ตํ•ด ๊ธฐ๋ณธ ๋ Œ๋”๋Ÿฌ๋ฅผ WKWebViewRenderer ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ƒˆ WKWebView ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Xamarin.Forms์˜ ์ตœ์ข… ์‚ฌ์šฉ์ž๋Š”์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ์•„ ์ฐจ๋ฆฌ์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Xamarin.Forms ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ”๋“œ์—์„œ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์›๋ž˜ WebViewRenderer ๋„ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด WebViewRenderer ์— ์˜์กดํ•˜๋Š” ์ปค์Šคํ…€ ๋ Œ๋”๋Ÿฌ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ.

๊ทธ๋Ÿฌ๋‚˜ WebViewRenderer ๊ฐ€ ์—ฌ์ „ํžˆ ์†Œ์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Apple์ด ์•ฑ์„ ์Šค์บ”ํ•˜๋Š” ๋™์•ˆ ์—ฌ์ „ํžˆ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „ 4.5 ์ธ Xamarin.Forms์˜ ์ตœ์‹  ๋ฒ„์ „์—์„œ๋Š” WebViewRenderer ์™„์ „ํžˆ ์‚ญ์ œํ•˜๊ณ  Apple์˜ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ค‘์ง€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธดํ•˜์ง€๋งŒ ์ œ๊ฑฐํ•ด์•ผ ํ•  ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Apple์˜ ๋ฉ”์‹œ์ง€๋Š” ๋‹น๋ถ„๊ฐ„ ๊ฒฝ๊ณ  ์ผ ๋ฟ์ด๋ฉฐ ์ƒˆ ๋ฒ„์ „์„ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ ์—†์œผ๋ฉฐ App Store์— ์ •์ƒ์ ์œผ๋กœ ์Šน์ธ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ (์ ์–ด๋„) 1 ๋…„์„์ฃผ๋Š” iOS 14๊นŒ์ง€ ๊ณ„์† ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์†Œ์Šค์—์„œ WebViewRenderer ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด์ง€๋งŒ์ด ์‹œ์ ์—์„œ ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ณ  ์ ์ฐจ์ ์œผ๋กœ ๋จผ์ € ์ƒˆ๋กœ์šด ๊ตฌํ˜„์œผ๋กœ ์ „ํ™˜ ํ•œ ๋‹ค์Œ ์†Œ์Šค์—์„œ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธด ํ”„๋กœ์„ธ์Šค์ด์ง€๋งŒ iOS 14๊ฐ€ ์ถœ์‹œ๋˜๊ธฐ ํ›จ์”ฌ ์ „์— ์ด๋ฃจ์–ด์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ๋ชจ๋“  ์šฐ๋ ค๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•Œ๋ ค ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋‹ต๋ณ€ ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ดํ•ด์™€ ์ธ๋‚ด์‹ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

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

์ด ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Xamarin.Forms 3.6.0.539721

iOS์˜ WebViewRenderer๊ฐ€ UIWebView๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  WkWebViewRenderer๋ฅผ ์ „ํ™˜ํ•˜๋”๋ผ๋„ ํŒŒ์ผ์ด ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ฒ„์ „์˜ Forms์—์„œ์ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ ์ค‘์— ํ•ด๋‹น ํŒŒ์ผ์„ ๋งํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@ swansca79- ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ๋‘๋ ค์›Œํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋‹น์‹ ์ด ๋งํ•œ๋Œ€๋กœ ๊ทธ๊ฒƒ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ Apple์˜ ๊ธฐํ•œ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๋‹ค ...

๋‚˜๋Š” ์ด๊ฒƒ์ด ์ƒˆ๋กœ์šด ์ œ์ถœ์ด๋“  ์—…๋ฐ์ดํŠธ์ด๋“  ์ƒ๊ด€์—†์ด ๋ชจ๋“  ์•ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ „ ๋ Œ๋”๋Ÿฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๊ฒƒ์ด iOS 13 ์š”๊ตฌ ์‚ฌํ•ญ์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Xamarin.Forms 4.2.0.709249๋ฅผ ์‚ฌ์šฉํ•˜๊ณ 

iOS ํ”„๋กœ์ ํŠธ์˜ AssemblyInfo.cs ์— ๋‹ค์Œ ์ค„์„ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

[assembly: ExportRenderer(typeof(WebView), typeof(Xamarin.Forms.Platform.iOS.WkWebViewRenderer))]

์• ํ”Œ์˜ ์•ฑ ์ œ์ถœ ๋งˆ๊ฐ์ผ๋„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์š”์ฒญ์— ๋Œ€ํ•œ Apple์˜ ๋งˆ๊ฐ์ผ์„ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” Xamarin์ด์ด ์—…๋ฐ์ดํŠธ์—์„œ ์ž‘์—…์ค‘์ธ ๊ฒฝ์šฐ

UIWebView๋Š” ์•„์ง iOS13 ๋ฒ ํƒ€ ๋ฒ„์ „์ด๋ฏ€๋กœ iOS14๊นŒ์ง€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Xamarin.Forms.iOS ๋ Œ๋”๋Ÿฌ ํด๋”๋ฅผ ์‚ดํŽด๋ณด๋ฉด 2 ๊ฐœ์›” ์ „์— WKWebViewRender๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ Œ๋”๋Ÿฌ์—์„œ ์ƒ์†ํ•˜๋Š” ์ž์ฒด WebView๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค (ํ”„๋กœ์ ํŠธ์— ์ตœ์‹  ๋ฒ„์ „์˜ XF๊ฐ€์—†๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌ / ๋ถ™์—ฌ ๋„ฃ๊ธฐ ํ•  ์ˆ˜ ์žˆ์Œ).

WkWebViewRenderer.cs

์—ฌ๋Ÿฌ๋ถ„, ์ด์ƒํ•œ ์ ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์•ฑ ๋ฒˆ๋“ค ์‹๋ณ„์ž๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๋‹ค์‹œ ์•ฑ ์Šคํ† ์–ด์— ์ œ์ถœํ–ˆ๋Š”๋ฐ ์• ํ”Œ๋กœ๋ถ€ํ„ฐ ๊ฒฝ๊ณ  ์ด๋ฉ”์ผ์„๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‚ด ์ƒํ™ฉ : 3 ์ผ ์ „์— ipa๋ฅผ testflight์— ์ œ์ถœ ํ•œ ํ›„ Apple๋กœ๋ถ€ํ„ฐ ๊ฒฝ๊ณ  ์ด๋ฉ”์ผ์„๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  webview์™€ ๊ด€๋ จ์ด์—†๋Š” ์ผ๋ถ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•œ ํ›„ ์ด๋ฉ”์ผ์„๋ฐ›์€ ๋‹ค์Œ ์ฐพ์œผ๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์™œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ :
1. UIWebViewRenderer๋ฅผ WKWebViewRenderer๋กœ ๋ฐ”๊พธ์‹ญ์‹œ์˜ค.
2. WebView ์ œ๊ฑฐ;
3. ํƒ€์‚ฌ nuget lib๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค (์ตœ๊ทผ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค);
๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค (๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ฒฝ๊ณ  ์ด๋ฉ”์ผ์„๋ฐ›์Šต๋‹ˆ๋‹ค).
์• ํ”Œ์ด ipa๋ฅผ ์–ด๋–ป๊ฒŒ ํ™•์ธํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ, ๊ทธ๋“ค์ด ์‹ค์ˆ˜๋ฅผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ตœ๊ทผ ์ด๋Ÿฐ ์ƒํ™ฉ์ด ํ”Œ๋Ÿฌํ„ฐ์™€ ๋ฆฌ ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (๊ฐœ๋ฐœ์ž๋“ค๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.)

@ Carl-Wen ์ด๊ฒƒ์€ Ionic ์•ฑ์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ Apple Store Connect์—์„œ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•œ ์ ์€ ๋‚ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์›น๋ณด๊ธฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Xamarin ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค (์ข…์†์„ฑ ์ข…์†์„ฑ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 100 % ํ™•์‹คํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค).
๋ˆ„๊ตฌ๋“ ์ง€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ UIWebView ์‚ฌ์šฉ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜์—๊ฒŒ๋„ ๊ฐ™์€ ์ผ์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์•ฑ์„ ์ฒ˜์Œ ์ œ์ถœํ•˜๋ ค๊ณ  ํ•  ๋•Œ

์˜ค๋Š˜ iTunesConnect์—์„œ ๋™์ผํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋ฉฐ์น  ์ „์—๋„ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์—์„œ ๋‚ด ๋Œ€๋‹ต์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. Xamarin.Forms 3.6.x์— ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ์›น๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ iOS ์ „์šฉ WebView ์šฉ ์‚ฌ์šฉ์ž ์ง€์ • ๋ Œ๋”๋Ÿฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์ƒ์†์„ UIWebViewRenderer ์—์„œ WKWebViewRenderer ์–ด์ œ ์Šคํ† ์–ด์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—…๋กœ๋“œํ–ˆ๋Š”๋ฐ ๊ฒฝ๊ณ ๋ฅผ๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ

@FabriBertani ์ปค์Šคํ…€ ๋ Œ๋” ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ๋‚ด ์•ฑ์—์„œ ์›น๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Apple์ด Xamarin.iOS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ฐ์ง€ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•ฑ์„ ์—…๋กœ๋“œ ํ•  ๋•Œ๋„ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ WebView๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ Xamarin ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ UIWebView ๋•Œ๋ฌธ์— @dhewitson ์ด ์˜ณ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ œ์–ด ํ•  ์ˆ˜์—†๋Š” UIWebView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ผ๋ฐ˜ XF WebView ๋Œ€์‹  ์‚ฌ์šฉ์ž ์ง€์ • rendrer๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

namespace YourAppNameSpace
{
    public class CustomWebView : WebView
    {
    }
}
[assembly: ExportRenderer(typeof(CustomWebView), typeof(CustomWebViewRenderer))]
namespace YourAppNameSpace.iOS
{
    public class CustomWebViewRenderer : WkWebViewRenderer
    {
    }
}

๊ฐ™์€ ๋ฌธ์ œ, ๋ˆ„๊ตฌ์—๊ฒŒ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…• ๋ชจ๋‘๋“ค! ๋ณด๊ณ  ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ถ”์ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ WkWebView ๋Œ€ํ•œ ๋ Œ๋”๋Ÿฌ๊ฐ€ ์ด๋ฏธ ํ•œ๋™์•ˆ ์ž๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ๋ Œ๋”๋Ÿฌ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋งŒ๋“ค๊ณ  UIWebView ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” PR์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์ด ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ํŒ€์›๋“ค๋กœ๋ถ€ํ„ฐ ๋‚ด PR์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ์™€ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋Œ€ํ•˜์ง€๋งŒ ๊ณง ํ•ด๊ฒฐ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@jfversluis ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด์ „ ๋ฒ„์ „์˜ XamarinForms์— ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
3.4.0.1009999๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ตœ์‹  ๋ฒ„์ „์˜ Xamarin.Forms๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ๋งŽ์€ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@ngoquoc ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋ฐฑ ํฌํŠธ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, 3.4๋กœ ๋˜๋Œ๋ฆด ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ํšŒ์˜์ ์ž…๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ๋…ธ๋ ฅ์ด ๋“œ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ ์˜์—ญ์„ ์กฐ์‚ฌ ํ•  ๊ฐ€์น˜๊ฐ€์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :)

@jfversluis ๋ฒˆ๊ฐœ ๋น ๋ฅธ ๋‹ต์žฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค : D
์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๋Š” ๋ฐ ์ ˆ๋Œ€์ ์œผ๋กœ ๋™์˜ํ•˜์ง€๋งŒ ์ƒํ™ฉ์€ ๊ณ„ํš๋œ ์ถœ์‹œ ๊ธฐํ•œ์— ์ •๋ง ๊ฐ€๊นŒ์›Œ์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ• ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋งŽ์€ ๋ ˆ๊ฑฐ์‹œ ์ข…์†์„ฑ (์ตœ๋Œ€ XF 3.x ๋งŒ ์ง€์›)์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ngoquoc ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” ์™„์ „ํžˆ ์ดํ•ดํ•œ๋‹ค! ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ํ˜„๋ช…ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ณง ์ง€์› ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์ง€์› ์ค‘๋‹จ ๋  API๊ฐ€ ๋”์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜์žˆ๋Š” ์ผ์ด ์žˆ์œผ๋ฉด ์—ฐ๋ฝํ•ด์ฃผ์„ธ์š”!

์ด ๋ฌธ์ œ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์„ 3.4์— ์ ์šฉ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. 4.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ ๊ณ„ํš์— ์ ˆ๋Œ€์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ํŒ€์— ์—ฐ๋ฝ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€์›ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@ngoquoc ์–ด์จŒ๋“  ์œ„์—์„œ ์ž‘์„ฑํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ipa๋ฅผ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ iOS13์—์„œ๋Š”์ด ํด๋ž˜์Šค๊ฐ€ ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ด๊ฒƒ์€ ํ•œ๋™์•ˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

@KSemenenko "๊ฒฝ๊ณ "์•ฑ๋„ Apple ์Šคํ† ์–ด์— ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๊นŒ?
๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด, ์šฐ๋ฆฌ๋Š” ์ง„์ •ํ•˜๊ณ  WKWebView ๋กœ์˜ ์ „ํ™˜์„ ์ข€ ๋” ์—ฐ๊ธฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. : D
๋‚˜์˜ ์œ ์ผํ•œ ๊ด€์‹ฌ์‚ฌ๋Š” Apple์ด ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๊ทธ๋Ÿฌํ•œ ์‹ ์ฒญ์„ ์Šน์ธํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์—์„œ ์ง€์› ์ค‘๋‹จ์— ๋Œ€ํ•œ ๊ฒŒ์‹œ ๋œ ์ •๋ณด๋ฅผ ์ฐพ์•˜์ง€๋งŒ ๊ณต์‹ ๋งˆ๊ฐ์ผ / Apple ์Šคํ† ์–ด ๋ฆฌ๋ทฐ ์ •์ฑ…์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. https://developer.apple.com/documentation/uikit/uiwebview

@ngoquoc ์—ญ์‚ฌ์ ์œผ๋กœ ์˜ˆ, ์ง€๊ธˆ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ•ด๋‹น ์•ฑ์„ ์Šน์ธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ "์ง€๊ธˆ์€ ์•ฑ์„ ์Šน์ธ ํ•  ๊ฒƒ์ด์ง€๋งŒ ์•ž์œผ๋กœ๋Š” ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฏ€๋กœ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ „ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๊ทธ๊ฒƒ์„ ์˜ค๋ฅ˜๋กœ ์ „ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๊ธฐ ์ „์— ๊ฒŒ์‹œํ•˜๋Š” ํ•œ ๋‹น์‹ ์€ ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ. ์ง€๊ธˆ ์•ฑ์„ ์ œ์ถœํ•˜๊ณ  Apple์ด ๊ฒ€ํ†  ํ•œ ํ›„ ๋ฉฐ์น  ๋‚ด์— ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. :)

@ngoquoc ์–ด์ œ ipa๋ฅผ AppStore์— ์—…๋กœ๋“œ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ณต์‚ฌ ํ•œ ๊ณณ
https://github.com/xamarin/Xamarin.Forms/pull/7367#issuecomment -527558598

๋‚ด ํ˜„์žฌ ์ƒ๊ฐ์€ ๊ทธ ๋ Œ๋”๋Ÿฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (์ œ๊ฐ€ ์•ฝ๊ฐ„ ์ž‘์—… ํ•ด ์™”์Šต๋‹ˆ๋‹ค). RenderWith๋กœ ์ธํ•ด ๋ Œ๋”๋Ÿฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ํฌ์›Œ๋” ์ „์ฒด๊ฐ€ ์–ด๋–ค ์šฉ๋„๋กœ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค (๋งž์Šต๋‹ˆ๊นŒ?)

์ด ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์œ ํ˜• (์ด PR์—์„œ์™€ ๊ฐ™์ด)์„ ์ „ํ™˜ ํ•œ ๋‹ค์Œ WebViewRenderer๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด WebViewRenderer๋กœ ๋˜๋Œ๋ ค ์•ผํ•˜๋Š” ๊ฒฝ์šฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ฐ–.

๋‚ด๊ฐ€ ์ฐพ์€ ํ•œ ๊ฐ€์ง€ ์ด์œ ๋Š” ํ”Œ๋žซํผ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ชจ๋‘์—
์–ด์…ˆ๋ธ”๋ฆฌ ์ˆ˜์ค€์—์„œ ์ง€์ •๋œ PreserveAttribute ๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ๋ชจ๋“  ํ˜•์‹์„ ์œ ์ง€ํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋žซํผ ํ”„๋กœ์ ํŠธ์— ๋”๋ฏธ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  PreserveAttribute๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ํด๋ž˜์Šค๊ฐ€ ์ฃผ๋ณ€์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ์ง€๋งŒ PreserveAttribute ๊ฐ€ ์—†์œผ๋ฉด

๋ Œ๋”๋Ÿฌ๋Š” ์—ฌ์ „ํžˆ ๋ชจ๋‘ ๋ถ™์–ด ์žˆ์Šต๋‹ˆ๋‹ค :-) ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์•„๊ธฐ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

CheckboxRendererDesigner ํด๋ž˜์Šค๋กœ ๋น ๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค (์‹ค์ œ๋กœ ์–ด๋””์—์„œ๋‚˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค).

์ด ๋‘ ์ค„์˜ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋ฉด
https://github.com/xamarin/Xamarin.Forms/blob/d56942c5bee0a7c56255febc8bbcc6bc33d5e1cb/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs#L128

https://github.com/xamarin/Xamarin.Forms/blob/bcf1d857f70c2d521fdbf59bd73445c7e77fe1fc/Stubs/Xamarin.Forms.Platform.cs#L112

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํฌ์›Œ๋” ํ”„๋กœ์ ํŠธ์—์„œ RenderWith์˜ ์˜๋„ ๋œ ๋ชฉ์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/blob/bcf1d857f70c2d521fdbf59bd73445c7e77fe1fc/Stubs/Xamarin.Forms.Platform.cs#L112

๊ธฐ๋Œ€ํ–ˆ๋˜ ์ถฉ๋ถ„ํžˆ ์•ฝํ•œ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Checkbox (forms ์š”์†Œ) ์ž์ฒด๊ฐ€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•„ RenderWith ์†์„ฑ์ด ๋ Œ๋”๋Ÿฌ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CheckboxRendererDesigner ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค์— ์†์„ฑ์„ ๋ถ€์—ฌํ•˜๋ฉด
```C #
[RenderWith (typeof (CheckBoxRenderer))]
๋‚ด๋ถ€ ํด๋ž˜์Šค _CheckBoxRenderer {}

[RenderWith(typeof(CheckBoxDesignerRenderer))]
internal class _CheckBoxRendererIsMyNameo { }

```

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค ...

๋”ฐ๋ผ์„œ CheckBox๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋‚ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -527294907

๋ฟก๋ฟก

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ณ , ์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์— ๋ Œ๋”๋Ÿฌ์™€ ํ•ญ๋ชฉ์ด ๋ชจ๋‘ ์žˆ๊ณ  ์—ฌ์ „ํžˆ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

WKWebViewRenderer๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š”์ด ๊ฒฝ๊ณ  ์ด๋ฉ”์ผ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋Š” ๋œป์ž…๋‹ˆ๊นŒ?

๋ฟก๋ฟก

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ณ , ์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์— ๋ Œ๋”๋Ÿฌ์™€ ํ•ญ๋ชฉ์ด ๋ชจ๋‘ ์žˆ๊ณ  ์—ฌ์ „ํžˆ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  App Store์—์„œ ๊ฒฝ๊ณ ๋ฅผ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :)

์•ˆ๋…•ํ•˜์„ธ์š” @ngoquoc ๊ฒ€ํ†  ๊ณผ์ •์— ์•„์ง ์šด์ด ์—†๋‚˜์š”?

'๊ฒฝ๊ณ '์— ๊ด€๊ณ„์—†์ด ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ์ œ์ถœํ•˜๋ฉด ์•ฑ ๋งˆ๊ฐ์ผ์ด ์ง€ ๋‚ฌ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ์ด IPA ํŒŒ์ผ์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ์ด์œ ๋ฅผ ์–ธ์ œ๋ถ€ํ„ฐ ํŒ๋‹จํ• ์ง€ ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ์ด๊ฒƒ์„ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ฐœํ‘œํ•˜์ง€ ์•Š์„๊นŒ ๋‘๋ ต๋‹ค.

์˜ค๋Š˜ ๋‚ด ์•ฑ์ด ์• ํ”Œ ๋ฆฌ๋ทฐ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค๋Š” ํŽธ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค
๊ทธ๋ž˜์„œ ์ง€๊ธˆ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :)

์•ฑ ๊ฒ€ํ† ๋Š” ํ‰์†Œ์™€ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ƒˆ ์•ฑ์ด ์ •์ƒ์ ์œผ๋กœ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ–ฅํ›„ ์ถœ์‹œ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒฝ๊ณ ๋Š” ๊ฒฝ๊ณ  ์ผ ๋ฟ์ด๋ฉฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Google์˜ ๊ฒฝ์šฐ ์•ฝ 2 ๋…„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚ด ๊ฐ€์ •์€ ๊ฒฝ๊ณ ๊ฐ€ iOS 14์—์„œ ์ œ๊ฑฐ ํ•  ๊ฒƒ์ด๋ฉฐ (๋‚ด ์ถ”์ธก์—) ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ์„ ์ค‘๋‹จํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šค์œ„์น˜๋ฅผ ๋’ค์ง‘๊ฑฐ๋‚˜ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์œผ๋ฉด ์–ด์จŒ๋“  ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋“ค์ด ์Šค์œ„์น˜๋ฅผ ๋’ค์ง‘์–ด ์˜ค๋ฅ˜๋กœ ๋งŒ๋“ค์ง€ ์•Š๋Š” ํ•œ, ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์˜ค๋ž˜๋œ ์žฅ์น˜๋ฅผ ์ง€์›ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ข‹์•„์š”, ์—ฌ๊ธฐ ์ œ๊ฐ€ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ์ •์ ์ธ ์ตœ์‹  Xamarin.Forms ํŒจํ‚ค์ง€์™€ WebView ๋งŒ ๋ณด์—ฌ์ฃผ๋Š” ์•ฑ์œผ๋กœ Apple์— ์—…๋กœ๋“œ ํ•œ ๋”๋ฏธ ์•ฑ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๋กœ๋“œ ํ•œ ์งํ›„์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๊ฐ€ ๋งค๋ฒˆ ๋‚˜๊ฐ€๋Š” ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฝ๊ณ ๊ฐ€ ์˜ค์ง€ ์•Š์„ ๋•Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ๊ฐ€์ • ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฒ„์ „ ๋ฒˆํ˜ธ ์™ธ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด์—†๋Š” ๋‹ค๋ฅธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ๋‹ค์‹œ ์™”์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฒฝ๊ณ  ์ˆ˜์‹ ์„ ์ค‘์ง€ ํ•  ๋•Œ๋งˆ๋‹ค ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ @FabriBertani ๊ฐ€ ์—ฌ๊ธฐ์—์„œ ์ œ๊ณต ํ•œ ์ •ํ™•ํ•œ ์ฝ”๋“œ๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ๋ Œ๋”๋Ÿฌ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋Š” ์—ฌ์ „ํžˆ ์™”์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ์ด ๋ถ„๊ธฐ๋ฅผ ๊ฐ€์ ธ์™€ WebRenderer๋ฅผ ์‚ญ์ œํ•˜๊ณ  UIWebView์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฐธ์กฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์›ํ•˜๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. ์ด์ œ Apple์€ ๋” ์ด์ƒ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์€ ์ฝ”๋“œ์—์„œ UIWebView๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ•œ (์ฝ๊ธฐ : UIWebViewRenderer๊ฐ€ ์•„์ง ์ œ์ž๋ฆฌ์—์žˆ๋Š” ํ•œ) Apple์ด์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๊ถ๊ทน์ ์œผ๋กœ ์•ฑ ์ˆ˜๋ฝ์„ ์ค‘๋‹จํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋ ค๋ฉด ๋ง์ปค๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ WebViewRenderer๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์กฐ์‚ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๋ฉด ๋‚ด PR ์ด ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฉฐ์ด ๋ฌธ์ œ๋ฅผ ๋‹จ๋ฒˆ์— ๊ณ ์ณ์•ผํ•ฉ๋‹ˆ๋‹ค.

James (๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค)๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ง€๊ธˆ์€ ๊ฒฝ๊ณ  ์ผ ๋ฟ์ด๋ฏ€๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋”๋ผ๋„์ด ์‹œ์ ์—์„œ๋Š” ๊ฑฑ์ •ํ•  ๊ฒƒ์ด ์—†์œผ๋ฉฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” Apple์ด ์ด์ „ UIWebView API์˜ ํ—ˆ์šฉ์„ ์ค‘๋‹จํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•  ๋•Œ ๋Œ€๋น„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ iOS ํŒ€๊ณผ ํ™•์ธํ•œ ํ›„ NSObject์—์„œ ์ƒ์† ๋œ ๋ชจ๋“  ํ•ญ๋ชฉ์ด ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ RenderWith๊ฐ€ ๋ Œ๋”๋Ÿฌ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ์•ฝ์†์€ iOS์—์„œ ์ž‘์—… ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ Œ๋”๋Ÿฌ๋ฅผ ์™„์ „ํžˆ ์‚ญ์ œํ•˜๊ณ  ๋ชจ๋“  ์‚ฌ๋žŒ์„

๋˜๋Š” ๋ณ„๋„์˜ ๋„ˆ๊ฒŸ๊ณผ ์ผ๋ถ€ ์œ ํ˜• ์ „๋‹ฌ๋กœ ๊ตํ™œ ํ•ด์ง€์‹ญ์‹œ์˜ค.

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @ Mikilll94 , ์šฐ๋ฆฌ๋Š”์ด ๋ฌธ์ œ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์ง€๋งŒ ์กฐ๋งŒ๊ฐ„ ์™„์ „ํ•œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. "์ „์ฒด ์†”๋ฃจ์…˜"์„ ์‚ฌ์šฉํ•˜๋ฉด Xamarin.Forms ์•ฑ์„ ์Šคํ† ์–ด์— ์ œ์ถœํ•  ๋•Œ๋งˆ๋‹ค Apple์—์„œ ๊ฒฝ๊ณ ๊ฐ€ ๋” ์ด์ƒ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด ์†Œ์Šค์—์„œ ํ˜„์žฌ WebViewRenderer ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋ Œ๋”๋Ÿฌ๊ฐ€ ํ˜„์žฌ ๊ธฐ๋ณธ๊ฐ’์ด๊ณ  ์˜์›ํžˆ ์†Œ์Šค์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ PR์„ ํ†ตํ•ด ๊ธฐ๋ณธ ๋ Œ๋”๋Ÿฌ๋ฅผ WKWebViewRenderer ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ƒˆ WKWebView ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Xamarin.Forms์˜ ์ตœ์ข… ์‚ฌ์šฉ์ž๋Š”์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ์•„ ์ฐจ๋ฆฌ์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Xamarin.Forms ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ”๋“œ์—์„œ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์›๋ž˜ WebViewRenderer ๋„ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด WebViewRenderer ์— ์˜์กดํ•˜๋Š” ์ปค์Šคํ…€ ๋ Œ๋”๋Ÿฌ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ.

๊ทธ๋Ÿฌ๋‚˜ WebViewRenderer ๊ฐ€ ์—ฌ์ „ํžˆ ์†Œ์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Apple์ด ์•ฑ์„ ์Šค์บ”ํ•˜๋Š” ๋™์•ˆ ์—ฌ์ „ํžˆ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „ 4.5 ์ธ Xamarin.Forms์˜ ์ตœ์‹  ๋ฒ„์ „์—์„œ๋Š” WebViewRenderer ์™„์ „ํžˆ ์‚ญ์ œํ•˜๊ณ  Apple์˜ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ค‘์ง€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธดํ•˜์ง€๋งŒ ์ œ๊ฑฐํ•ด์•ผ ํ•  ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Apple์˜ ๋ฉ”์‹œ์ง€๋Š” ๋‹น๋ถ„๊ฐ„ ๊ฒฝ๊ณ  ์ผ ๋ฟ์ด๋ฉฐ ์ƒˆ ๋ฒ„์ „์„ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ ์—†์œผ๋ฉฐ App Store์— ์ •์ƒ์ ์œผ๋กœ ์Šน์ธ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ (์ ์–ด๋„) 1 ๋…„์„์ฃผ๋Š” iOS 14๊นŒ์ง€ ๊ณ„์† ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์†Œ์Šค์—์„œ WebViewRenderer ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด์ง€๋งŒ์ด ์‹œ์ ์—์„œ ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ณ  ์ ์ฐจ์ ์œผ๋กœ ๋จผ์ € ์ƒˆ๋กœ์šด ๊ตฌํ˜„์œผ๋กœ ์ „ํ™˜ ํ•œ ๋‹ค์Œ ์†Œ์Šค์—์„œ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธด ํ”„๋กœ์„ธ์Šค์ด์ง€๋งŒ iOS 14๊ฐ€ ์ถœ์‹œ๋˜๊ธฐ ํ›จ์”ฌ ์ „์— ์ด๋ฃจ์–ด์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ๋ชจ๋“  ์šฐ๋ ค๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•Œ๋ ค ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋‹ต๋ณ€ ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ดํ•ด์™€ ์ธ๋‚ด์‹ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋ฟก ๋นต๋€จ
์ด ํ›Œ๋ฅญํ•œ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค :)

@jfversluis ๋‹ต๋ณ€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค
WebViewRenderer๋ฅผ ์†Œ์Šค์—์„œ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@NehalOsama ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€์ด XamForms ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ณ  Platforms.iOS ํ”„๋กœ์ ํŠธ์—์„œ WebViewRenderer.cs ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  ๋ชจ๋“  ์ฐธ์กฐ๊ฐ€ WKWebViewRenderer ๋ฅผ ๊ฐ€๋ฆฌ ํ‚ค๋„๋ก ๋ณ€๊ฒฝํ•˜๊ณ  ๊ณ ์œ  ํ•œ DLL์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜์„ธ์š”.

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

๋‚ด๊ฐ€ ๋ฌผ์–ด๋ด๋„ ๊ดœ์ฐฎ๋‹ค๋ฉด; ์™œ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? Apple์˜ ๋ฉ”์‹œ์ง€๋Š” ๊ฒฝ๊ณ  ์ผ ๋ฟ์ด๋ฉฐ Apple์ด ์‹ค์ œ๋กœ ์•ฑ์„ ๊ฑฐ๋ถ€ํ•˜๊ธฐ ์ „์—์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ๋Š” ๊ฑฑ์ •ํ•  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ๋ฐ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•˜๋”๋ผ๋„ ๊ทธ ์ด์œ ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›นํ‚ท์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ†ตํ•ฉ ํ•  ๊ฒƒ์„ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -527294907๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋‚ด ์‚ฌ์šฉ์ž ์ •์˜ ๋ Œ๋”๋Ÿฌ๊ฐ€ UIWebView๊ฐ€ ์•„๋‹Œ โ€‹โ€‹WKWebViewRenderer์ธ์ง€ ์–ด๋–ป๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?!
๊ทธ๋“ค ์‚ฌ์ด์— ๋ช…๋ฐฑํ•œ ์ฐจ์ด๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ทธ๊ฒƒ์„ ์ฆ๋ช…ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?!

์šฐ๋ฆฌ๊ฐ€ ์ผ์„ ์ œ๋Œ€๋กœํ–ˆ๋‹ค๋ฉด ๊ทธ๋“ค ์‚ฌ์ด์— ์–ด๋–ค ์ฐจ์ด๋„ ๋ณด์ด์ง€ ์•Š์•„์•ผํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค ๐Ÿ˜‰

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ฆ๊ฑฐ๊ฐ€ ํ•„์š”ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šคํฐ๋˜๋Š” ์‹ค์ œ ์œ ํ˜•์„ ํŒŒํ—ค ์น˜๊ธฐ ์œ„ํ•ด ๊ฒ€์‚ฌ๊ธฐ ๋‚˜ UITest ๋ฌผ๊ฑด์„ ํŒŒํ—ค์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์ƒ์„ฑ ํ•œ ์ปค์Šคํ…€ ๋ Œ๋”๋Ÿฌ์— ์ค‘๋‹จ ์ ์„ ์„ค์ •ํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด WKWebView ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ํ”Œ๋žซํผ์—์„œ ํŠน์ • ํŽ˜์ด์ง€๋ฅผ๋กœ๋“œํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ Œ๋”๋Ÿฌ์— ์•ฝ๊ฐ„์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ค‘๋‹จ ์ ์„ ์ž…๋ ฅํ•˜๊ณ  UIWebView ๋Œ€์‹  WKWebView ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UIWebView .

์‚ฌ์šฉ์ž ์ง€์ • ๋ Œ๋”๋Ÿฌ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ชจ๋“  ์ผ๋ฐ˜ WebView ์ปจํŠธ๋กค์„ WKWebViewRenderer ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์ƒ์† ๋Œ€์‹  WebView ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์ด ์ค„์„ iOS ํ”„๋กœ์ ํŠธ์˜ AssemblyInfo.cs :

[assembly: ExportRenderer(typeof(Xamarin.Forms.WebView), typeof(Xamarin.Forms.Platform.iOS.WKWebViewRenderer))]

์ด ๋•Œ๋ฌธ์— ๋‚ด ์•ฑ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์˜ค๋Š˜ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ WkWebViewRenderer

Dear Developer,
We identified one or more issues with a recent delivery for your app, [REDACTED]. 
Your delivery was successful, but you may wish to correct the following issues in 
your next delivery:ITMS-90809: Deprecated API Usageย - Apple will stop accepting 
submissions of apps that use UIWebView APIs.
Seeย https://developer.apple.com/documentation/uikit/uiwebviewย for more information.

After youโ€™ve corrected the issues, you can use Xcode or Application Loader to upload
a new binary to App Store Connect.
Best regards,
The App Store Team

์ด ์ˆ˜๋™ ์–ธ์–ด ( "์ˆ˜๋ฝ ์ค‘์ง€")์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‚ด ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋ฆด๋ฆฌ์Šค์— ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ด์ œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํด๋ผ์ด์–ธํŠธ ์•ฑ์˜ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ์ˆ˜์ • ์‚ฌํ•ญ์˜ ETA๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @joehanna ๋ณด๊ณ 

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

๋˜ํ•œ

๋‚ด ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•˜๊ณ  ๋ฆด๋ฆฌ์Šค์— ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ํ™•์ธ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์•ฑ ์ •์˜๋กœ ์ด๋™ ํ•œ ๋‹ค์Œ ํ™œ๋™, ๋ชจ๋“  ๋นŒ๋“œ ์•„๋ž˜์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

image

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

์•„, ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ๊ฑฐ๊ธฐ์—์„œ ๋งŒ์ง€๊ณ ์žˆ๋Š” ์ข‹์€ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. iOS 13์ด ์ถœ์‹œ๋˜๊ณ  ์‚ฌ๋žŒ๋“ค์ด์ด๋ฅผ ์œ„ํ•ด ๋งŽ์€ ๋นŒ๋“œ๋ฅผ ์ œ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ํ™œ๋™์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์œ„์—์„œ ๋ณผ ์ˆ˜์žˆ๋Š” ๋”๋ฏธ ์•ฑ์˜ ์ƒˆ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ณ  ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡์ด๋“  ๋ณด๋Š”๋Œ€๋กœ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ์‹ ๊ณ  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@joehanna ๋จผ์ € ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ณ  ๋ช‡ ๋ถ„ ์•ˆ์— ๋‘ ๋ฒˆ์งธ ์ด๋ฏธ์ง€๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋นŒ๋“œ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ UIWebView ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

image

๋“œ๋””์–ด ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๋“œ๋ผ๋งˆ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํŒ”๋กœ์šฐ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Screen Shot 2019-09-23 at 1 54 55 PM

SDK_ ๋ฒ„๊ทธ

์ด ๋ฌธ์ œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค ํŒŒ์ผ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
Xamarin ๊ฐœ๋ฐœ ํŒ€์€ ์ตœ์‹  Apple ๊ฐœ๋ฐœ ์ •์ฑ…์„ ์ฐธ์กฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@jfversluis Xamarin.iOS ํ”„๋กœ์ ํŠธ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๊ฐ€ Xamarin.Forms ์•„๋ž˜์— ์žˆ์ง€๋งŒ ๊ทผ๋ณธ ์›์ธ์ด ๋™์ผํ•ฉ๋‹ˆ๊นŒ? ์ˆ˜์ •์ด Xamarin.iOS์™€ Xamarin.Forms๋ฅผ ๋ชจ๋‘ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
CompaNova LLC

@dmitrymal ๋ช‡ ๊ฐ€์ง€ ์›์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค

Xamarin.iOS๊ฐ€ ์›์ธ์„ ํ•ด๊ฒฐ ํ•œ ๋‹ค์Œ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž‘์—…์ค‘์ธ ๋ช‡ ๊ฐ€์ง€ ์†”๋ฃจ์…˜์ด ์žˆ์œผ๋ฉฐ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋”ฐ๋ผ์ด ๋ฌธ์ œ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์—ฌ์ „ํžˆ s / unverified๋กœ ํƒœ๊ทธ ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์•„๋‹ˆ @taublast๊ฐ€ ์•„๋‹ˆ์•ผ ๐Ÿคก

์ด ์ˆ˜์ •์ด ์ž ์‹œ ์ค‘๋‹จ๋˜์–ด ํ˜„์žฌ ๊ธด๊ธ‰ํ•˜์ง€ ์•Š๋‹ค๋Š” ์ ์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ, ์™„๋ฃŒ๋˜๋ฉด ์ด์ „ XF ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ํฌํŒ…๋ฉ๋‹ˆ๊นŒ? 3.4์— ๋นŒ๋“œ ๋œ ๋Œ€๊ทœ๋ชจ ์•ฑ ์ œํ’ˆ๊ตฐ์ด ์žˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ์ข…์†์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•ด XF 4.0 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ํ•ญ์ƒ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

@ 1888games ์ตœ์ข… ์ตœ์ข… ์ˆ˜์ • ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์ด ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

https://github.com/xamarin/Xamarin.Forms/pull/7367 ์ด ๋ณ‘ํ•ฉ๋˜์—ˆ์ง€๋งŒ ํผ์ฆ์˜ ์ผ๋ถ€์ผ ๋ฟ์ด๋ฏ€๋กœ ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์งˆ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

Xamarin.Forms SDK ๋ฐ Xamarin.IOS SDK ๋‚ด์—์„œ ๋ง์ปค ์ˆ˜์ •์ด ์—ฌ์ „ํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ๋ฒ„์ „์˜ XamarinForms๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ–ˆ์Šต๋‹ˆ๊นŒ?

@ s-bhavin-shah, ์šฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์™€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์˜์›ํžˆ ์น˜์›Œ์•ผํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ํŠน์ • Xamarin.Forms ๋ฒ„์ „์—์„œ๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ๊ฑฑ์ •ํ•  ์ด์œ ๊ฐ€ ์—†์Œ์„ ๋‹ค์‹œ ๋ง์”€ ๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Apple์˜ ๋ฉ”์‹œ์ง€๋Š” ํ˜„์žฌ๋กœ์„œ๋Š” ๊ฒฝ๊ณ  ์ผ ๋ฟ์ด๋ฉฐ ์•ž์œผ๋กœ๋„ ์ข‹์€์‹œ๊ธฐ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ Apple์ด ์•ฑ์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ ๋  ๋•Œ๊นŒ์ง€ ์ค€๋น„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ตœ์‹  ์ •๋ณด๋ฅผ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ง์ปค๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” Xamarin ๊ฐœ์ฒด๋ฅผ ์‹ค์ œ๋กœ ์ œ๊ฑฐ (ํ•ต์‹ฌ)ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด PR์ด ๋ณ‘ํ•ฉ๋˜์–ด WKWebViewRenderer ์ด ๊ธฐ๋ณธ๊ฐ’์ด๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋Š” "iOS ์—ฐ๊ฒฐ"์†”๋ฃจ์…˜์„ ์ถœ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ WKWebViewRenderer ๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด๊ณ  WebViewRenderer ๊ฐ€ ๋” ์ด์ƒ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด Apple๋กœ ์ „์†ก๋˜๋Š” ๊ฒฐ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ๋ง์€; iOS ์—ฐ๊ฒฐ ์†”๋ฃจ์…˜์„ ์ถœ์‹œํ•˜๋Š” ๊ฒƒ์€ ๋ง์ฒ˜๋Ÿผ ์‰ฝ์ง€ ์•Š์œผ๋ฉฐ ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ์˜ ์žฅ์ ์€ ์•„๋งˆ๋„ ์™„์ „ํ•œ ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์ ์ฐจ์ด ์†”๋ฃจ์…˜์œผ๋กœ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋ชจ๋“  ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!

UIWebView๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  WkWebView๋กœ ๋Œ€์ฒด ํ•  ๋•Œ์ด ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/issues/8028

UIWebView๋ฅผ WkWebView๋กœ ๋ฐ”๊พธ๋ฉด ์‚ฌ๋žŒ๋“ค์˜ ์•ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ Mikilll94 ์š”์ ์€ ์œ ํšจํ•˜์ง€๋งŒ ๊ฐ„๋‹จํ•œ ์‚ฌ์‹ค์€ Apple์ด ์—ฌ์ „ํžˆ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Xamarin์ด ์•„๋ฌด ์ž‘์—…๋„ํ•˜์ง€ ์•Š๋”๋ผ๋„ Apple์€ (์•„๋งˆ ํ–ฅํ›„ 9 ๊ฐœ์›” ๋‚ด์—) ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ์•ฑ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ด์ฐจํ”ผ ํฐ ๋ณ€ํ™”๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฟก๋ฟก
๋งž์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ WkWebView์— ๋งค์šฐ ์ค‘์š”ํ•˜๊ณ  ๋งŽ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น  ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ํ˜„์žฌ๋กœ์„œ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—†์Œ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ! ์™„๋ฒฝํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Screen Shot 2019-10-25 at 7 18 59 AM

์•ˆ๋…•ํ•˜์„ธ์š” @samirgcofficial ๊ท€ํ•˜์˜ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ  https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -542363338์˜ ๋Œ“๊ธ€์„ ๋ณด์…จ๋‚˜์š”?

๊ทธ๊ฒƒ์€ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๊ฝค ๋งŽ์ด ์„ค๋ช… ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

์š”์•ฝ : ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋‚˜ ํ•ด๊ฒฐ์ฑ…์ด ์—†์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Apple์˜์ด ๋ฉ”์‹œ์ง€๋Š” ๊ฒฝ๊ณ  ์ผ ๋ฟ์ด๋ฉฐ ๋ฌธ์ œ์—†์ด ์•ฑ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.์ด ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ๋งŒ ์žˆ์œผ๋ฉด๋ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ
๋‚ด ๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด Apple์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ UIWebView๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์•ฑ์„ ๋” ์ด์ƒ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ Xamarin ์•ฑ์„ App Store๋กœ ๋ณด๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋งค์šฐ ์ค‘์š”ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด์— ์•ฑ์„ ๊ฒŒ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์ด์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@JawadJaber ์˜ˆ, ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค! ํ…Œ์ŠคํŠธ ๋น„ํ–‰์„ ์œ„ํ•ด ์•ฑ ์Šคํ† ์–ด์—์„œ ๋‚ด ์•ฑ์˜ ์™ธ๋ถ€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฑ์˜ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ์ด WebView๋Š” ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹œ๋‚˜๋ฆฌ์˜ค๋Š” Test Flight์—์„œ ํ•  ์ˆ˜์—†๋Š” ์™ธ๋ถ€ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ํ•ด๊ฒฐ์ฑ…?

@JawadJaber Apple์—์„œ ๊ฒฝ๊ณ ๊ฐ€ ์•„๋‹Œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ฑฐ๋ถ€ํ–ˆ๋‹ค๋Š” ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ๋ฐ›์€ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฐ ์ƒท์ด๋‚˜ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค. ๊ธˆ์š”์ผ์— ๊ฒฝ๊ณ  ์ด๋ฉ”์ผ ์™ธ์— ๋‹ค๋ฅธ ๋ฌธ์ œ์—†์ด ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ Apple์— ์„ฑ๊ณต์ ์œผ๋กœ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ œ์ถœํ•˜๊ณ  ๊ฒฝ๊ณ  ์ด๋ฉ”์ผ ๋งŒ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

@JawadJaber @samirgcofficial ์ด ์ด์œ  ๋•Œ๋ฌธ์— ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๊ฑฐ๋ถ€๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์œ ๋ฅผ ๋ง์”€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ ์™ธ์—๋Š” ์—ฌ์ „ํžˆ ๊ฒฝ๊ณ ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด์ด๋ฅผ ํ™•์ธํ•˜๊ณ  ์žˆ์œผ๋ฉฐ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ดํ›„ ์ „์ž ๋ฉ”์ผ ๋ฉ”์‹œ์ง€์˜ ๊ฒฝ๊ณ  ํ…์ŠคํŠธ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ์ด ์‹œ์ ์—์„œ ๊ฐ€๋Šฅํ•œ ํ•œ ๋ช…ํ™•ํ•˜๊ณ  ํˆฌ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์˜ ์•ž๋ถ€๋ถ„์—๋Š” ์ž์‹ ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๊ฑฐ๋ถ€๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์žˆ์—ˆ์ง€๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๋” ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ๋„ ํ•ด๋‹น ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ข‹์•„, ์ด์ œ Apple์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Œ์„ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค.
3 ์ฃผ ์ „์— ๊ฑฐ์ ˆ ๋‹นํ–ˆ๊ณ  App Store ์ง€์›ํŒ€์— ์—ฐ๋ฝํ•ด ๋˜‘๊ฐ™์€ ๋ง์„ํ–ˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋“ค์˜ ์ •์ฑ…).
๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ์€ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์• ํ”Œ์ด์ด ์‚ฌ๊ฑด์— ๋Œ€ํ•œ ๊ทธ๋“ค์˜ ์ •์ฑ…์„ ๋ฐฉ๊ธˆ ๋ณ€๊ฒฝํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @jfversluis , @ martijn00 @ cabal95

์ข‹์•„, ์•ฑ ์Šคํ† ์–ด ํŒ€์œผ๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ์•ฑ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๊ณ  ํŠน์ • ์ง€์—ญ ์‚ฌ๋žŒ๋“ค์ด TWILO๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OTP ์ธ์ฆ์„ ๋ฐ›๋„๋ก ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ œํ•œ์„ ์ œ์™ธํ•ด์•ผํ•˜๋ฉฐ ์•ฑ์€ ํ˜„์žฌ ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค. :). ๊ทธ๊ฒŒ ๋‹ค์•ผ. ๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ

๊ณ ๊ฐ์—๊ฒŒ ์šฐ๋ฆฌ ์•ฑ์ด ์ ˆ๋Œ€์ ์œผ๋กœ ๊ดœ์ฐฎ๋‹ค๊ณ  ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ์ผ๋ฟ์ž…๋‹ˆ๋‹ค ((

@YuliaLoyko๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์šฐ๋ฆฌ๋Š” ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์›€์ง์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

4.4๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ 

@ prasannamca1107 ๋ช…ํ™•ํ•˜๊ณ  ํฌ๋ง์„ ์–ป์ง€ ์•Š๊ธฐ ์œ„ํ•ด. ์ด๊ฒƒ์€ 4.4์—์„œ ์ˆ˜์ •๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์—ฌ๊ธฐ์„œ Xamarin.iOS์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Xamarin.Forms ํŒ€์—์„œ๋งŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฐ์€๋ฉด์—์„œ ์ €๋Š” ์ž‘๋™ํ•˜๋Š” ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์šฐ๋ฆฌ๋Š” ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ๊ฒƒ์ด ์ •๋ ฌ๋˜๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ์†์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ์—ฌ์ „ํžˆ ๊ฑฑ์ •ํ•  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. Apple์˜ ๋ฉ”์‹œ์ง€๋Š” ์—ฌ์ „ํžˆ ๊ฒฝ๊ณ  ์ผ๋ฟ์ž…๋‹ˆ๋‹ค!

๋‚˜๋Š” xamarin ํฌ๋Ÿผ ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ด ๋งํฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@softsan , ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋ถˆํ–‰ํžˆ๋„ ๊ทธ๊ฒƒ์€ ํ˜„์žฌ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” (์‰ฌ์šด) ํ•ด๊ฒฐ์ฑ…์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€๋ณด๊ธฐ ์—”์˜ UIWebViewRenderer์™€ ์ž์‹ ์˜ Xamarin.Forms ํŒจํ‚ค์ง€๋ฅผ

์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์†”๋ฃจ์…˜์„ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”! :)

์ง€๋‚œ ๊ธˆ์š”์ผ์— ์ƒˆ ์•ฑ์„ ์ œ์ถœํ–ˆ๋Š”๋ฐ ๋™์ผํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜์ง€๋งŒ ๊ทธ์ € ๊ฒฝ๊ณ ์˜€์Šต๋‹ˆ๋‹ค.
์•ฑ์ด ์Šน์ธ๋˜๊ณ  ๋ฌธ์ œ์—†์ด ์•ฑ ์Šคํ† ์–ด์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

@jfversluis , @softsan WKWebView ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” WebView ์šฉ ๋ Œ๋”๋Ÿฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ƒ์ ์— ๊ฒŒ์‹œํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฒฝ๊ณ ๋ฅผ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ Œ๋”๋Ÿฌ๋Š” ๋ Œ๋”๋Ÿฌ์˜ ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์„ ๋”ฐ๋ฅด์ง€๋งŒ ๋‹ค์Œ์€ ๊ด€๋ จ ์ฝ”๋“œ์˜ ๊ฐ„๋‹จํ•œ ์Šค ๋‹ˆํŽซ์ž…๋‹ˆ๋‹ค.

if (์ œ์–ด == null)
{
_contentController = ์ƒˆ๋กœ์šด WKUserContentController ();
var frame = UIApplication.SharedApplication.Delegate.GetWindow (). Bounds;
var cgRect = new CoreGraphics.CGRect (frame.X, frame.Y, frame.Width, frame.Height);
var config = new WKWebViewConfiguration {UserContentController = _contentController};
_wKWebView = ์ƒˆ๋กœ์šด WKWebView (cgRect, config)
{
NavigationDelegate = new WKNavigationDelegate ()
};

                    SetNativeControl(_wKWebView);
                }

์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด ์ฝ”๋“œ์—๋Š” ๋‹จ ํ•œ ๊ณณ๋งŒ ์žˆ์œผ๋ฉฐ์ด ์ฝ”๋“œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ–ˆ์ง€๋งŒ Apple์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ†  ํŒ€์— ๊ฒ€ํ†  ๊ฒฝํ•ฉ์„ ์ œ์ถœํ–ˆ์œผ๋ฉฐ ๋‹ต๋ณ€์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@seanstilson ์€

Apple์€ ์•„๋งˆ๋„ UIWebView์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ„๋‹จํžˆ ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ์•ฑ ๋‚ด๋ถ€์—์žˆ๋Š” Xamarin.Forms ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด.

์ด๊ฒƒ์„ ๋งํ•˜๊ณ ; Apple์ด ์ด๋กœ ์ธํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ํ—ˆ์šฉ์„ ์‹ค์ œ๋กœ ์ค‘๋‹จํ•˜๊ธฐ ์ „์—์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

UIWebViewRenderer ๋นŒ๋“œ์— ๋Œ€ํ•œ ์ด์ „ ๊ฒŒ์‹œ๋ฌผ์„ ๋†“์ณค์Šต๋‹ˆ๋‹ค.
๋ฐ”์ด๋„ˆ๋ฆฌ @jfversluis์— , ๋‚ด ๋‚˜์œ. ์‘๋‹ต ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

2019 ๋…„ 11 ์›” 14 ์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 11:54 Gerald Versluis [email protected]
์ผ๋‹ค :

@seanstilson https://github.com/seanstilson ์†Œ์šฉ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ™์ด
์‚ฌ์šฉ์ž ์ง€์ • ๋ Œ๋”๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•˜๋”๋ผ๋„
WKWebView๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. UIWebViewRenderer๋Š” ์—ฌ์ „ํžˆ
Xamarin.Forms ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ํ˜„์žฌ ์ž‘๋™ ๋ฐฉ์‹์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š”
๋ณ€๊ฒฝํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ.

Apple์€ ์•„๋งˆ๋„ UIWebView์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ„๋‹จํžˆ ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ
์ฝ”๋“œ์— ์žˆ์ง€๋งŒ Xamarin.Forms ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์—ฌ์ „ํžˆ ์•ฑ ๋‚ด๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋งํ•˜๊ณ ; ์šฐ๋ฆฌ๋Š” ์ „์— ์–ด๋–ค ๋ฐฉ๋ฒ• ์œผ๋กœ๋“  ๊ณ ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ๋•Œ๋ฌธ์— ์• ํ”Œ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ—ˆ์šฉ์„ ์ •๋ง๋กœ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/xamarin/Xamarin.Forms/issues/7323?email_source=notifications&email_token=AMVYZVVKIGZKMMH5XOS2QATQTWGF5A5CNFSM4ISLFU32YY3PNVWWK3TUL52HSTDN5VRWEXG43VX33Kissue4DFVRWEXG43VX33Kissue4DFVRWEXG43VMVBW63 .
๋˜๋Š” ๊ตฌ๋… ์ทจ์†Œ
https://github.com/notifications/unsubscribe-auth/AMVYZVUT5A73R4SXSQFRDMDQTWGF5ANCNFSM4ISLFU3Q
.

@seanstilson ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์— ๋งŽ์€ ํ–‰๋™์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ญ”๊ฐ€ ๋†“์นœ ๊ฒƒ์„ ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

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

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ข‹์€ ์š”์•ฝ์„ ๋ณด๋ ค๋ฉด https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -532228577 ์—ฌ๊ธฐ์—์„œ์ด ์ฃผ์„์„ ์ฝ์œผ์‹ญ์‹œ์˜ค.

ํ˜„์žฌ ์ตœ์‹  ์ง„ํ–‰ ์ƒํ™ฉ์€ https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -542363338์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ ์€ ์šฐ๋ฆฌ๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Apple์ด ์‹ค์ œ๋กœ์ด ๋•Œ๋ฌธ์— ์•ฑ์„ ๊ฑฐ๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์–ด๋Š ์ชฝ์ด๋“  ์ค€๋น„ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์œ ์ผํ•œ ๊ฒƒ์€ Apple๋กœ๋ถ€ํ„ฐ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.์ด ๋ฉ”์‹œ์ง€๋Š” ์ง€๊ธˆ์€ ๋ฌด์‹œํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

์ดํ•ด์™€ ์ธ๋‚ด์‹ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ด์— ๋Œ€ํ•œ ์†Œ๊ทœ๋ชจ ์—…๋ฐ์ดํŠธ : # 8001์ด ์ œ์•ˆ ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋กœ ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์งˆ ๊ฒƒ์ด๋ผ๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด Xamarin.iOS์—์„œ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์‚ฌํ•ญ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๊ทธ๋ ‡๊ฒŒ ํ•  ๋•Œ ๋งˆ๋‹ค์ด ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์˜ฌ๋ฐ”๋ฅธ Xamarin.iOS ๋ฒ„์ „ (4.5๋ถ€ํ„ฐ ์‹œ์ž‘)์ด ๋งˆ์นจ๋‚ด ์‚ฌ๋ผ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ช…ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด Xamarin.Forms ๋ฒ„์ „ 4.5๋งŒ์œผ๋กœ๋Š”์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์ˆ˜์ •์ด ์ž„๋ฐ• ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์‹œ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!

Apple์€ UIWebView ์ง€์› ์ค‘๋‹จ ๊ณ„ํš์— ๋Œ€ํ•ด ์ข€ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ์งง์€ ์„ฑ๋ช… ์„ ๋ฐœํ‘œ

App Store๋Š” 2020 ๋…„ 4 ์›”๋ถ€ํ„ฐ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ์•ฑ๊ณผ 2020 ๋…„ 12 ์›”๋ถ€ํ„ฐ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ ์—…๋ฐ์ดํŠธ๋ฅผ ๋” ์ด์ƒ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ด๋“ ๊ฐ„์— ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์‹œ๊ฐ„์ด ์—ฌ์ „ํžˆ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ์„ ํ˜ธํ•˜๋Š” ์†”๋ฃจ์…˜์„ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. Xamarin.iOS ํŒ€๊ณผ ํ•จ๊ป˜ ์šฐ๋ฆฌ๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฒฝ๊ณ ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š๋Š” ์•ฑ์„ โ€‹โ€‹์Šคํ† ์–ด์— ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” (ํ˜„์žฌ) ๋ ˆ๊ฑฐ์‹œ WebViewRenderer ์‚ญ์ œํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๊ฒƒ์ด _the_ ์†”๋ฃจ์…˜์ธ์ง€ ๊ฒฐ์ •ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘์—… ์ค‘์ด๋ฉฐ ์ค€๋น„๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ง€๊ธˆ ์šฐ๋ฆฌ๋Š” ์–ธ์ œ ์ค€๋น„ํ•ด์•ผํ• ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„ ์ธ๋‚ด์‹ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋ชจ๋‘์—๊ฒŒ ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค! ๊ณง ์‚ฌ์šฉํ•  ์ตœ์ข… ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๊ฒƒ์ด ๋ผ์ด๋ธŒ์ด๊ณ  ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์„ ๋•Œ๋งˆ๋‹ค ์—ฌ๊ธฐ์— ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ™•๊ณ ํ•œ ์•ฝ์†์€ ์•„๋‹ˆ์ง€๋งŒ 4 ์›” ๋งˆ๊ฐ์ผ์ด ํ›จ์”ฌ ๋” ๋นจ๋ฆฌ ๋๋‚˜์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ ์ €ํฌ์™€ ํ•จ๊ป˜ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ•ด๊ฒฐ์ฑ…์ด ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค!

๋ชจ๋“  ๋น„ํŠธ๊ฐ€ ์ œ์ž๋ฆฌ์— ์žˆ์œผ๋ฉฐ ์†”๋ฃจ์…˜ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค! ์š”์•ฝ : ๋ชจ๋“  ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์ด ๋ฌธ์„œ์— ์„ค๋ช…๋˜์–ด

์•ˆ์ •์ ์ธ ์ฑ„๋„์—์„œ ์ตœ์‹  Visual Studio (Mac ์šฉ)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ํ˜„์žฌ Xamarin.Forms 4.5-pre1 ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘๋ฅผ์œ„ํ•œ ์˜ต์…˜์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์Œ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์•ˆ์‹ฌํ•˜์‹ญ์‹œ์˜ค. ์•ˆ์ •์ ์ธ ํŒจํ‚ค์ง€๋Š” ๋งˆ๊ฐ์ผ ์ด์ „์— ์ถœ์‹œ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Stable 4.5๋Š” 2 ์›” ์ค‘์ˆœ๋ถ€ํ„ฐ ๋ง๊นŒ์ง€ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ --optimize=experimental-xforms-product-type ํ”Œ๋ž˜๊ทธ๋ฅผ iOS ์ถ”๊ฐ€ mtouch ์ธ์ˆ˜ ์„ค์ •์— UIWebView ์— ๋Œ€ํ•œ ์ž์‹ ์˜ ์–ธ๊ธ‰์ด ์—†๋‹ค๋ฉด ๐Ÿ™‚

๋น ๋ฅธ ์‹œ์ผ ๋‚ด์— ์‹œ๋„ํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. Forms ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํŒจํ‚ค์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ ์ƒˆ ๋ฒ„์ „์„ ์Šคํ† ์–ด์— ๋ฆด๋ฆฌ์Šคํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ,์ด ์†”๋ฃจ์…˜์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ ์–ด๋„ ๋นŒ๋“œ๋ฅผ ์—…๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡๊ฒŒ ํ•  ๋•Œ๋งˆ๋‹ค 4.5 ์•ˆ์ • ํŒจํ‚ค์ง€๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ž์‹ ์žˆ๊ฒŒ ์ƒˆ ๋ฒ„์ „์„ ๋ฆด๋ฆฌ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์†”๋ฃจ์…˜์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ €์—๊ฒŒ ์ง์ ‘ ์—ฐ๋ฝํ•˜๊ฑฐ๋‚˜ (gerald.versluis [a with a long tail] microsoft.com) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ƒˆ ๋ฌธ์ œ๋ฅผ์—ฌ์‹ญ์‹œ์˜ค. ๋ฌผ๋ก  ๊ธ์ •์  ์ธ ํ”ผ๋“œ๋ฐฑ๋„ ํ•ญ์ƒ ๋†’์ด ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค ๐Ÿ˜‰

๋‹ค์‹œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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