Xamarin.forms: [๋ฒ„๊ทธ] UIWebView Apple 2020 ๋…„ 4 ์›” ์ง€์› ์ค‘๋‹จ

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

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์ฃผ์„ ๋ฐ ๋ฌธ์„œ ๋งํฌ๋ฅผ ์ฝ์œผ์‹ญ์‹œ์˜ค.

https://github.com/xamarin/Xamarin.Forms/issues/9823#issuecomment -625946175

๋‹ค์Œ ๊ณต์‹ ๋ฌธ์„œ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/

https://docs.microsoft.com/en-us/xamarin/ios/release-notes/13/13.16#help -with-uiwebview-deprecation

์›๋ž˜ ๋ฌธ์ œ ์„ค๋ช…

xamarin 4.5.0.356์„ ์„ค์น˜ํ•˜๊ณ  testflight๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ iOS์—์„œ ๋‚ด ์•ฑ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. xamarin ์–‘์‹ 4.5๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ฌธ์„œ์˜ ๋ชจ๋“  ๋งํฌ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/webview?tabs=windows#uiwebview -deprecation-and-app-store-rejection-itms-90809

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/release-notes/4.5/4.5.0

๋‚˜๋Š” ์—ฌ์ „ํžˆ ์‚ฌ๊ณผ๋กœ๋ถ€ํ„ฐ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š”๋‹ค.
"๊ฐœ๋ฐœ์ž๋‹˜๊ป˜,

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

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

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

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

App Store ํŒ€ "

๋ˆ„๊ตฐ๊ฐ€๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ๋„์™€ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ ๋‚ด csproj์ž…๋‹ˆ๋‹ค

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{XXXXXXXXXXXXXXXXXXXXXXXXXXXXX}</ProjectGuid>
    <ProjectTypeGuids>{XXXXXXXXXXXXXXXXXX};{XXXXXXXXXXXXXXXXXXXXX}</ProjectTypeGuids>
    <TemplateGuid>{XXXXXXXXXXXXXXXXXXXXXXXXXXXX}</TemplateGuid>
    <OutputType>Exe</OutputType>
    <RootNamespace>Agenda.iOS</RootNamespace>
    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
    <AssemblyName>Agenda.iOS</AssemblyName>
    <MtouchEnableSGenConc>true</MtouchEnableSGenConc>
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
    <DefineConstants>DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <MtouchArch>x86_64</MtouchArch>
    <MtouchLink>None</MtouchLink>
    <MtouchDebug>true</MtouchDebug>
    <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\iPhoneSimulator\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <MtouchLink>Full</MtouchLink>
    <MtouchArch>x86_64</MtouchArch>
    <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\iPhone\Debug</OutputPath>
    <DefineConstants>DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <MtouchArch>ARM64</MtouchArch>
    <CodesignKey>iPhone Developer</CodesignKey>
    <MtouchDebug>true</MtouchDebug>
    <CodesignEntitlements>
    </CodesignEntitlements>
    <CodesignProvision>
    </CodesignProvision>
    <IOSDebugOverWiFi>true</IOSDebugOverWiFi>
    <CodesignExtraArgs />
    <CodesignResourceRules />
    <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\iPhone\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <MtouchArch>ARM64</MtouchArch>
    <CodesignKey>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</CodesignKey>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
    <CodesignProvision>Agenda Distribution</CodesignProvision>
    <BuildIpa>true</BuildIpa>
    <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(RunConfiguration)' == 'Default' ">
    <AppExtensionDebugBundleId />
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Main.cs" />
    <Compile Include="AppDelegate.cs" />
    <None Include="Entitlements.plist" />
    <BundleResource Include="GoogleService-Info.plist" />
    <None Include="Info.plist" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Core" />
    <Reference Include="Xamarin.iOS" />
    <Reference Include="System.Numerics" />
    <Reference Include="System.Numerics.Vectors" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json">
      <Version>12.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Firebase.iOS.CloudMessaging">
      <Version>3.1.2</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms" Version="4.5.0.356" />
    <PackageReference Include="Xamarin.Essentials" Version="1.5.0" />
    <PackageReference Include="Xamarin.Forms.Visual.Material">
      <Version>4.5.0.356</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.IQKeyboardManager">
      <Version>1.4.1</Version>
    </PackageReference>
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
  <ItemGroup>
    <ProjectReference Include="..\Agenda\Agenda.csproj">
      <Project>{XXXXXXXXXXXXXXXXXXXXXXXXX}</Project>
      <Name>Agenda</Name>
    </ProjectReference>
  </ItemGroup>
  <ProjectExtensions>
    <VisualStudio>
      <UserProperties XamarinHotReloadWrongLinkerErrorInfoBarAgendaiOSHideInfoBar="True" />
    </VisualStudio>
  </ProjectExtensions>
</Project>
needs-info โ“ unverified bug

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

์ข‹์•„, ๋‚ด๊ฐ€ ๊ณ ์ณค์–ด. ์ด๊ฒƒ์€ ๋‚ด ์ ˆ์ฐจ์˜€์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ mac-mini ์˜จ๋ผ์ธ์œผ๋กœ win10์˜ Visual Studio์—์„œ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค. ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • "๋นˆ / ์˜ค๋ธŒ์ ํŠธ ๋Œ„์Šค"
  • ํ”„๋กœ์ ํŠธ์—์„œ Xamarin.Visual.Material.Design ์ œ๊ฑฐ
  • "๋นˆ / ์˜ค๋ธŒ์ ํŠธ ๋Œ„์Šค"
  • Xamarin.iOS.MaterialComponents ๋ถˆ์•ˆ์ •ํ•œ ๋ฒ„์ „ 92.0.0-rc2 ์„ค์น˜
  • Xamarin.Visual.Material.Design 4.5.0.356 ์„ค์น˜

์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๊ทธ ๊ตฌ์„ฑ ์š”์†Œ์˜€์Šต๋‹ˆ๋‹ค. Firebase ํด๋ผ์šฐ๋“œ ๋ฉ”์‹œ์ง•์€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋„์›€์„์œ„ํ•œ Thx.

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

@EdoardoCinelli Release | iPhone ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๋ง์ปค ๋™์ž‘์„ "SDK ์ „์šฉ"๋˜๋Š” "๋ชจ๋‘ ๋งํฌ"๋กœ ์„ค์ • ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋˜ํ•œ ๋งํฌ๋ฅผ ๋”ฐ๋ผ ๊ฐ”๊ณ  ์—ฌ์ „ํžˆ ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋‚ด ์•ฑ์˜ cs.proj๋„ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ง์ปค๋Š” ๋งํฌ ํ”„๋ ˆ์ž„ ์›Œํฌ SDK ์ „์šฉ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉฐ mtouch ์ธ์ˆ˜์— "--optimize = experimental-xforms-product-type"์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> <ProductVersion>8.0.30703</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{7FE56767-FBA2-4515-AD06-03F538621686}</ProjectGuid> <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <OutputType>Exe</OutputType> <RootNamespace>VisitPikeville2.iOS</RootNamespace> <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> <AssemblyName>VisitPikeville2.iOS</AssemblyName> <NuGetPackageImportStamp> </NuGetPackageImportStamp> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\iPhoneSimulator\Debug</OutputPath> <DefineConstants>DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <ConsolePause>false</ConsolePause> <MtouchArch>i386, x86_64</MtouchArch> <MtouchLink>None</MtouchLink> <MtouchDebug>true</MtouchDebug> <CodesignProvision>Visit Pikeville City App Development</CodesignProvision> <CodesignKey>iPhone Developer: Michael harrison (R52P7U9CKM)</CodesignKey> <LangVersion>default</LangVersion> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> <DebugType>none</DebugType> <Optimize>true</Optimize> <OutputPath>bin\iPhoneSimulator\Release</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <MtouchLink>SdkOnly</MtouchLink> <MtouchArch>i386, x86_64</MtouchArch> <ConsolePause>false</ConsolePause> <CodesignProvision>Visit Pikeville City App</CodesignProvision> <CodesignKey>iPhone Distribution: Bit Source, LLC (75D68EY2Q2)</CodesignKey> <LangVersion>default</LangVersion> <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\iPhone\Debug</OutputPath> <DefineConstants>DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <ConsolePause>false</ConsolePause> <MtouchArch>ARM64</MtouchArch> <CodesignKey>iPhone Developer: Michael harrison (R52P7U9CKM)</CodesignKey> <MtouchDebug>true</MtouchDebug> <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> <CodesignProvision>Visit Pikeville City App Development</CodesignProvision> <MtouchLink>None</MtouchLink> <DeviceSpecificBuild>false</DeviceSpecificBuild> <LangVersion>default</LangVersion> <MtouchInterpreter>-all</MtouchInterpreter> <IntermediateOutputPath></IntermediateOutputPath> <MtouchVerbosity></MtouchVerbosity> <IOSDebuggerPort></IOSDebuggerPort> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> <DebugType>none</DebugType> <Optimize>true</Optimize> <OutputPath>bin\iPhone\Release</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <MtouchArch>ARM64</MtouchArch> <ConsolePause>false</ConsolePause> <CodesignKey>iPhone Distribution: Bit Source, LLC (75D68EY2Q2)</CodesignKey> <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> <CodesignProvision>Visit Pikeville City App</CodesignProvision> <MtouchLink>SdkOnly</MtouchLink> <LangVersion>default</LangVersion> <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs> <DeviceSpecificBuild>true</DeviceSpecificBuild> <MtouchEnableSGenConc>true</MtouchEnableSGenConc> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' "> <DebugType>none</DebugType> <Optimize>True</Optimize> <OutputPath>bin\iPhone\Ad-Hoc</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <ConsolePause>False</ConsolePause> <MtouchArch>ARM64</MtouchArch> <BuildIpa>True</BuildIpa> <CodesignProvision>VS: WildCard Development</CodesignProvision> <CodesignKey>iPhone Developer: Michael harrison (R52P7U9CKM)</CodesignKey> <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> <LangVersion>default</LangVersion> <MtouchLink></MtouchLink> <AllowUnsafeBlocks>false</AllowUnsafeBlocks> <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' "> <DebugType>none</DebugType> <Optimize>True</Optimize> <OutputPath>bin\iPhone\AppStore</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <ConsolePause>False</ConsolePause> <MtouchArch>ARM64</MtouchArch> <CodesignProvision>Visit Pikeville City App</CodesignProvision> <CodesignKey>iPhone Distribution: Bit Source, LLC (75D68EY2Q2)</CodesignKey> <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> <LangVersion>default</LangVersion> <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs> </PropertyGroup> <ItemGroup> <Compile Include="Main.cs" /> <Compile Include="AppDelegate.cs" /> <None Include="Entitlements.plist" /> <None Include="Info.plist" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Services\IosThemeChecker.cs" /> </ItemGroup> <ItemGroup> <ImageAsset Include="Assets.xcassets\Contents.json"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\[email protected]"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\60 x 60.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\87.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120-1.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\180 x 180.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024.png" /> <ImageAsset Include="Assets.xcassets\home.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\MapIcon.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\MapIcon.imageset\MapIcon%403x.png" /> <ImageAsset Include="Assets.xcassets\MapIcon.imageset\MapIcon%402x.png" /> <ImageAsset Include="Assets.xcassets\MapIcon.imageset\MapIcon.png" /> <ImageAsset Include="Assets.xcassets\wifi.imageset\wifi%403x.png" /> <ImageAsset Include="Assets.xcassets\wifi.imageset\wifi%402x.png" /> <ImageAsset Include="Assets.xcassets\wifi.imageset\wifi.png" /> <ImageAsset Include="Assets.xcassets\wifi.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\contactCall.imageset\contactCall%403x.png" /> <ImageAsset Include="Assets.xcassets\contactCall.imageset\contactCall%402x.png" /> <ImageAsset Include="Assets.xcassets\contactCall.imageset\contactCall.png" /> <ImageAsset Include="Assets.xcassets\contactCall.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\contactEmail.imageset\contactEmail%403x.png" /> <ImageAsset Include="Assets.xcassets\contactEmail.imageset\contactEmail%402x.png" /> <ImageAsset Include="Assets.xcassets\contactEmail.imageset\contactEmail.png" /> <ImageAsset Include="Assets.xcassets\contactEmail.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\Gradient.imageset\Gradient%403x.png" /> <ImageAsset Include="Assets.xcassets\Gradient.imageset\Gradient%402x.png" /> <ImageAsset Include="Assets.xcassets\Gradient.imageset\Gradient.png" /> <ImageAsset Include="Assets.xcassets\Gradient.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\contact.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\home.imageset\whitehome30.png" /> <ImageAsset Include="Assets.xcassets\home.imageset\whitehome60.png" /> <ImageAsset Include="Assets.xcassets\home.imageset\whitehome90.png" /> <ImageAsset Include="Assets.xcassets\contact.imageset\whitephone30-1.png" /> <ImageAsset Include="Assets.xcassets\contact.imageset\whitephone60-1.png" /> <ImageAsset Include="Assets.xcassets\contact.imageset\whitephone90-1.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\1125 X 2436.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\1242 X 2688.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\1792 X 828.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\1920 X 1080 PX.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\1920 X 1080 PX%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\2436 X 1125.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\2688 X 1242.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\320 X 480 PX.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\320 X 480 PX%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\640 X 1136 PX.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\640 X 1136 PX-1.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\640 X 960 PX.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\828 X 1792.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\Contents.json" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\Default-Portrait.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\Default-Portrait%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPhone 8, 9 - 1242 X 2208.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPhone 8,9 7- 750 X 1334.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPhone Landscape 2208 X 1242.png" /> <ImageAsset Include="Assets.xcassets\PoiUrl.imageset\PoiUrl%403x.png" /> <ImageAsset Include="Assets.xcassets\PoiUrl.imageset\PoiUrl%402x.png" /> <ImageAsset Include="Assets.xcassets\PoiUrl.imageset\PoiUrl.png" /> <ImageAsset Include="Assets.xcassets\PoiUrl.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-20x20%401x.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-20x20%402x.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-29x29%401x.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-29x29%402x.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-20x20%402x-1.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-40x40%402x.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76x76%401x.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76x76%402x.png" /> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-83.5%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\12.9โ€ iPad Pro 2048 X 2732.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 768x1024.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 768x1024%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 1024x768.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 1024x768%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\768 X 1004.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\768 X 1004%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 768x1024-1.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 768x1024%402x-1.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\1024 X 748.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\1024 X 748%402x.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 1024x768-1.png" /> <ImageAsset Include="Assets.xcassets\UpdatedLaunchImage.launchimage\iPad 1024x768%402x-1.png" /> <ImageAsset Include="Assets.xcassets\loadUp.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AnnoucementHorn.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\Holiday.imageset\Holiday%403x.png" /> <ImageAsset Include="Assets.xcassets\Holiday.imageset\Holiday%402x.png" /> <ImageAsset Include="Assets.xcassets\Holiday.imageset\Holiday.png" /> <ImageAsset Include="Assets.xcassets\Holiday.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\Attention.imageset\Attention%403x.png" /> <ImageAsset Include="Assets.xcassets\Attention.imageset\Attention%402x.png" /> <ImageAsset Include="Assets.xcassets\Attention.imageset\Attention.png" /> <ImageAsset Include="Assets.xcassets\Attention.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\Weather.imageset\Weather%403x.png" /> <ImageAsset Include="Assets.xcassets\Weather.imageset\Weather%402x.png" /> <ImageAsset Include="Assets.xcassets\Weather.imageset\Weather.png" /> <ImageAsset Include="Assets.xcassets\Weather.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AnnoucementHorn.imageset\Vector.png" /> <ImageAsset Include="Assets.xcassets\AnnoucementHorn.imageset\Vector %281%29.png" /> <ImageAsset Include="Assets.xcassets\AnnoucementHorn.imageset\Vector %282%29.png" /> <ImageAsset Include="Assets.xcassets\ConstructionImage.imageset\ConstructionImage%403x.png" /> <ImageAsset Include="Assets.xcassets\ConstructionImage.imageset\ConstructionImage%402x.png" /> <ImageAsset Include="Assets.xcassets\ConstructionImage.imageset\ConstructionImage.png" /> <ImageAsset Include="Assets.xcassets\ConstructionImage.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\FeedIcon.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AddPostBtn.imageset\AddPostBtn%403x.png" /> <ImageAsset Include="Assets.xcassets\AddPostBtn.imageset\AddPostBtn%402x.png" /> <ImageAsset Include="Assets.xcassets\AddPostBtn.imageset\AddPostBtn.png" /> <ImageAsset Include="Assets.xcassets\AddPostBtn.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\FeedIcon.imageset\feed30.png" /> <ImageAsset Include="Assets.xcassets\FeedIcon.imageset\feed60.png" /> <ImageAsset Include="Assets.xcassets\FeedIcon.imageset\feed90.png" /> <ImageAsset Include="Assets.xcassets\UploadImage.imageset\UploadImage%403x.png" /> <ImageAsset Include="Assets.xcassets\UploadImage.imageset\UploadImage%402x.png" /> <ImageAsset Include="Assets.xcassets\UploadImage.imageset\UploadImage.png" /> <ImageAsset Include="Assets.xcassets\UploadImage.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\DeleteImage.imageset\DeleteImage%403x.png" /> <ImageAsset Include="Assets.xcassets\DeleteImage.imageset\DeleteImage%402x.png" /> <ImageAsset Include="Assets.xcassets\DeleteImage.imageset\DeleteImage.png" /> <ImageAsset Include="Assets.xcassets\DeleteImage.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\CloseImg.imageset\CloseImg%403x.png" /> <ImageAsset Include="Assets.xcassets\CloseImg.imageset\CloseImg%402x.png" /> <ImageAsset Include="Assets.xcassets\CloseImg.imageset\CloseImg.png" /> <ImageAsset Include="Assets.xcassets\CloseImg.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\PublishImg.imageset\PublishImg%403x.png" /> <ImageAsset Include="Assets.xcassets\PublishImg.imageset\PublishImg%402x.png" /> <ImageAsset Include="Assets.xcassets\PublishImg.imageset\PublishImg.png" /> <ImageAsset Include="Assets.xcassets\PublishImg.imageset\Contents.json"> <Visible>False</Visible> </ImageAsset> </ItemGroup> <ItemGroup> <BundleResource Include="Resources\Logo.png" /> <BundleResource Include="Resources\share.png" /> <BundleResource Include="Resources\share%402x.png" /> <BundleResource Include="Resources\tickets%403x.png" /> <BundleResource Include="Resources\tickets%402x.png" /> <BundleResource Include="Resources\tickets.png" /> <BundleResource Include="GoogleService-Info.plist" /> <InterfaceDefinition Include="LaunchScreen.storyboard" /> </ItemGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Xml" /> <Reference Include="System.Core" /> <Reference Include="Xamarin.iOS" /> </ItemGroup> <ItemGroup> <PackageReference Include="Xamarin.Forms" Version="4.5.0.356" /> <PackageReference Include="Prism.DryIoc.Forms" Version="7.2.0.1422" /> <PackageReference Include="Xamarin.Essentials"> <Version>1.5.0</Version> </PackageReference> <PackageReference Include="Newtonsoft.Json"> <Version>12.0.3</Version> </PackageReference> <PackageReference Include="Xamarin.Forms.Visual.Material"> <Version>4.5.0.356</Version> </PackageReference> <PackageReference Include="Xamarin.Forms.PancakeView"> <Version>1.3.7</Version> </PackageReference> <PackageReference Include="Xamarin.Forms.GoogleMaps"> <Version>3.3.0</Version> </PackageReference> <PackageReference Include="Xamarin.FFImageLoading.Forms"> <Version>2.4.11.982</Version> </PackageReference> <PackageReference Include="Plugin.FirebasePushNotification"> <Version>2.3.6</Version> </PackageReference> <PackageReference Include="Xamarin.Plugin.Calendar"> <Version>1.0.3.200</Version> </PackageReference> <PackageReference Include="Microsoft.AppCenter.Crashes"> <Version>3.0.0</Version> </PackageReference> <PackageReference Include="Xamarin.Essentials.Interfaces"> <Version>1.5.0</Version> </PackageReference> <PackageReference Include="Xam.Plugin.Media"> <Version>4.0.1.5</Version> </PackageReference> <PackageReference Include="Plugin.Permissions"> <Version>3.0.0.12</Version> </PackageReference> </ItemGroup> <ItemGroup> <ProjectReference Include="..\VisitPikeville2\VisitPikeville2.csproj"> <Project>{7419ED46-B3A3-4BE1-8AC9-60582F43BB63}</Project> <Name>VisitPikeville2</Name> </ProjectReference> </ItemGroup> <ItemGroup> <ITunesArtwork Include="iTunesArtwork%402x" /> <ITunesArtwork Include="iTunesArtwork" /> </ItemGroup> <ItemGroup> <Folder Include="Assets.xcassets\UpdatedLaunchImage.launchimage\" /> <Folder Include="Services\" /> </ItemGroup> <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> </Project>

