Xamarin – 在某些构buildconfiguration中包含设置包

我目前正在使用Xamarin构build一个iOS应用程序,并正在实施一个设置包,以便我们的QA部门可以将应用程序指向适当的API环境。

我所看到的是根据构buildconfiguration在Xamarin iOS应用程序中包含或排除Settings包,因为我可能不想在Release模式下将此数据公开给用户。

您是否可以包含或排除Settings包,甚至可以根据构buildconfiguration更改编译到应用程序中的包?

(我被这么多次问过:-),我想我会扩大我原来的答案。)

所以作为一个例子,在Debug模式下,我想包含一个由Root.plist和一个子菜单Extra.plist组成的Extra.plist

Release模式下,我想在应用程序的Setting.bundle包含一个完全不同的Root.plist并且没有 Setting.bundle

我的.csproj文件将如下所示:


  <ItemGroup Condition="'$(Configuration)'!='Debug'"> <BundleResource Include="Settings.bundle\Root.plist" > </BundleResource> </ItemGroup> <ItemGroup Condition="'$(Configuration)'=='Debug'"> <BundleResource Include="Settings.debug\Extra.plist" > <Link>Settings.bundle\Extra.plist</Link> </BundleResource> <BundleResource Include="Settings.debug\Root.plist" > <Link>Settings.bundle\Root.plist</Link> </BundleResource> </ItemGroup> 

注意:

如下所示,在Debug Xamarin是包括额外的菜单项到我的Root.plist和Release他们不是。 另外,我的“ Additional Settings子菜单不再可用,现在标有“ XXXX Release

debugging模式结果:

在这里输入图像说明

在这里输入图像说明

发布模式结果:

在这里输入图像说明

除了条件包括不同的设置包,您可能还需要有条件地阅读您的应用程序中的设置。 您可以使用条件编译从设置读取或使用硬编码的值:

 #if DEBUG //Read from settings #else //Use other values. #endif