@mharrisonbit ์–ธ๊ธ‰ ํ•œ @hartez ์™€ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> ๋น„ํŠธ์— <MtouchLink>Full</MtouchLink> ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”. iOS ํ”„๋กœ์ ํŠธ ์†์„ฑ์œผ๋กœ ์ด๋™ํ•˜์—ฌ iOS ๋นŒ๋“œ ๋ธ”๋ ˆ์ด๋“œ๋กœ ์ด๋™ํ•˜์—ฌ ๋ง์ปค ๋™์ž‘ ์ด ๋ชจ๋‘ ๋งํฌ ๋˜๋Š” SDK ์ „์šฉ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ UI์—์„œ์ด๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (์•„๋ž˜ ์ฐธ์กฐ).

image

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

๋‘˜ ๋‹ค ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์‚ฌ๊ณผ์—์„œ ๋ฉ”์ผ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ์ค‘ ํ•˜๋‚˜์— uiwebview์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

 <PackageReference Include="Newtonsoft.Json">
      <Version>12.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Firebase.iOS.CloudMessaging">
      <Version>3.1.2</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms" Version="4.5.0.356" />
    <PackageReference Include="Xamarin.Essentials" Version="1.5.0" />
    <PackageReference Include="Xamarin.Forms.Visual.Material">
      <Version>4.5.0.356</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.IQKeyboardManager">
      <Version>1.4.1</Version>
    </PackageReference>

@EdoardoCinelli Firebase๊ฐ€ UIWebView๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ž‘์—…์ค‘์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค : https://github.com/xamarin/GoogleApisForiOSComponents/issues/369

@mharrisonbit ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด; ์šฐ๋ฆฌ๋Š” ์˜คํ”„๋ผ์ธ์—์„œ ์•ฝ๊ฐ„ ์ฑ„ํŒ…์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋ชจ๋“  ๋ฒ„์ „๊ณผ ์„ค์ •์„ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. NuGets ๋ชฉ๋ก๋„ ์ด๋ฏธ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”!

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” @jfversluis ์™€ ๋ฉ”์ผ๋กœ ์•ฝ๊ฐ„์˜ ๋Œ€ํ™”๋ฅผ

๋„์›€์ด๋˜๋Š” ๊ฒฝ์šฐ NuGet ๋ชฉ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

AsyncAwaitBestPractices Version 4.1.0
AutoMapper Version 9.0.0
JetBrains.Annotations Version 2019.1.3
Microsoft.Identity.Client Version 4.8.2
Mobile.BuildTools Version 1.4.0.638
NLog.Targets.AppCenter Version 1.1.0
PCLCrypto Version 2.0.147
Plugin.BackgroundService Version 2.1.2340
Plugin.Permissions Version 5.0.0-beta
Plugin.PushNotification Version 3.1.1
Portable.BouncyCastle Version 1.8.6
Prism.Plugin.Popups Version 7.2.0.759
ReactiveUI Version 11.2.1
ReactiveUI.Fody Version 11.2.1
ReactiveUI.XamForms Version 11.2.1
Rg.Plugins.Popup Version 1.2.0.223
Xam.Plugin.Geolocator Version 4.6.2-beta
Xam.Plugin.Media Version 4.4.10-beta
Xam.Plugin.SimpleAudioPlayer Version 1.4.0
Xamarin.Azure.NotificationHubs.iOS Version 2.0.4
Xamarin.Essentials Version 1.5.0
Xamarin.FFImageLoading Version 2.4.11.982
Xamarin.FFImageLoading.Forms Version 2.4.11.982
Xamarin.FFImageLoading.Svg.Forms Version 2.4.11.982
Xamarin.FFImageLoading.Transformations Version 2.4.11.982
Xamarin.Forms Version 4.5.0.356
Prism.Unity.Forms Version 7.2.0.1422
Xamarin.Forms.Visual.Material Version 4.5.0.356
Microsoft.AppCenter.Crashes Version 3.0.0
Microsoft.AppCenter.Analytics Version 3.0.0
Microsoft.AppCenter Version 3.0.0
ZXing.Net.Mobile Version 2.4.1
ZXing.Net.Mobile.Forms Version 2.4.1
NLog Version 4.6.8

์ €๋Š” AppCenter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ testflight์—์„œ ๋นŒ๋“œํ•˜๊ณ  ๊ฒŒ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ „์— ๊ทธ๊ฒƒ์„ ์“ฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์™€ NuGet์—์„œ ๋ชจ๋“  firebase ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฉ”์ผ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. AppCenter๊ฐ€ probolem์ž…๋‹ˆ๊นŒ?

@EdoardoCinelli App Center์—์„œ ๋นŒ๋“œ ๊ตฌ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

image

์•ฑ์„ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด Xamarin.iOS 13.10 ๋ฒ„์ „์„ ์„ ํƒํ–ˆ๋Š”์ง€ ํ™•์ธ

setting1
setting2
์ด๊ฒƒ์€ ๋‚ด ์„ค์ •์ž…๋‹ˆ๋‹ค

@jfversluis ๋Š” ๋‚ด๊ฐ€ iOS ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š”
<ItemGroup> <PackageReference Include="Xamarin.Forms" Version="4.5.0.356" /> <PackageReference Include="Prism.DryIoc.Forms" Version="7.2.0.1422" /> <PackageReference Include="Xamarin.Essentials"> <Version>1.5.0</Version> </PackageReference> <PackageReference Include="Newtonsoft.Json"> <Version>12.0.3</Version> </PackageReference> <PackageReference Include="Xamarin.Forms.Visual.Material"> <Version>4.5.0.356</Version> </PackageReference> <PackageReference Include="Xamarin.Forms.PancakeView"> <Version>1.3.7</Version> </PackageReference> <PackageReference Include="Xamarin.Forms.GoogleMaps"> <Version>3.3.0</Version> </PackageReference> <PackageReference Include="Xamarin.FFImageLoading.Forms"> <Version>2.4.11.982</Version> </PackageReference> <PackageReference Include="Plugin.FirebasePushNotification"> <Version>2.3.6</Version> </PackageReference> <PackageReference Include="Xamarin.Plugin.Calendar"> <Version>1.0.3.200</Version> </PackageReference> <PackageReference Include="Microsoft.AppCenter.Crashes"> <Version>3.0.0</Version> </PackageReference> <PackageReference Include="Xamarin.Essentials.Interfaces"> <Version>1.5.0</Version> </PackageReference> <PackageReference Include="Xam.Plugin.Media"> <Version>4.0.1.5</Version> </PackageReference> </ItemGroup>

@jfversluis ์—ฌ๊ธฐ์— ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” NuGet์ด ์žˆ์Šต๋‹ˆ๋‹ค.

<PackageReference Include="DLToolkit.Forms.Controls.ImageCropView" Version="1.0.7" />
<PackageReference Include="Microsoft.Identity.Client" Version="4.8.2" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="Plugin.InAppBilling" Version="2.0.0" />
<PackageReference Include="Plugin.StoreReview" Version="2.0.0.5" />
<PackageReference Include="System.ComponentModel.Annotations" Version="4.7.0" />
<PackageReference Include="Telerik.UI.for.Xamarin" Version="2020.1.218.1" />
<PackageReference Include="Xam.Plugin.Media" Version="4.0.1.5" />
<PackageReference Include="Xam.Plugins.Forms.KeyboardOverlap"/>  
<PackageReference Include="Xamarin.Azure.NotificationHubs.iOS-updated"/>
<PackageReference Include="Xamarin.Essentials" Version="1.5.0" />
<PackageReference Include="Xamarin.FFImageLoading" Version="2.4.6.929" />
<PackageReference Include="Xamarin.FFImageLoading.Forms" Version="2.4.6.929" />
<PackageReference Include="Xamarin.FFImageLoading.Transformations" Version="2.4.6.929" />
<PackageReference Include="Xamarin.Forms" Version="4.5.0.356" />
<PackageReference Include="Xamarin.Forms.InputKit" Version="3.2.1" />
<PackageReference Include="Xamarin.Forms.RangeSlider" Version="1.0.2" />
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="3.0.0" />
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="3.0.0" />

๋‹น์‹ ์˜ ์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค๋˜๋Š” ์žฌ๋ฃŒ ์‹œ๊ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ข‹์•„, ๊ทธ๊ฒƒ์€ ๋ณด์ด๋Š” MaterialComponents์„ . ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์€ 72.2.0.1์ด์ง€๋งŒ UIWebView ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ 92.0.0-rc1์—์„œ๋งŒ ์ œ๊ฑฐ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” https://github.com/xamarin/XamarinComponents/issues/745 ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. .

ํ”„๋กœ์ ํŠธ์—์„œ ์‹ค์ œ๋กœ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ์— 92.0.0-rc1 (๋˜๋Š” rc2)์„ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

Azure DevOps์—์„œ ๋นŒ๋“œํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ Xamarin.iOS 13.10์— ๋Œ€ํ•ด ๋นŒ๋“œํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. experimental-xforms-product-type ํ”Œ๋ž˜๊ทธ๊ฐ€ ์œ ํšจํ•œ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ถœ๋ ฅ์ด ์žˆ๋Š”์ง€ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ํ•ด๋‹น ์ถœ๋ ฅ์ด ํ‘œ์‹œ๋˜๋ฉด ์ด์ „ ๋ฒ„์ „์˜ Xamarin.iOS์— ๋Œ€ํ•ด ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Azure DevOps์˜ ๊ฒฝ์šฐ ์•„๋ž˜ ๋งํฌ๋ฅผ ๋”ฐ๋ผ Xamarin.iOS 13.10์— ๋Œ€ํ•ด ๋นŒ๋“œ๋˜๋Š” Mono ๋ฒ„์ „์„ 6_6_1๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#how -can-i-manually-select-versions-of-tools-on-the- ํ˜ธ์ŠคํŒ… ๋œ macOS ์—์ด์ „ํŠธ

๋˜ํ•œ Appcenter์™€ firebase, webview, xamarin ์ž๋ฃŒ ๋ฐ xamarin essential์—†์ด ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ๋ฉ”์ผ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋งํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฐธ์กฐ๊ฐ€ ์žˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Xamarin.Forms.Visual.Material ์ œ๊ฑฐ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฉ”์ผ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” NuGet์ž…๋‹ˆ๋‹ค.

<ItemGroup>
    <PackageReference Include="BruTile">
      <Version>1.0.0</Version>
    </PackageReference>
    <PackageReference Include="Com.OneSignal">
      <Version>3.7.3</Version>
    </PackageReference>
    <PackageReference Include="dotMorten.Xamarin.Forms.AutoSuggestBox">
      <Version>1.0.0</Version>
    </PackageReference>
    <PackageReference Include="ImageCropper.Forms">
      <Version>0.1.6</Version>
    </PackageReference>
    <PackageReference Include="Mapsui">
      <Version>1.4.8</Version>
    </PackageReference>
    <PackageReference Include="Mapsui.Forms">
      <Version>0.2.1</Version>
    </PackageReference>
    <PackageReference Include="Newtonsoft.Json">
      <Version>12.0.3</Version>
    </PackageReference>
    <PackageReference Include="PolylineEncoder.Net">
      <Version>1.0.1</Version>
    </PackageReference>
    <PackageReference Include="sqlite-net-pcl">
      <Version>1.6.292</Version>
    </PackageReference>
    <PackageReference Include="Xam.Plugin.DeviceInfo">
      <Version>4.1.1</Version>
    </PackageReference>
    <PackageReference Include="Xam.Plugin.Media">
      <Version>4.0.1.5</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Essentials">
      <Version>1.5.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms" Version="4.5.0.356" />
    <PackageReference Include="Xamarin.Forms.Extended.InfiniteScrolling">
      <Version>1.0.0-preview2</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.IQKeyboardManager">
      <Version>1.4.1</Version>
    </PackageReference>
  </ItemGroup>

@Flaviocrtt ๋„ˆ๊ฒŸ ์„ ์ œ๊ฑฐํ•œ ํ›„ ๋ฐ˜๋“œ์‹œ "bin / obj dance"๋ฅผํ•˜์„ธ์š”. ํ”„๋กœ์ ํŠธ์—์„œ bin ๋ฐ obj ํด๋”๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์บ์‹œ ๋œ ํ•ญ๋ชฉ์ด ๊ฑฐ๊ธฐ์— ๊ฑธ๋ฆฌ์ง€ ์•Š๋„๋ก ์ „์ฒด ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

๋˜ํ•œ ์•ฑ์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? Azure DevOps, App Center, ์ˆ˜๋™? ์˜ฌ๋ฐ”๋ฅธ ์„ค์ •์„ ๋ชจ๋‘ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐฉ๊ธˆ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ–ˆ์ง€๋งŒ ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ ๋œ ์ผ๋ถ€ ๋””์ž์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋งŒ ์ฐธ์กฐ๋˜๋Š” ๋„ˆ๊ฒŸ ํŒจํ‚ค์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@mharrisonbit "๋””์ž์ธ ๋ณ€๊ฒฝ"์ด๋ž€ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

๋ช‡ ๊ฐ€์ง€ ๊ด€์ ์—์„œ ์•ฝ๊ฐ„์˜ ์—ฌ๋ฐฑ ๋งŒ ํฐ ๋ณ€ํ™”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ทฐ์— ์š”์†Œ (๋ ˆ์ด๋ธ”, ๋ฒ„ํŠผ ๋“ฑ)๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ข‹์•„์š”. ์ด์ƒ ํ•ด์š”. ์ด ๋นŒ๋“œ์—์„œ ๊ฐ‘์ž๊ธฐ ์ผ๋ถ€ ๋น„ํŠธ๊ฐ€ ์ œ์ž๋ฆฌ์— ๋“ค์–ด๊ฐ€ ์ ์ ˆํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๊นŒ? ์–ด์จŒ๋“ , ํ•ด๊ฒฐ ๋œ ๊ฒƒ์„๋ณด๊ณ  ๊ธฐ์ฉ๋‹ˆ๋‹ค! :)

๋‚˜๋Š” ๋‚ด ์šด์ด ์–ด๋–ค์ง€ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ์ด๊ฒƒ์€ ๋‹จ์ง€ ํ•œ ๋ฒˆ์˜ ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค. lol ๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ œ์ž๋ฆฌ์— ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ๋‚˜๊ฐ€์„œ ์ข‹๋‹ค. ๋ชจ๋“  ๋„์›€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@jfversluis ์ž‘๋™ํ•˜๊ณ  Xamarin.Forms.Visual.Material์„ ์ œ๊ฑฐํ•˜๊ณ  ์†”๋ฃจ์…˜์„ ์ •๋ฆฌํ•˜๊ณ  bin ๋ฐ obj ํด๋”๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ณด์ฆ์— ๋”ฐ๋ผ Visual Studio์™€ macMini๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
Mac mini์— ์—ฐ๊ฒฐ๋œ Windows ์šฉ Visual Studio Preview๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์‹ค ์ €๋Š” ์‹œ๊ฐ์  ์ธ ์ž๋ฃŒ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ œ ์•ฑ์— ๋‹ค์‹œ ์„ค์น˜ํ•  ๊ฒƒ์ด๊ณ , ์• ํ”Œ์ด ์ œ ์•ฑ์„ ๊ฑฐ๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์ž๋ฃŒ์—†์ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค.
ํ•„์š”ํ•œ ์ˆ˜์ •์œผ๋กœ ์‹œ๊ฐ ์ž๋ฃŒ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ์œ„ํ•œ ์˜ˆ์ธก์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฐ์‚ฌ!

์ข‹์€ @Flaviocrtt! ์•Œ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์†Œ์žฌ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด๋ฏธ ์ง„ํ–‰ ์ค‘์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  iOS ํ”„๋กœ์ ํŠธ์˜ MaterialComponents NuGet์„ ์ตœ์‹  ์‹œํ—˜ํŒ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์‹œ ๋ชจ๋“  bin ๋ฐ obj ๋ฌผ๊ฑด์„ ์ฒญ์†Œํ•˜์‹ญ์‹œ์˜ค.ํ•˜์ง€๋งŒ ์ž‘๋™ํ•ด์•ผํ•˜๋ฉฐ ์žฌ๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. :)

@EdoardoCinelli ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ์ž‘๋™ํ•˜๊ฒŒํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚ด๊ฐ€ ๊ณ ์ณค์–ด. ์ด๊ฒƒ์€ ๋‚ด ์ ˆ์ฐจ์˜€์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ mac-mini ์˜จ๋ผ์ธ์œผ๋กœ win10์˜ Visual Studio์—์„œ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค. ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • "๋นˆ / ์˜ค๋ธŒ์ ํŠธ ๋Œ„์Šค"
  • ํ”„๋กœ์ ํŠธ์—์„œ Xamarin.Visual.Material.Design ์ œ๊ฑฐ
  • "๋นˆ / ์˜ค๋ธŒ์ ํŠธ ๋Œ„์Šค"
  • Xamarin.iOS.MaterialComponents ๋ถˆ์•ˆ์ •ํ•œ ๋ฒ„์ „ 92.0.0-rc2 ์„ค์น˜
  • Xamarin.Visual.Material.Design 4.5.0.356 ์„ค์น˜

์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๊ทธ ๊ตฌ์„ฑ ์š”์†Œ์˜€์Šต๋‹ˆ๋‹ค. Firebase ํด๋ผ์šฐ๋“œ ๋ฉ”์‹œ์ง•์€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋„์›€์„์œ„ํ•œ Thx.

์•ˆ๋…•ํ•˜์„ธ์š” @jfversluis ์ €๋„์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Material component๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‚ด ๋นŒ๋“œ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. AppCenter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Ipa ํŒŒ์ผ์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\iPhone\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <MtouchArch>ARM64</MtouchArch>
    <CodesignKey>XXX</CodesignKey>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
    <CodesignProvision>Automatic:AppStore</CodesignProvision>
    <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs>
    <MtouchLink>Full</MtouchLink>
  </PropertyGroup>

๋„ˆ๊ฒŸ ํŒจํ‚ค์ง€ ๋ชฉ๋ก :

<ItemGroup>
    <PackageReference Include="Xamarin.Forms" Version="4.5.0.356" />
    <PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
    <PackageReference Include="sqlite-net-pcl">
      <Version>1.6.292</Version>
    </PackageReference>
    <PackageReference Include="Newtonsoft.Json">
      <Version>12.0.3</Version>
    </PackageReference>
    <PackageReference Include="Com.Airbnb.Xamarin.Forms.Lottie">
      <Version>3.0.3</Version>
    </PackageReference>
    <PackageReference Include="SkiaSharp">
      <Version>1.68.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading.Forms">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading.Svg">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading.Svg.Forms">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading.Transformations">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Xam.Plugins.Settings">
      <Version>3.1.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Google.iOS.MobileAds">
      <Version>7.47.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.InAppBilling">
      <Version>2.0.0</Version>
    </PackageReference>
    <PackageReference Include="Xam.Plugin.HtmlLabel">
      <Version>3.0.2.2</Version>
    </PackageReference>
    <PackageReference Include="Xam.Plugins.Forms.ProgressRing">
      <Version>0.1.2</Version>
    </PackageReference>
    <PackageReference Include="Acr.UserDialogs">
      <Version>7.1.0.440</Version>
    </PackageReference>
    <PackageReference Include="MarcTron.Admob">
      <Version>1.4.5</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Google.iOS.SignIn">
      <Version>4.4.0</Version>
    </PackageReference>
  </ItemGroup>

App Center ๋นŒ๋“œ ๊ตฌ์„ฑ :
image

์กฐ์–ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

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

@jfversluis ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@vunhutien ์€์ด ๋ฌธ์ œ๊ฐ€ ์›์ธ ์ผ ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/xamarin/GoogleApisForiOSComponents/issues/380

@vunhutien ์€์ด ๋ฌธ์ œ๊ฐ€ ์›์ธ ์ผ ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. xamarin / GoogleApisForiOSComponents # 380

์ •๋ง ๊ณ ๋งˆ์›Œ.

@ rdev24608 ์š”๊ตฌ ์‚ฌํ•ญ ์ธ 4.5 ์•ˆ์ • ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ

์ด ์‹œ๋„
https://github.com/xamarin/Xamarin.Forms/issues/9823#issuecomment -594758733

๊ทธ๋ž˜๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ˆ์™ธ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์˜ˆ์™ธ?

* .ipa ํŒŒ์ผ์˜ ์••์ถ•์„ ํ’€์–ด์„œ UIWebView์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ํฌํ•จํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ์••์ถ•์„ ํ‘ผ ๋””๋ ‰ํ† ๋ฆฌ์— cd ๋ฅผ ์‹คํ–‰ ํ•œ ๋‹ค์Œ ํ„ฐ๋ฏธ๋„์—์„œ grep -lr "UIWebView" . ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

@abrari ๋‹˜ , ๋‚ด ํŒจํ‚ค์ง€์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. /Frameworks/PersonalizedAdConsent.framework/PersonalizedAdConsent
Google Ad lib์—์„œ ๋งž๋‚˜์š”?

์•ˆ๋…•ํ•˜์„ธ์š” @jfversluis ์ €๋„์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Xamarin.Forms 4.5.0.495 ๋ฐ Xamarin.iOS 13.14.1.39๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ธ”๋กœ๊ทธ์— ์–ธ๊ธ‰ ๋œ ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ๊ตฌ์„ฑ์„ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด UIWebView์— ๋Œ€ํ•œ์ด ์ฐธ์กฐ๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์›์ธ์ด ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๋‚ด ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐ nuget packeges ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\iPhone\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<MtouchArch>ARM64</MtouchArch>
<CodesignKey>iPhone Distribution</CodesignKey>
<CodesignEntitlements>
</CodesignEntitlements>
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
<CodesignProvision>x</CodesignProvision>
<BuildIpa>true</BuildIpa>
<IpaPackageName>x</IpaPackageName>
<MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs>
<MtouchUseLlvm>true</MtouchUseLlvm>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Acr.UserDialogs">
<Version>7.1.0.442</Version>
</PackageReference>
<PackageReference Include="akavache">
<Version>6.5.1</Version>
</PackageReference>
<PackageReference Include="Autofac">
<Version>4.9.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Analytics">
<Version>2.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Crashes">
<Version>2.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting">
<Version>3.3.1</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.2</Version>
</PackageReference>
<PackageReference Include="Plugin.Multilingual">
<Version>1.0.2</Version>
</PackageReference>
<PackageReference Include="Plugin.Permissions">
<Version>3.0.0.12</Version>
</PackageReference>
<PackageReference Include="Polly">
<Version>7.1.0</Version>
</PackageReference>
<PackageReference Include="Rg.Plugins.Popup">
<Version>1.2.0.223</Version>
</PackageReference>
<PackageReference Include="System.Net.Http">
<Version>4.3.4</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.Connectivity">
<Version>3.2.0</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.Geolocator">
<Version>4.5.0.6</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.LatestVersion">
<Version>1.1.2</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.Media">
<Version>4.0.1.5</Version>
</PackageReference>
<PackageReference Include="Xam.Plugins.Forms.ImageCircle">
<Version>3.0.0.5</Version>
</PackageReference>
<PackageReference Include="Xamarin.Auth">
<Version>1.6.0.4</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms.Visual.Material">
<Version>4.5.0.495</Version>
</PackageReference>
<PackageReference Include="Xamarin.Plugin.FilePicker">
<Version>2.1.18</Version>
</PackageReference>
<PackageReference Include="Esri.ArcGISRuntime">
<Version>100.6.0</Version>
</PackageReference>
<PackageReference Include="Esri.ArcGISRuntime.Xamarin.Forms">
<Version>100.6.0</Version>
</PackageReference>
<PackageReference Include="NETStandard.Library">
<Version>2.0.3</Version>
</PackageReference>
<PackageReference Include="sqlite-net-pcl">
<Version>1.6.292</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms" Version="4.5.0.495" />
<PackageReference Include="Xamarin.Essentials" Version="1.2.0" />

@ rambo1223 Material์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ https://github.com/xamarin/Xamarin.Forms/issues/9823#issuecomment -594599608

@jfversluis ๋น ๋ฅธ ๋‹ต์žฅ์„

๋‹น๋ถ„๊ฐ„์€ ์˜ˆ. ์ฐธ์กฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•˜๋Š” PR์ด ์—ด๋ ค ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์ตœ์‹  Xamarin.iOS.MaterialComponents ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋ฉฐ์ด๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
์ข‹์€ ๋‚ ! ๋‚ด ์•ฑ์— ๋™์ผํ•œ ๊ฒฝ๊ณ  ์ด๋ฉ”์ผ์ด์žˆ๋Š” ๊ฒฝ์šฐ MaterialComponents I 'm my packages๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ์ตœ์‹  Xamarin.Forms ์•ˆ์ • ๋ฒ„์ „๋„์ด ์Šค๋ ˆ๋“œ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ํ•„์š”ํ•œ ์—…๋ฐ์ดํŠธ ๋ฐ ์„ค์ •์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์•ˆ์ •์ ์ธ ์ตœ์‹  ๋ฒ„์ „์˜ SDK๋„ ๋ชจ๋‘ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‚ด ipa์˜ ์••์ถ• ํ•ด์ œ๋ฅผ ์ ์šฉํ•˜๊ณ  grep์„ ์ˆ˜ํ–‰ํ•˜๊ณ 
SomeMobileApp.iOS.app/Xamarin.Forms.Platform.iOS.dll
SomeMobileApp.iOS.app/SomeMobileApp.iOS
SomeMobileApp.iOS.app/Xamarin.iOS.dll

๋‹ค์Œ์€ ios ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

<ItemGroup> <Reference Include="System" /> <Reference Include="System.Xml" /> <Reference Include="System.Core" /> <Reference Include="Xamarin.iOS" /> </ItemGroup> <ItemGroup> <PackageReference Include="EasyTipView"> <Version>1.0.1</Version> </PackageReference> <PackageReference Include="Flurl.Http"> <Version>2.4.2</Version> </PackageReference> <PackageReference Include="Microsoft.AppCenter.Analytics"> <Version>3.0.0</Version> </PackageReference> <PackageReference Include="Microsoft.AppCenter.Crashes"> <Version>3.0.0</Version> </PackageReference> <PackageReference Include="Microsoft.AspNet.WebApi.Client"> <Version>5.2.7</Version> </PackageReference> <PackageReference Include="Newtonsoft.Json"> <Version>12.0.3</Version> </PackageReference> <PackageReference Include="Rg.Plugins.Popup"> <Version>1.2.0.223</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.Buttons"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.Cards"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.Core"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfChart"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfListView"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfMaskedEdit"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfNumericTextBox"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfPicker"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfPopupLayout"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfProgressBar"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="Syncfusion.Xamarin.SfRotator"> <Version>17.4.0.55</Version> </PackageReference> <PackageReference Include="System.Reflection.Emit"> <Version>4.7.0</Version> </PackageReference> <PackageReference Include="Xamarin.Essentials"> <Version>1.5.2</Version> </PackageReference> <PackageReference Include="Xamarin.Forms" Version="4.5.0.530" /> <PackageReference Include="SkiaSharp.Views" Version="1.68.1.1" /> <PackageReference Include="SkiaSharp.Views.Forms" Version="1.68.1.1" /> <PackageReference Include="Xamarin.IQKeyboardManager"> <Version>1.4.1</Version> </PackageReference> </ItemGroup> <ItemGroup>

๋˜ํ•œ์ด ์Šค๋ ˆ๋“œ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ํ•„์š”ํ•œ ์—…๋ฐ์ดํŠธ ๋ฐ ์„ค์ •์„ ์ตœ์‹  Xamarin.Forms ์•ˆ์ • ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๋ฒ„์ „์ผ๊นŒ์š”? :)
์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” NuGet์ด ์—†์œผ๋ฏ€๋กœ ๋นŒ๋“œ ๊ตฌ์„ฑ์— ํฌํ•จ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ Azure DevOps ๋˜๋Š” App Center๋ฅผ ํ†ตํ•ด ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ด€๋ จ ๋นŒ๋“œ ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ์˜ฌ๋ฐ”๋ฅธ ๊ตฌ์„ฑ์„ ์„ค์ • ํ–ˆ์Šต๋‹ˆ๊นŒ? ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋„์›€์ด ๋  ์ˆ˜์žˆ๋Š” Xamarin.iOS ํŒ€์˜ ํ›„์† ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด์‹ญ์‹œ์˜ค. https://docs.microsoft.com/en-us/xamarin/ios/release-notes/13/13.16#help -with- uiwebview-deprecation

@jfversluis ์ข‹์€ ํ•˜๋ฃจ

๋น ๋ฅธ ๋‹ต๋ณ€๊ณผ ๋„์›€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ณต์œ  ํ•œ ๊ธฐ์‚ฌ๋ฅผ ์ฝ์—ˆ์œผ๋ฉฐ ์•„์ง ์ ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. --warn-on-type-ref = UIKit.UIWebView
๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— --optimization = force-rejected-types-removal์„ ์ ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์˜ˆ, ๋ Œ๋”๋Ÿฌ์—์„œ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ WKWebView๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” MSBuild ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Mac์— ์—ฐ๊ฒฐ๋œ Windows PC์—์„œ ์ˆœ์ „ํžˆ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ ์šฉ๋˜๋ฏ€๋กœ ๋ฆด๋ฆฌ์Šค ์œ ํ˜•๊ณผ ๊ด€๋ จ๋œ ํ•ญ๋ชฉ ๋งŒ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ๊ตฌ์„ฑ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> <DebugType>none</DebugType> <Optimize>true</Optimize> <OutputPath>bin\iPhone\Release</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <MtouchArch>ARM64</MtouchArch> <ConsolePause>false</ConsolePause> <CodesignKey>iPhone Developer</CodesignKey> <MtouchLink>SdkOnly</MtouchLink> <MtouchSdkVersion>13.4</MtouchSdkVersion> <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> <MtouchExtraArgs>--optimize=experemental-xforms-product-type</MtouchExtraArgs> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' "> <DebugType>none</DebugType> <Optimize>True</Optimize> <OutputPath>bin\iPhone\Ad-Hoc</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <ConsolePause>False</ConsolePause> <MtouchArch>ARM64</MtouchArch> <MtouchLink>SdkOnly</MtouchLink> <MtouchSdkVersion>13.4</MtouchSdkVersion> <BuildIpa>True</BuildIpa> <CodesignProvision> </CodesignProvision> <CodesignKey>iPhone Developer</CodesignKey> <CodesignEntitlements> </CodesignEntitlements> <CodesignExtraArgs /> <CodesignResourceRules /> <MtouchExtraArgs>--optimize=experemental-xforms-product-type</MtouchExtraArgs> </PropertyGroup>

๋‹ค์Œ์€ ๋ฒ„์ „ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
`=== Mac ์šฉ Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ 2019 ===

๋ฒ„์ „ 8.5.1 (๋นŒ๋“œ 42)

=== ๋ชจ๋…ธ ํ”„๋ ˆ์ž„ ์›Œํฌ MDK ===

์‹คํ–‰ ์‹œ๊ฐ„:
Mono 6.8.0.123 (2019-10 / 1d0d939dc30) (64 ๋น„ํŠธ)
ํŒจํ‚ค์ง€ ๋ฒ„์ „ : 608000123

MSBuild SDK : /Library/Frameworks/Mono.framework/Versions/6.8.0/lib/mono/msbuild/Current/bin/Sdks

=== Apple ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ===

Xcode 11.4 (16134)
๋นŒ๋“œ 11E146

=== Xamarin.Mac ===

๋ฒ„์ „ : 6.16.0.11 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
ํ•ด์‹œ : aa73e4125
๋ถ„๊ธฐ : d16-5-xcode11.4
๋นŒ๋“œ ๋‚ ์งœ : 2020-03-25 11 : 04 : 02-0400

=== Xamarin.iOS ===

๋ฒ„์ „ : 13.16.0.11 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
ํ•ด์‹œ : aa73e4125
๋ถ„๊ธฐ : d16-5-xcode11.4
๋นŒ๋“œ ๋‚ ์งœ : 2020-03-25 11 : 04 : 03-0400
=== Xamarin.Android ===

๋ฒ„์ „ : 10.2.0.100 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
์ปค๋ฐ‹ : xamarin-android / d16-5 / 988c811
Android SDK : / Users / sergiiputintsev / Library / Android / sdk
์ง€์›๋˜๋Š” Android ๋ฒ„์ „ :
8.1 (API ๋ ˆ๋ฒจ 27)

SDK ๋„๊ตฌ ๋ฒ„์ „ : 26.1.1
SDK ํ”Œ๋žซํผ ๋„๊ตฌ ๋ฒ„์ „ : 28.0.1
SDK ๋นŒ๋“œ ๋„๊ตฌ ๋ฒ„์ „ : 28.0.3

๋นŒ๋“œ ์ •๋ณด :
๋ชจ๋…ธ : c0c5c78
Java.Interop : xamarin / java.interop / d16-5 @ fc18c54
ProGuard : xamarin / proguard / master @ 905836d
SQLite : xamarin / sqlite / 3.28. 0 @ 46204c4
Xamarin.Android ๋„๊ตฌ : xamarin / xamarin-android-tools / d16-5 @ 9f4ed4b

=== ์šด์˜ ์ฒด์ œ ===

Mac OS X 10.15.3
Darwin 19.3.0 Darwin Kernel ๋ฒ„์ „ 19.3.0
2020 ๋…„ 1 ์›” 9 ์ผ ๋ชฉ์š”์ผ 20:58:23 PST
`

grep์€ SomeMobileApp.iOS.app/Xamarin.Forms.Platform.iOS.dll์—์„œ UIWebView์˜ ๋ฐœ์ƒ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
SomeMobileApp.iOS.app/SomeMobileApp.iOS
SomeMobileApp.iOS.app/Xamarin.iOS.dll

๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— --optimization = force-rejected-types-removal์„ ์ ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„ํ•œ๋‹ค. ์ด ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์ด์ƒ ํ•ด์š”. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ธ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ญ”๊ฐ€ ๋น ์ง„ ๊ฒŒ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ csproj๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด ๋ณด์•˜์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ค‘์ธ ํ”Œ๋ž˜๊ทธ์— ์˜คํƒ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. <MtouchExtraArgs>--optimize=experemental-xforms-product-type</MtouchExtraArgs> ๋Š” <MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs> ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋„์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์‚ฌ๋ผ์กŒ๋‹ค .. ๊ทธ๋ž˜๋„ ๋ชจ๋“  ๊ฒƒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ •๋ฆฌ ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ์ €๋Š” Material์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
Xamarin.Forms 4.5.0.530
Xamarin.IOS 13.16.0.11

--warn-on-type-ref=UIKit.UIWebView ๊ฐ€ Xamarin.Forms.Platform.IOS์— ์—ฌ์ „ํžˆ ์ฐธ์กฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๋ถˆํ‰์„ ๊ณ„์†ํ–ˆ๊ณ ์ด๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ ์˜€๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข…์ ์œผ๋กœ ์ˆ˜์ • ํ•œ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • bin ๋ฐ obj ํด๋”๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.
  • ~/Library/Caches/Xamarin/mtbs ์˜ Mac์—์„œ ์บ์‹œ ์‚ญ์ œ

--warn-on-type-ref=UIKit.UIWebView ์—ฌ์ „ํžˆ ์ฐธ์กฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•˜์ง€๋งŒ App Store๋Š” ๋” ์ด์ƒ ๋ถˆํ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์šฐ์—ฐ์ด ์•„๋‹ˆ๊ธธ ..

์•ˆ๋…•,
์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "--warn-on-type-ref = UIKit.UIWebView"๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๋‹ค์Œ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ ํ›„ 'UIKit.UIWebView'ํ˜•์‹์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ฐธ์กฐ๊ฐ€ 'Xamarin.Forms.Platform.iOS, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = null'๋‚ด์— ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค (์—ฐ๊ฒฐํ•˜๊ธฐ ์ „ ํฌํ•จ).

Xamarin.Forms.iOS 4.5.0.617 (์ตœ์‹ )์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ iOS ์ฝ”๋“œ์—์„œ ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

ํŽธ์ง‘ํ•˜๋‹ค:
AppConnect๋Š” ์—ฌ์ „ํžˆ ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉฐ Xamarin.iOS 13.14 (Mono 6.8) ๋ฐ XCode 11.4์™€ ํ•จ๊ป˜ appcenter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ๋นŒ๋“œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ฐธ์กฐ ํ”Œ๋ž˜๊ทธ --optimize = experimental-xforms-product-type์ด ์„ค์ •๋˜์—ˆ์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ...

๋‚ด GitHub ํ”„๋กœํ•„์—์„œ ๋‚ด ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ฐพ์•„ ์—ฐ๋ฝํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ•  ์ˆ˜์—†๋Š” ์‚ฌ๊ฑด์ด ์—†์—ˆ์œผ๋‹ˆ ํ•ด๊ฒฐํ•ด ๋ด…์‹œ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š” @jfversluis ,
@ R41z0r ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ๊ท€ํ•˜์˜ ๊ธฐ์‚ฌ๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค-https: //devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/

๊ทธ๋Ÿฐ ๋‹ค์Œ UIWebView๋ฅผ ์ฐธ์กฐ ํ•  ์ˆ˜์žˆ๋Š” dll์„ ์ˆ˜๋™์œผ๋กœ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค.

  • Xamarin.auth

  • MonoTouch.Dialog

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•œ ํ›„ ์•ฑ์„ ๋‹ค์‹œ ์ œ์ถœํ•˜์—ฌ Apple์—์„œ ๋™์ผํ•œ ๊ฒฝ๊ณ ๋ฅผ๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ --warn-on-type-ref = UIKit.UIWebView์— ๋Œ€ํ•ด

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ --warn-on-type-ref = UIKit.UIWebView ๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ ํ›„ 'UIKit.UIWebView'ํ˜•์‹์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ฐธ์กฐ๊ฐ€ 'Xamarin.Forms.Platform.iOS, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = null'๋‚ด์— ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค (์—ฐ๊ฒฐํ•˜๊ธฐ ์ „ ํฌํ•จ).

Xamarin.Forms ๋ฒ„์ „-4.6.0.726
Xamarin.iOS ๋ฒ„์ „-13.16.0.13
๋ง์ปค ๋™์ž‘-SDK ์ „์šฉ
mtouch ์ธ์ˆ˜---optimize = experimental-xforms-product-type

๊ฐœ์ฒด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Xamarin.Forms.Platform.iOS๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. WebViewRenderer๊ฐ€ ์—ฌ์ „ํžˆ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฒจ๋ถ€ ๋œ ์Šคํฌ๋ฆฐ ์ƒท ์ฐธ์กฐ
xamarin ios

๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋‹ˆ?

๋‚˜๋Š” ๊ฐ™์€ ๋ฐฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๊ฑฐ๋ถ€์—†์ด azure ํŒŒ์ดํ”„ ๋ผ์ธ์„ Apple์— ์ œ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‚ด stackoverflow ์งˆ๋ฌธ์„ ์ฐธ์กฐ ํ•˜์‹ญ์‹œ์˜ค.

์ž…๋ ฅ ํ•  ์˜ฌ๋ฐ”๋ฅธ mtouch ์ธ์ˆ˜๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€
--optimize=experimental-xforms-product-type
๋˜๋Š”
--optimize=force-rejected-types-removal

์•„๋‹ˆ๋ฉด ๋‘˜๋‹ค?

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๊ผผ์ง ๋ชปํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ๋กœ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฉฐ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ฐพ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
--warn-on-type-ref = UIKit.UIWebView -wa rnaserror : 1503 ๋งŒ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ
๋งํฌ ํ›„์—๋„ UIWebView๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋Š” MT1503์œผ๋กœ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์‹คํ–‰ํ•˜๋ฉด --optimize = experimental-xforms-product-type
MT1503์—์„œ ๋™์ผํ•œ ๊ฒฐ๊ณผ, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
--optimize = force-rejected-types-removal๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋งํฌ ํ›„ UIWebView์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€์—†์ด ๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ๋Š” --optimize = force-rejected-types-removal์„ ์‹คํ–‰ํ–ˆ์ง€๋งŒ Apple์€ ์—ฌ์ „ํžˆ์ด๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ์–ด๋Š ๊ณณ์—์„œ๋„ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

>

์–ธ๊ธ‰ํ•˜์ž๋ฉด, ๋‚ด ๋ฌธ์ œ๋Š” ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ๋…ผ์Ÿ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค.
์ธ์Šคํ„ด์Šค (๋””๋ฒ„๊ทธ / ๋ฆด๋ฆฌ์Šค, iPhone / iPhone ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ).

๋„์›€์ด ๋ ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@ R41z0r ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Azure ๋นŒ๋“œ ๋กœ๊ทธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋นŒ๋“œ ํŒŒ์ดํ”„ ๋ผ์ธ์ด์ด ์‹œ์ ์—์„œ ์“ธ๋ชจ์—†๊ณ  ๋งค์ฃผ ๋นŒ๋“œ๋ฅผ๋ฐ›๋Š” ํ…Œ์Šคํ„ฐ / ์ดํ•ด ๊ด€๊ณ„์ž๊ฐ€ testflight๋ฅผ ํ†ตํ•ด ํ‘ธ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๋งค์šฐ ์„ฑ๊ฐ€์‹  ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋งˆ์นจ๋‚ด ์‚ฌ๊ณผ ํ™•์ธ์„ ์ง€ ์› ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์•ฑ ๊ฑฐ๋ถ€๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ( Branch-Xamarin-Linking-SDK )๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์—…๋ฐ์ดํŠธํ–ˆ๊ณ  ์•ฑ์ด ์‚ฌ๊ณผ์˜ ์‹œํ—˜์„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ด์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ž„๋ฌด๋Š” ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ ๋‹ค๋ฅธ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฉฐ์น ์„ ๋ณด๋‚ธ ํ›„์—๋Š” --warn-on-type-ref = UIKit.UIWebView ๊ฐ€ ์ง„์ •ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ ๋กœ๊ทธ์— ๊ฒฝ๊ณ ๊ฐ€ ํ•˜๋‚˜ ๋‚จ๋Š” ๊ฒฝ์šฐ testflight์— ์ œ์ถœํ•ด๋ณด์‹ญ์‹œ์˜ค.
์ง„ํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ€์žฅ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•˜๋‚˜์”ฉ ์ œ๊ฑฐํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์—์„œ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฝ”๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌ ํ•œ ๋‹ค์Œ ๋นŒ๋“œ๋ฅผ testflight์— ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๊ฑธ๋ฆฌ์ง€ ๋งŒ ์‚ฌ๊ณผ ๊ฑฐ๋ถ€๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ์— ์‹œ๊ฐ„์„ ํ• ์•  ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ฒฐ๊ตญ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์€ ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๊ณ  ipa ํŒŒ์ผ์„ ํŒจํ‚ค์ง•ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด Mac์—์„œ ipa ํ™•์žฅ์„ zip์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค. ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ YOURAPPNAME.app "ํด๋”"๋กœ ์ด๋™ํ•˜๊ณ  grep -r UIWebView . ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฐธ์กฐ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. . ์žŠ์ง€ ๋งˆ์„ธ์š”. ๊ทธ๋Ÿฌ๋ฉด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฒ˜์Œ์—๋Š” ๊ทธ๊ฒƒ์„ ๋†“ ์ณค๊ณ  grep์ด stdin์—์„œ ๋“ฃ๊ณ  ์žˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.
Binary file ./Frameworks/PersonalizedAdConsent.framework/PersonalizedAdConsent matches

์ด์ œ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ง์ปค๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํžˆ ์•Œ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” Firebase / Admob์˜ ์ผ๋ถ€์˜€์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ ํ•˜๋‚˜์˜ ๋ฆด๋ฆฌ์Šค์˜€์œผ๋ฉฐ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ --optimize=force-rejected-types-removal --warn-on-type-ref=UIKit.UIWebView -warnaserror:1503 ๋ฅผ mtouch ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ ๋นŒ๋“œ๊ฐ€ ํ†ต๊ณผ๋ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทผ๋ณธ ์›์ธ์— ๋” ๋นจ๋ฆฌ ๋„๋‹ฌํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Visual Studio ๋ฐ Xcode๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์ง€๋งŒ --optimize=experimental-xforms-product-type ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋‹คํ–‰ํžˆ --optimize=experimental-xforms-product-type --optimize=+force-rejected-types-removal ๊ฐ€)ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— --optimization = force-rejected-types-removal์„ ์ ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„ํ•œ๋‹ค. ์ด ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์ด์ƒ ํ•ด์š”. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ธ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ญ”๊ฐ€ ๋น ์ง„ ๊ฒŒ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

--optimization = force-rejected-types-removal ๊ฒฐ๊ณผ ๋ชจ๋…ธ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์•Œ ์ˆ˜์—†๋Š” ๋ช…๋ น ์ค„ ์ธ์ˆ˜

๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— --optimization = force-rejected-types-removal์„ ์ ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„ํ•œ๋‹ค. ์ด ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๊นŒ?
์ด์ƒ ํ•ด์š”. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ธ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ญ”๊ฐ€ ๋น ์ง„ ๊ฒŒ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

--optimization = force-rejected-types-removal ๊ฒฐ๊ณผ ๋ชจ๋…ธ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์•Œ ์ˆ˜์—†๋Š” ๋ช…๋ น ์ค„ ์ธ์ˆ˜

์•ˆ๋…•ํ•˜์„ธ์š”,
์ธ์ˆ˜ --optimization ์ด --optimize --optimization ์•ˆ๋ฉ๋‹ˆ๋‹ค.

@taublast @Bradtus ๋งž์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™”๊ฐ€ ์˜ค๋ฅ˜๋กœ ์ž‘์„ฑ๋œ ๋ฌธ์„œ ํŽ˜์ด์ง€๊ฐ€ ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™”ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Apple์ด ๋ช‡ ๋‹ฌ ํ›„ ์ง€์› ์ค‘๋‹จ์„ ๊ถŒ๊ณ  ํ•  ๋•Œ ์˜ค๋Š˜ ์šฐ๋ฆฌ๊ฐ€ ์ฐจ๋‹จ ๋  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋น„ ์•„ํŒŒ

์•ˆ๋…•ํ•˜์„ธ์š” @biapar ๋‹น์‹ ์ด ์™„์ „ํžˆ ์˜ณ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ๋ถ„์€ ์ด๊ฒƒ์— ์˜ํ•ด ๋ง‰ํ˜€์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ค€๋น„ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์—ฌ๋Ÿฌ๋ถ„์„ ์œ„ํ•ด ๋ช‡ ๋‹ฌ ๋™์•ˆ ์—ฌ๊ธฐ์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งค๋ฒˆ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡์ด ํšจ๊ณผ๊ฐ€ ์—†๋Š”์ง€ ์•Œ๋ ค ์ฃผ์‹œ๋ฉด ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„ ์•„ํŒŒ

๋‚˜๋Š” ์ด๋ฏธ ๋ชจ๋“  ๊ฒƒ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค (RELEASE ๋ชจ๋“œ์—์„œ). ๋‹จ๊ณ„๋ณ„๋กœ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
image

image

image

=== Mac ์šฉ Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ 2019 ===

๋ฒ„์ „ 8.5.5 (๋นŒ๋“œ 7)
์„ค์น˜ UUID : 4ca0550e-38d1-40b2-a470-7ae00766fcac
GTK + 2.24.23 (๋กค๋ฆฌ ํ…Œ๋งˆ)
Xamarin.Mac 6.14.1.39 (d16-5 / 30e8706b4)

Package version: 608000099

=== ๋ชจ๋…ธ ํ”„๋ ˆ์ž„ ์›Œํฌ MDK ===

์‹คํ–‰ ์‹œ๊ฐ„:
Mono 6.8.0.99 (2019-10 / 1182f8cbf5b) (64 ๋น„ํŠธ)
ํŒจํ‚ค์ง€ ๋ฒ„์ „ : 608000099

=== Roslyn (์–ธ์–ด ์„œ๋น„์Šค) ===

3.5.0-beta4-20125-04 + 1baa0b3063238ed752ad1f0368b1df6b6901373e

=== NuGet ===

๋ฒ„์ „ : 5.4.0.6315

=== .NET Core SDK ===

SDK : /usr/local/share/dotnet/sdk/3.1.200/Sdks
Versioni SDK :
3.1.200
3.1.102
3.1.101
3.0.101
3.0.100
2.1.701
2.1.700
2.1.505
2.1.504
MSBuild์˜ SDK : /Library/Frameworks/Mono.framework/Versions/6.8.0/lib/mono/msbuild/Current/bin/Sdks

=== ๋Ÿฐํƒ€์ž„ di .NET Core ===

๋Ÿฐํƒ€์ž„ : / usr / local / share / dotnet / dotnet
Versioni ๋Ÿฐํƒ€์ž„ :
3.1.2
3.1.1
3.0.1
3.0.0
2.1.17
2.1.16
2.1.15
2.1.14
2.1.13
2.1.12
2.1.11
2.1.9
2.1.8

=== Xamarin.Profiler ===

๋ฒ„์ „ : 1.6.12.26
Percorso : / Applications / Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== ์—…๋ฐ์ดํ„ฐ ===

๋ฒ„์ „ : 11

=== Apple ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ===

Xcode 11.4.1 (16137)
๋นŒ๋“œ 11E503a

=== Xamarin.Mac ===

๋ฒ„์ „ : 6.16.0.13 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
ํ•ด์‹œ : b75deaf82
๋ถ„๊ธฐ : d16-5-xcode11.4
๋นŒ๋“œ ๋‚ ์งœ : 2020-04-01 21 : 33 : 18-0400

=== Xamarin.iOS ===

๋ฒ„์ „ : 13.16.0.13 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
ํ•ด์‹œ : b75deaf82
๋ถ„๊ธฐ : d16-5-xcode11.4
๋นŒ๋“œ ๋‚ ์งœ : 2020-04-01 21 : 33 : 19-0400

=== Xamarin ๋””์ž์ด๋„ˆ ===

๋ฒ„์ „ : 16.5.0.471
ํ•ด์‹œ : 35aa4889d
๋ถ„๊ธฐ : ๋ฆฌ๋ชจํŠธ / ์›์  / d16-5
๋นŒ๋“œ ๋‚ ์งœ : 2020-02-25 00:52:08 UTC

=== Xamarin.Android ===

๋ฒ„์ „ : 10.2.0.100 (Visual Studio Community)
์ปค๋ฐ‹ : xamarin-android / d16-5 / 988c811
Android SDK : / Users / biagioparuolo / Library / Developer / Xamarin / android-sdk-macosx
Android ์ง€์› ๋ฒ„์ „ :
8.0 (livello API 26)
8.1 (livello API 27)

SDK ๋„๊ตฌ ๋ฒ„์ „ : 26.1.1
SDK ๋ฒ„์ „ : 30.0.1
์ปดํŒŒ์ผ ๋œ SDK ๋ฒ„์ „ : 29.0.2

Informazioni sulla compilazione :
๋ชจ๋…ธ : c0c5c78
Java.Interop : xamarin / java.interop / d16-5 @ fc18c54
ProGuard : xamarin / proguard / master @ 905836d
SQLite : xamarin / sqlite / 3.28. 0 @ 46204c4
Xamarin.Android ๋„๊ตฌ : xamarin / xamarin-android-tools / d16-5 @ 9f4ed4b

=== ๋งˆ์ดํฌ๋กœ ์†Œํ”„ํŠธ ๋ชจ๋ฐ”์ผ OpenJDK ===

์ž๋ฐ” SDK : /Users/biagioparuolo/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_8.0.25
1.8.0-25
Android Designer์˜ EPL Il codice รจ disponibile qui :
https://github.com/xamarin/AndroidDesigner.EPL

=== Android SDK ๊ด€๋ฆฌ์ž ===

๋ฒ„์ „ : 16.5.0.39
ํ•ด์‹œ : 6fb4c79
๋ถ„๊ธฐ : ๋ฆฌ๋ชจํŠธ / ์›์  / d16-5
๋นŒ๋“œ ๋‚ ์งœ : 2020-04-29 20:09:00 UTC

=== Android ๊ธฐ๊ธฐ ๊ด€๋ฆฌ์ž ===

๋ฒ„์ „ : 16.5.0.73
ํ•ด์‹œ : dff2f03
๋ถ„๊ธฐ : ๋ฆฌ๋ชจํŠธ / ์›์  / d16-5
๋นŒ๋“œ ๋‚ ์งœ : 2020-04-29 20:09:20 UTC

=== Xamarin ๊ฒ€์‚ฌ๊ธฐ ===

๋ฒ„์ „ : 1.4.3
ํ•ด์‹œ : db27525
๋ถ„๊ธฐ : 1.4 ๋ฆด๋ฆฌ์Šค
๋นŒ๋“œ ๋‚ ์งœ : 2018 ๋…„ 7 ์›” 9 ์ผ ์›”์š”์ผ 21:20:18 GMT
ํด๋ผ์ด์–ธํŠธ ํ˜ธํ™˜์„ฑ : 1

=== ๋นŒ๋“œ ์ •๋ณด ===

๋ฆด๋ฆฌ์Šค ID : 805050007
ํž˜๋‚ด ๊ฐœ์ • : f7b7ac4291b7712b5e02dd65d45685346f321ded
๋นŒ๋“œ ๋‚ ์งœ : 2020-04-30 11 : 54 : 56-04
๋นŒ๋“œ ๋ธŒ๋žœ์น˜ : ๋ฆด๋ฆฌ์Šค -8.5
Xamarin ํ™•์žฅ : f7b7ac4291b7712b5e02dd65d45685346f321ded

=== ์šด์˜ ์ฒด์ œ ===

Mac OS X 10.15.4
Darwin 19.4.0 Darwin ์ปค๋„ ๋ฒ„์ „ 19.4.0
Wed Mar 4 22:28:40 PST 2020
๋ฃจํŠธ : xnu-6153.101.6 ~ 15 / RELEASE_X86_64 x86_64

=== ์‚ฌ์šฉ์ž ์„ค์น˜ ํ™•์žฅ ํ™œ์„ฑํ™” ===

Xamarin.Forms HotReload ํ™•์žฅ 1.4.0
MonoGame ํ™•์žฅ 3.7.1.189
XAML ์Šคํƒ€์ผ๋Ÿฌ 2.0.1

์‹ค์ œ๋กœ App Store์— ๋นŒ๋“œ๋ฅผ ์ œ์ถœ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์ถœ๋ ฅ์˜ ๊ฒฝ๊ณ ๊ฐ€ ์˜ค ํƒ์ง€๋ฅผ ์ค„ ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Mac ์šฉ Visual Studio๋ฅผ ํ†ตํ•ด ์•ฑ์„ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด App Center ๋˜๋Š” Azure DevOps๋ฅผ ํ†ตํ•ด ํ˜น์‹œ๋ผ๋„ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@biapar ๋‹ค๋ฅธ ์˜ต์…˜์€ ์—ฌ์ „ํžˆ โ€‹โ€‹UIWebView๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ฑ ์ถœ๋ ฅ์„ ์‚ดํŽด ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://github.com/xamarin/Xamarin.Forms/issues/9823#issuecomment -624655801
๋˜๋Š” ๋ชจ๋“  dll์„ vsmac์— ๋„ฃ๊ณ  ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ์œ ํ˜• ์œ ํ˜•์„ ๊ฒ€์‚ฌ / ๊ฒ€์ƒ‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/issues/9823#issuecomment -621915045

์‹ค์ œ๋กœ App Store์— ๋นŒ๋“œ๋ฅผ ์ œ์ถœ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์ถœ๋ ฅ์˜ ๊ฒฝ๊ณ ๊ฐ€ ์˜ค ํƒ์ง€๋ฅผ ์ค„ ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Mac ์šฉ Visual Studio๋ฅผ ํ†ตํ•ด ์•ฑ์„ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด App Center ๋˜๋Š” Azure DevOps๋ฅผ ํ†ตํ•ด ํ˜น์‹œ๋ผ๋„ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

Mac๊ณผ Windows์—์„œ Visual Studio๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— --optimization = force-rejected-types-removal์„ ์ ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„ํ•œ๋‹ค. ์ด ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์ด์ƒ ํ•ด์š”. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ธ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ญ”๊ฐ€ ๋น ์ง„ ๊ฒŒ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

--optimization = force-rejected-types-removal ๊ฒฐ๊ณผ ๋ชจ๋…ธ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์•Œ ์ˆ˜์—†๋Š” ๋ช…๋ น ์ค„ ์ธ์ˆ˜

๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— --optimization = force-rejected-types-removal์„ ์ ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„ํ•œ๋‹ค. ์ด ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๊นŒ?
์ด์ƒ ํ•ด์š”. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ธ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ญ”๊ฐ€ ๋น ์ง„ ๊ฒŒ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

--optimization = force-rejected-types-removal ๊ฒฐ๊ณผ ๋ชจ๋…ธ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์•Œ ์ˆ˜์—†๋Š” ๋ช…๋ น ์ค„ ์ธ์ˆ˜

์•ˆ๋…•ํ•˜์„ธ์š”,
์ธ์ˆ˜ --optimization ์ด --optimize --optimization ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์™€!
@jfversluis ์—ฌ๊ธฐ (https://docs.microsoft.com/en-us/xamarin/ios/release-notes/13/13.16)๋Š” ์ž˜๋ชป๋œ ์ค„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์€ ํ”„๋กœ์ ํŠธ์˜ ์ถ”๊ฐ€ mtouch ์ธ์ˆ˜์— --optimization = force-rejected-types-removal์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ UIWebView์˜ ํ”์ ์ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ ํ˜•์„ ์ฐธ์กฐํ•˜๋Š” ์ฝ”๋“œ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์˜ˆ์™ธ ๋˜๋Š” ์ถฉ๋Œ ์˜ˆ์ƒ). ์ด๊ฒƒ์€ ์ฝ”๋“œ๊ฐ€ ๋Ÿฐํƒ€์ž„์— ๋„๋‹ฌ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ™•์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (์ •์  ๋ถ„์„์„ ํ†ตํ•ด ๋„๋‹ฌ ํ•  ์ˆ˜ ์žˆ๋”๋ผ๋„).

์–ด์จŒ๋“  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ AppStore์— ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฆ๋ถ„ ๋นŒ๋“œ ์‚ฌ์šฉ ํ•ด์ œ (์ค‘์š”)
  2. ๋ชจ๋…ธ ํ„ฐ์น˜ ์ถ”๊ฐ€ ์‚ฌํ•ญ : --optimize = experimental-xforms-product-type --optimize = + force-rejected-types-removal --warn-on-type-ref = UIKit.UIWebView -wa rnaserror : 1503

์—ฌ๊ธฐ (https://docs.microsoft.com/en-us/xamarin/ios/release-notes/13/13.16)๋Š” ์ž˜๋ชป๋œ ์ค„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋ฌธ์„œ์— ๋Œ€ํ•œ PR์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ž‘๋™ํ•˜๊ณ ์žˆ๋Š” ๋‚˜์—๊ฒŒ ์ ‘๊ทผ ํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋ช‡ ๋ช… ๋” ์žˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ์•„์ง ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ๊ณ ์ณ์„œ ๋‹คํ–‰์ž…๋‹ˆ๋‹ค!

@jfversluis ์ด UIWebView Deprecation ๋ฌธ์ œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹น์‹ ๊ณผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ œ๊ณตํ•˜๋Š” ๊ฐ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ๋งํฌ ๋™์ž‘์„ ๋ชจ๋‘ ๋งํฌ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

  2. MTouch Link ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. --optimize = experimental-xforms-product-type --optimize = force-rejected-types-removal --warn-on-type-ref = UIKit.UIWebView

  3. xamarin.Forms ์šฉ Nuget ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  ๋ฒ„์ „ (4.6.0.726)์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

  4. ์ตœ์‹  ๋ฒ„์ „์˜ Mac ์šฉ Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    Mac ์šฉ Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ 2019
    ๋ฒ„์ „ 8.5.5 (๋นŒ๋“œ 7)

  5. ๋‚ด Xamarin.iOS๋Š” 13.16.0.13์ž…๋‹ˆ๋‹ค.
    Xamarin.iOS
    ๋ฒ„์ „ : 13.16.0.13 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
    ํ•ด์‹œ : b75deaf82
    ๋ถ„๊ธฐ : d16-5-xcode11.4
    ๋นŒ๋“œ ๋‚ ์งœ : 2020-04-01 21 : 33 : 19-0400

๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ ๋นŒ๋“œ๋ฅผ testflight์— ํ‘ธ์‹œ ํ•  ๋•Œ Apple์—์„œ UIWebView Deprecation ๋ฌธ์ œ ๋ฉ”์‹œ์ง€๋ฅผ ์—ฌ์ „ํžˆ๋ฐ›์Šต๋‹ˆ๋‹ค.
๋นŒ๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์—ฌ์ „ํžˆ์ด ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
MTOUCH : warning MT1502: One or more reference(s) to type 'UIKit.UIWebView' already exists inside 'Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' before linking

๋‚ด๊ฐ€ ๋ญ˜ ๋†“์น˜๊ณ  ์žˆ๋Š”์ง€ ๋งํ•ด ์ค„๋ž˜? ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” Visual Studio ํ”„๋กœ์ ํŠธ ์ธ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ์œผ๋ฉฐ์ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๋„ˆ๊ฒŸ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
<ItemGroup> <Reference Include="Plugin.Settings, Version=3.1.1.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Plugin.Settings.Abstractions, Version=3.1.1.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.Abstractions.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Sockets.Plugin, Version=2.0.2.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\rda.SocketsForPCL.2.0.2\lib\Xamarin.iOS10\Sockets.Plugin.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Sockets.Plugin.Abstractions, Version=2.0.2.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\rda.SocketsForPCL.2.0.2\lib\Xamarin.iOS10\Sockets.Plugin.Abstractions.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="SQLiteNetExtensions, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\SQLiteNetExtensions.2.1.0\lib\netstandard1.1\SQLiteNetExtensions.dll</HintPath> </Reference> <Reference Include="SQLiteNetExtensionsAsync, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\SQLiteNetExtensions.Async.2.1.0\lib\netstandard1.1\SQLiteNetExtensionsAsync.dll</HintPath> </Reference> <Reference Include="System" /> <Reference Include="System.Xml" /> <Reference Include="System.Core" /> <Reference Include="Xamarin.iOS" /> <Reference Include="Acr.Support.iOS"> <HintPath>..\packages\Acr.Support.2.1.0\lib\Xamarin.iOS10\Acr.Support.iOS.dll</HintPath> </Reference> <Reference Include="OxyPlot.Xamarin.iOS"> <HintPath>..\packages\OxyPlot.Xamarin.iOS.1.0.0\lib\Xamarin.iOS10\OxyPlot.Xamarin.iOS.dll</HintPath> </Reference> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.IO.Compression" /> <Reference Include="System.Net.Http" /> <Reference Include="PCLCrypto"> <HintPath>..\packages\PCLCrypto.2.0.147\lib\xamarinios10\PCLCrypto.dll</HintPath> </Reference> <Reference Include="System.Json" /> <Reference Include="ICSharpCode.SharpZipLib.Portable"> <HintPath>..\packages\SharpZipLib.Portable.0.86.0.0003\lib\portable-net45+netcore45+wp8+win8+wpa81+MonoTouch+MonoAndroid+Xamarin.iOS10\ICSharpCode.SharpZipLib.Portable.dll</HintPath> </Reference> <Reference Include="SQLitePCL.raw"> <HintPath>..\packages\SQLitePCL.raw.0.9.3\lib\Xamarin.iOS10\SQLitePCL.raw.dll</HintPath> </Reference> <Reference Include="SQLitePCL.ugly"> <HintPath>..\packages\SQLitePCL.ugly.0.9.3\lib\portable-net45+netcore45+wp8+MonoAndroid10+MonoTouch10+Xamarin.iOS10\SQLitePCL.ugly.dll</HintPath> </Reference> <Reference Include="mscorlib" /> <Reference Include="OxyPlot.Xamarin.Forms"> <HintPath>..\packages\OxyPlot.Xamarin.Forms.1.0.0\lib\Xamarin.iOS10\OxyPlot.Xamarin.Forms.dll</HintPath> </Reference> <Reference Include="OxyPlot.Xamarin.Forms.Platform.iOS"> <HintPath>..\packages\OxyPlot.Xamarin.Forms.1.0.0\lib\Xamarin.iOS10\OxyPlot.Xamarin.Forms.Platform.iOS.dll</HintPath> </Reference> <Reference Include="Validation"> <HintPath>..\packages\Validation.2.4.22\lib\netstandard1.3\Validation.dll</HintPath> </Reference> <Reference Include="BTProgressHUD"> <HintPath>..\packages\BTProgressHUD.1.3.2\lib\xamarinios10\BTProgressHUD.dll</HintPath> </Reference> <Reference Include="OpenTK-1.0" /> <Reference Include="System.Xml.Linq" /> <Reference Include="Plugin.Permissions"> <HintPath>..\packages\Plugin.Permissions.6.0.1\lib\xamarinios10\Plugin.Permissions.dll</HintPath> </Reference> <Reference Include="Xamarin.Forms.Core"> <HintPath>..\packages\Xamarin.Forms.4.6.0.726\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath> </Reference> <Reference Include="Xamarin.Forms.Platform"> <HintPath>..\packages\Xamarin.Forms.4.6.0.726\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath> </Reference> <Reference Include="Xamarin.Forms.Xaml"> <HintPath>..\packages\Xamarin.Forms.4.6.0.726\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath> </Reference> <Reference Include="SQLitePCLRaw.core"> <HintPath>..\packages\SQLitePCLRaw.core.1.1.11\lib\Xamarin.iOS10\SQLitePCLRaw.core.dll</HintPath> </Reference> <Reference Include="SQLitePCLRaw.provider.sqlite3"> <HintPath>..\packages\SQLitePCLRaw.provider.sqlite3.ios_unified.1.1.11\lib\Xamarin.iOS10\SQLitePCLRaw.provider.sqlite3.dll</HintPath> </Reference> <Reference Include="SQLitePCLRaw.batteries_green"> <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.11\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_green.dll</HintPath> </Reference> <Reference Include="SQLitePCLRaw.batteries_v2"> <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.11\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_v2.dll</HintPath> </Reference> <Reference Include="SQLite-net"> <HintPath>..\packages\sqlite-net-pcl.1.5.231\lib\netstandard1.1\SQLite-net.dll</HintPath> </Reference> <Reference Include="WebP.Touch"> <HintPath>..\packages\WebP.Touch.1.0.8\lib\Xamarin.iOS10\WebP.Touch.dll</HintPath> </Reference> <Reference Include="PropertyChanged"> <HintPath>..\packages\PropertyChanged.Fody.2.5.13\lib\netstandard1.0\PropertyChanged.dll</HintPath> </Reference> <Reference Include="MvvmCross"> <HintPath>..\packages\MvvmCross.6.2.1\lib\xamarinios10\MvvmCross.dll</HintPath> </Reference> <Reference Include="MvvmCross.Plugin.Color"> <HintPath>..\packages\MvvmCross.Plugin.Color.6.2.1\lib\xamarinios10\MvvmCross.Plugin.Color.dll</HintPath> </Reference> <Reference Include="MvvmCross.Plugin.File"> <HintPath>..\packages\MvvmCross.Plugin.File.6.2.1\lib\xamarinios10\MvvmCross.Plugin.File.dll</HintPath> </Reference> <Reference Include="MvvmCross.Plugin.Messenger"> <HintPath>..\packages\MvvmCross.Plugin.Messenger.6.2.1\lib\netstandard2.0\MvvmCross.Plugin.Messenger.dll</HintPath> </Reference> <Reference Include="MvvmCross.Plugin.ResourceLoader"> <HintPath>..\packages\MvvmCross.Plugin.ResourceLoader.6.2.1\lib\xamarinios10\MvvmCross.Plugin.ResourceLoader.dll</HintPath> </Reference> <Reference Include="OxyPlot"> <HintPath>..\packages\OxyPlot.Core.2.0.0\lib\netstandard1.0\OxyPlot.dll</HintPath> </Reference> <Reference Include="Splat"> <HintPath>..\packages\Splat.5.0.2\lib\xamarinios10\Splat.dll</HintPath> </Reference> <Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Collections.Immutable"> <HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath> </Reference> <Reference Include="ReactiveUI"> <HintPath>..\packages\ReactiveUI.9.0.1\lib\xamarinios10\ReactiveUI.dll</HintPath> </Reference> <Reference Include="Plugin.BLE.Abstractions"> <HintPath>..\packages\Plugin.BLE.2.1.1\lib\Xamarin.iOS10\Plugin.BLE.Abstractions.dll</HintPath> </Reference> <Reference Include="Plugin.BLE"> <HintPath>..\packages\Plugin.BLE.2.1.1\lib\Xamarin.iOS10\Plugin.BLE.dll</HintPath> </Reference> <Reference Include="MvvmCross.Plugins.BLE"> <HintPath>..\packages\MvvmCross.Plugin.BLE.2.1.1\lib\Xamarin.iOS10\MvvmCross.Plugins.BLE.dll</HintPath> </Reference> <Reference Include="MvvmCross.Plugins.BLE.iOS"> <HintPath>..\packages\MvvmCross.Plugin.BLE.2.1.1\lib\Xamarin.iOS10\MvvmCross.Plugins.BLE.iOS.dll</HintPath> </Reference> <Reference Include="Acr.UserDialogs"> <HintPath>..\packages\Acr.UserDialogs.7.1.0.442\lib\xamarinios10\Acr.UserDialogs.dll</HintPath> </Reference> <Reference Include="System.Reactive"> <HintPath>..\packages\System.Reactive.4.4.1\lib\netstandard2.0\System.Reactive.dll</HintPath> </Reference> <Reference Include="System.Reactive.Core"> <HintPath>..\packages\System.Reactive.Core.4.0.0\lib\netstandard2.0\System.Reactive.Core.dll</HintPath> </Reference> <Reference Include="System.Reactive.Interfaces"> <HintPath>..\packages\System.Reactive.Interfaces.4.0.0\lib\netstandard2.0\System.Reactive.Interfaces.dll</HintPath> </Reference> <Reference Include="System.Reactive.Linq"> <HintPath>..\packages\System.Reactive.Linq.4.0.0\lib\netstandard2.0\System.Reactive.Linq.dll</HintPath> </Reference> <Reference Include="System.Reactive.PlatformServices"> <HintPath>..\packages\System.Reactive.PlatformServices.4.0.0\lib\netstandard2.0\System.Reactive.PlatformServices.dll</HintPath> </Reference> <Reference Include="System.Reactive.Providers"> <HintPath>..\packages\System.Reactive.Providers.4.0.0\lib\netstandard2.0\System.Reactive.Providers.dll</HintPath> </Reference> <Reference Include="Xamarin.Essentials"> <HintPath>..\packages\Xamarin.Essentials.1.5.3.2\lib\xamarinios10\Xamarin.Essentials.dll</HintPath> </Reference> <Reference Include="I18N" /> <Reference Include="CsvHelper"> <HintPath>..\packages\CsvHelper.15.0.5\lib\netstandard2.1\CsvHelper.dll</HintPath> </Reference> <Reference Include="System.Drawing.Common.dll" /> <Reference Include="Newtonsoft.Json"> <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath> </Reference> <Reference Include="DynamicData"> <HintPath>..\packages\DynamicData.6.14.14\lib\netstandard2.0\DynamicData.dll</HintPath> </Reference> <Reference Include="Stateless"> <HintPath>..\packages\Stateless.5.1.2\lib\netstandard2.0\Stateless.dll</HintPath> </Reference> <Reference Include="System.Buffers"> <HintPath>..\packages\System.Buffers.4.5.1\lib\netstandard2.0\System.Buffers.dll</HintPath> </Reference> <Reference Include="System.Runtime.CompilerServices.Unsafe"> <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath> </Reference> <Reference Include="System.Memory"> <HintPath>..\packages\System.Memory.4.5.4\lib\netstandard2.0\System.Memory.dll</HintPath> </Reference> <Reference Include="Cirrious.FluentLayouts.Touch"> <HintPath>..\packages\Cirrious.FluentLayout.2.9.0\lib\Xamarin.iOS10\Cirrious.FluentLayouts.Touch.dll</HintPath> </Reference> <Reference Include="HockeySDK"> <HintPath>..\packages\HockeySDK.Xamarin.5.2.0\lib\Xamarin.iOS10\HockeySDK.dll</HintPath> </Reference> <Reference Include="HockeySDK.iOSBindings"> <HintPath>..\packages\HockeySDK.Xamarin.5.2.0\lib\Xamarin.iOS10\HockeySDK.iOSBindings.dll</HintPath> </Reference> <Reference Include="PInvoke.Windows.Core"> <HintPath>..\packages\PInvoke.Windows.Core.0.6.6\lib\netstandard2.0\PInvoke.Windows.Core.dll</HintPath> </Reference> <Reference Include="PInvoke.Kernel32"> <HintPath>..\packages\PInvoke.Kernel32.0.6.6\lib\netstandard2.0\PInvoke.Kernel32.dll</HintPath> </Reference> <Reference Include="PInvoke.BCrypt"> <HintPath>..\packages\PInvoke.BCrypt.0.6.6\lib\netstandard1.1\PInvoke.BCrypt.dll</HintPath> </Reference> <Reference Include="PInvoke.NCrypt"> <HintPath>..\packages\PInvoke.NCrypt.0.6.6\lib\netstandard2.0\PInvoke.NCrypt.dll</HintPath> </Reference> <Reference Include="SimpleInjector"> <HintPath>..\packages\SimpleInjector.4.10.2\lib\netstandard2.0\SimpleInjector.dll</HintPath> </Reference> <Reference Include="FFImageLoading"> <HintPath>..\packages\Xamarin.FFImageLoading.2.4.11.982\lib\Xamarin.iOS10\FFImageLoading.dll</HintPath> </Reference> <Reference Include="FFImageLoading.Platform"> <HintPath>..\packages\Xamarin.FFImageLoading.2.4.11.982\lib\Xamarin.iOS10\FFImageLoading.Platform.dll</HintPath> </Reference> </ItemGroup>

์•ˆ๋…•ํ•˜์„ธ์š” @ W0126 ์ด ์˜๊ฒฌ ์˜ grep ์ œ์•ˆ์„ ์‹œ๋„ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ bin / obj ํด๋”๋ฅผ ์ง€์›Œ์„œ ์บ์‹ฑ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

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

๋ฟก ๋นต๋€จ

๋‚ด ์•ฑ์— grep ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
binary file ./Payload/uPyxis.app/uPyxis matches ์ถœ๋ ฅ

uPyxis๋Š” ๋‚ด ์•ฑ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚ด ์ฝ”๋“œ์—์„œ UIWebView๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. UIWebView๊ฐ€ ์–ด๋””์„œ ์™”๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  bin / obj ํด๋”๋ฅผ ์ •๋ฆฌํ–ˆ๊ณ  ๋ชจ๋“  ๊ตฌ์„ฑ์ด ํ”Œ๋ž˜๊ทธ์™€ ์„ค์ •์œผ๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
๋“œ๋””์–ด ์˜ค๋ž˜๋œ ์„ธ ๋ฒˆ์งธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ธ HockeySDK๊ฐ€ ์›์ธ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋งค์šฐ ์˜ค๋ž˜๋˜์—ˆ๊ณ  ํ˜„์žฌ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ์ด ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ๋‚ด ์•ฑ์ด ๊ฒฝ๊ณ ์—†์ด testflight๋ฅผ ํ†ต๊ณผ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ.

@ W0126 ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค! ์–ด๋–ป๊ฒŒ๋˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”!

์•ˆ๋…•ํ•˜์„ธ์š”,

์ €๋Š” ์ง€๋‚œ 5 ๋…„ ๋™์•ˆ XF๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋˜ํ•œ ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ๋งค์šฐ ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ €๋Š” Xamarin์˜ ์ง€์› ๋ถ€์กฑ๊ณผ ํ‘œ์  ์ง€์› ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํ”Œ๋žซํผ์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/ ๋งํฌ๋ฅผ ์‚ดํŽด
๋ชจ๋“  ์ง€์นจ์„ ๋”ฐ๋ž๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด TestFlight์—์„œ ๋นŒ๋“œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
BUTTTTTTTTT

LinkAll์„ ๋ณ€๊ฒฝํ•˜๋ฉด Signalr์— ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์˜ต์…˜์„ LINK ALL๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด Signalr ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜

'Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory'ํ˜•์‹์— ์ ํ•ฉํ•œ ์ƒ์„ฑ์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์œ ํ˜•์ด ๊ตฌ์ฒด์ ์ด๊ณ  ๊ณต์šฉ ์ƒ์„ฑ์ž์˜ ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์„œ๋น„์Šค๊ฐ€ ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๊ฑด๋„ˆ ๋›ฐ๊ธฐ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์šด์ด ์—†์Šต๋‹ˆ๋‹ค.

--linkskip = Microsoft.AspNetCore

Xamarin์ด ๊ฐœ๋ฐœ์ž๋ฅผ ๋„์šธ ์ˆ˜ ์—†๋‹ค๋Š” ์ ์— ์‹ค๋งํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์–ด๋–ค ํ•ด๊ฒฐ์ฑ…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋‚˜๋ฅผ ๋„์™€์ฃผ์„ธ์š”.

@LumiProj ํ˜น์‹œ Linker Behavior๋ฅผ SDK Only๋กœ ์„ค์ •ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ฐ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๊ฒฐํ•˜๊ณ  (์—…๋ฐ์ดํŠธ -1 ๋ฒ„์ „์ด์—ˆ์Šต๋‹ˆ๋‹ค) ๋‹จ๊ณ„๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‚ด Apple ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.
image

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚˜๋Š” ๋˜ํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์ œ์•ˆ ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋นŒ๋“œ (๋””๋ฒ„๊ทธ / ๋ฆด๋ฆฌ์Šค)์—์„œ ์ด๋Ÿฌํ•œ ํƒœ๊ทธ --optimize=experimental-xforms-product-type --optimize=+force-rejected-types-removal --warn-on-type-ref=UIKit.UIWebView -warnaserror:1503 Link Sdk ๋ฐ Link All์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” NuGet ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.
Screen Shot 2020-05-19 at 10 40 35 AM (IOS)
Screen Shot 2020-05-19 at 10 40 56 AM
(๊ณ„ํš)

์œ„์—์„œ ์ œ์•ˆํ•œ๋Œ€๋กœ grep -r "UIWebView" . ๋ฅผ ์‹œ๋„ํ•˜๋ฉด Binary file ./MyApp.iOS.app/Xamarin.Forms.Platform.iOS.dll matches Binary file ./MyApp.iOS.app/Xamarin.iOS.dll matches Binary file ./MyApp.iOS.app/MyApp.iOS matches ๋ฐ›์Šต๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ UIWebView๋ฅผ ๋ช…์‹œ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (VS์—์„œ ๊ฒ€์ƒ‰ํ•ด๋„ ์•„๋ฌด๊ฒƒ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ).

์ด๊ฒƒ์€ ๋‚ด ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.
Screen Shot 2020-05-19 at 10 44 36 AM
(Link Sdk ๋˜๋Š” Link All์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ๋‹ค์–‘ํ•œ ์˜ˆ์ œ์™€ ๋‹ค์–‘ํ•œ ํฌ๋Ÿผ์„ ์‚ดํŽด ๋ดค์ง€๋งŒ grep -r "UIWebView" . ๋•Œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์—์„œ ๋ฉ˜์…˜์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์—†์–ด ์•ฑ ์Šคํ† ์–ด์—์„œ ๋ชจ๋‘ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ์ด๋‚˜ ์กฐ์–ธ์ด๋ผ๋„ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š”,

๋“œ๋””์–ด ์ปจ๋””์…˜์ด ์ข‹๋‹ค.
--optimize = experimental-xforms-product-type ์‚ฌ์šฉ
LinkSdkAssemblies๋กœ.

@LumiProj ๋Œ€๋‹จํ•ด !

@JJwilkin ๋‚˜๋Š” ๋‹น์‹ ์—๊ฒŒ์„œ ์ด๋ฉ”์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์•Œ์•„๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

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

๊ฒฐ๊ตญ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์€ ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๊ณ  ipa ํŒŒ์ผ์„ ํŒจํ‚ค์ง•ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด Mac์—์„œ ipa ํ™•์žฅ์„ zip์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค. ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ YOURAPPNAME.app "ํด๋”"๋กœ ์ด๋™ํ•˜๊ณ  grep -r UIWebView . ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฐธ์กฐ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. . ์žŠ์ง€ ๋งˆ์„ธ์š”. ๊ทธ๋Ÿฌ๋ฉด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฒ˜์Œ์—๋Š” ๊ทธ๊ฒƒ์„ ๋†“ ์ณค๊ณ  grep์ด stdin์—์„œ ๋“ฃ๊ณ  ์žˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.
Binary file ./Frameworks/PersonalizedAdConsent.framework/PersonalizedAdConsent matches

์ด์ œ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ง์ปค๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํžˆ ์•Œ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” Firebase / Admob์˜ ์ผ๋ถ€์˜€์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ ํ•˜๋‚˜์˜ ๋ฆด๋ฆฌ์Šค์˜€์œผ๋ฉฐ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ --optimize=force-rejected-types-removal --warn-on-type-ref=UIKit.UIWebView -warnaserror:1503 ๋ฅผ mtouch ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ ๋นŒ๋“œ๊ฐ€ ํ†ต๊ณผ๋ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทผ๋ณธ ์›์ธ์— ๋” ๋นจ๋ฆฌ ๋„๋‹ฌํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

jmichas ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ๋‚ด ๊ทผ๋ฌด์ผ์„ ๋งŽ์ด ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ๋ชจ๋“  ์ง€์นจ๊ณผ ์ œ์•ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ Xamarin.Forms.iOS.Platform dll์—์„œ UIWebView ์ฐธ์กฐ๋ฅผ ์‹ค์ œ๋กœ ์–ป์„ ์ˆ˜์žˆ๋Š” ์‚ฌ๋žŒ์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋‹ค ์™”์ง€๋งŒ ๋ญ”๊ฐ€ ๋น ์กŒ๊ณ  App Store ๊ฑฐ๋ถ€์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์นจ๋‚ด ๋‚˜๋Š” ๋‹น์‹ ์—๊ฒŒ์„œ ๋งˆ์ง€๋ง‰ ๋ˆ„๋ฝ ๋œ ์กฐ๊ฐ์„ ์ฐพ์•˜๊ณ  ์ง€๊ธˆ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์ตœ์‹  ๊ทœ์น™์„ ๋ชจ๋‘ ์ค€์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ˆ˜์ˆ  eephyu๊ฐ€ ipa์˜ ํฌ์žฅ์„ ํ’€ ๊ฒƒ์„ ์ œ์•ˆ ํ–ˆ์Šต๋‹ˆ๊นŒ?
grep์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์•ฑ ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ๋งŒ UIWebView์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
ยฏ_ (ใƒ„) _ / ยฏ

๊ทธ๋ฆฌ๊ณ  ๋Œ€๋‹ต์€ CALABASH์ž…๋‹ˆ๋‹ค! ๋ฐ Xamarin TestCloudAgent nuget ํŒจํ‚ค์ง€.
ํ•ด๋‹น ํŒจํ‚ค์ง€์™€ Calabash.Start () ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด App Store๋ฅผ ํ†ต๊ณผํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

@pmace ๋‹น์‹ ์€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  Calabash ํŒจํ‚ค์ง€๋Š” Apple์—์„œ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋น„๊ณต๊ฐœ API๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ App Store๋กœ ์ด๋™ํ•˜๋Š” ๋นŒ๋“œ์—์„œ ํ•ญ์ƒ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. :)

์ด๊ฒƒ์„ ์ฐพ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด : UIWebViewRenderer๊ฐ€ ์ œ๊ฑฐ ๋œ Xamarin.Forms 5 (์‹œํ—˜ํŒ atm)๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๋นŒ๋“œ ํ”Œ๋ž˜๊ทธ ๋‚˜ ๊ธฐํƒ€ ๋ฒˆ๊ฑฐ ๋กœ์›€์—†์ด์ด ๋ฌธ์ œ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋„๋กํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚˜๋Š” ๋˜ํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์ œ์•ˆ ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋นŒ๋“œ (๋””๋ฒ„๊ทธ / ๋ฆด๋ฆฌ์Šค)์—์„œ ์ด๋Ÿฌํ•œ ํƒœ๊ทธ --optimize=experimental-xforms-product-type --optimize=+force-rejected-types-removal --warn-on-type-ref=UIKit.UIWebView -warnaserror:1503 Link Sdk ๋ฐ Link All์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” NuGet ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.
Screen Shot 2020-05-19 at 10 40 35 AM (IOS)
Screen Shot 2020-05-19 at 10 40 56 AM
(๊ณ„ํš)

์œ„์—์„œ ์ œ์•ˆํ•œ๋Œ€๋กœ grep -r "UIWebView" . ๋ฅผ ์‹œ๋„ํ•˜๋ฉด Binary file ./MyApp.iOS.app/Xamarin.Forms.Platform.iOS.dll matches Binary file ./MyApp.iOS.app/Xamarin.iOS.dll matches Binary file ./MyApp.iOS.app/MyApp.iOS matches ๋ฐ›์Šต๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ UIWebView๋ฅผ ๋ช…์‹œ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (VS์—์„œ ๊ฒ€์ƒ‰ํ•ด๋„ ์•„๋ฌด๊ฒƒ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ).

์ด๊ฒƒ์€ ๋‚ด ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.
Screen Shot 2020-05-19 at 10 44 36 AM
(Link Sdk ๋˜๋Š” Link All์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ๋‹ค์–‘ํ•œ ์˜ˆ์ œ์™€ ๋‹ค์–‘ํ•œ ํฌ๋Ÿผ์„ ์‚ดํŽด ๋ดค์ง€๋งŒ grep -r "UIWebView" . ๋•Œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์—์„œ ๋ฉ˜์…˜์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์—†์–ด ์•ฑ ์Šคํ† ์–ด์—์„œ ๋ชจ๋‘ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ์ด๋‚˜ ์กฐ์–ธ์ด๋ผ๋„ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

๋‚˜๋Š”์ด ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค :(, @JJwilkin ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐ ํ–ˆ์Šต๋‹ˆ๊นŒ?

@jmatusburgos ํ”„๋กœ์ ํŠธ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ฒŒ์‹œํ•˜์—ฌ ์ €์—๊ฒŒ ์ง์ ‘ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.

@jmatusburgos ๋”ฐ๋ผ
https://github.com/xamarin/Xamarin.Forms/issues/9823#issuecomment -630945296

์•ˆ๋…•ํ•˜์„ธ์š” @LumiProj Im์—๋Š” ๊ทธ ์ฃผ์žฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@jfversluis Im์€ Xamarin.forms 4.8.0.1364๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” UIWebView์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” googleAnalytics ๋ฐ Google.SigIn ๊ณผ ๊ฐ™์€ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ–ˆ์œผ๋ฉฐ grep ๋ช…๋ น์ด ์ผ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ์ด์ œ grep -r "UIWebView" . ์‚ฌ์šฉํ•  ๋•Œ Binary file ./MyApp.iOS.app/Xamarin.Forms.Platform.iOS.dll... ๋ช…์‹œ ์  ์ฐธ์กฐ์— ๋Œ€ํ•ด ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

XCode 12๊ฐ€ ์„ค์น˜๋œ Microsoft ์ปดํ“จํ„ฐ ๋ฐ Mac์—์„œ VS2019๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.
Link All ๋ฐ LinkSdkAssemblies๋กœ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

image

@jmatusburgos ๋‚ด GitHub ํŽ˜์ด์ง€์—์„œ ๋‚ด ์ด๋ฉ”์ผ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก

@jfversluis ์‘๋‹ต์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋™๋ฃŒ ์ง์›์˜ ๋„์›€์„ ๋ฐ›์•„ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚จ 3 ๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

Refractored.XamForms.PullToRefresh 2.4.1
Paypal. ์–‘์‹ 2.18.6
Xamarin.PayPal.iOS 2.18.0

์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ œ๊ฑฐํ•˜๊ณ  ๋งˆ์นจ๋‚ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์˜ ํฅ๋ฏธ๋กœ์šด ์ ์€ grep ๋ช…๋ น์œผ๋กœ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ผ์น˜๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋•Œ๋กœ๋Š” ์œ ์ฃ„ ๋„์„œ๊ด€์„ ์ฐพ์€ ํผ์ฆ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ, @jfversluis ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค :)

์˜ˆ, grep ๋ช…๋ น์œผ๋กœ ์„ ํƒ๋˜์ง€ ์•Š๋Š” ๋ž˜ํผ๋ฅผ ๋งŒ๋“  ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ์…”์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

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