Xamarin - 在某些构建配置中包含设置包
Xamarin - Include Settings bundle in certain build configurations
我目前正在使用 Xamarin 构建一个 iOS 应用程序,并希望实现一个设置包,以便我们的 QA 部门可以将该应用程序指向适当的 API 环境。
我正在做的是根据构建配置在 Xamarin iOS 应用程序中包含或排除设置包,因为我可能不想在发布模式下向用户公开此数据。
您能否根据构建配置包含或排除设置包,甚至更改编译到应用程序中的包?
(我被问过很多次了:-),我想我会扩展我原来的答案。)
举个例子,在 Debug
模式下,我想包含一个 Setting.bundle
,它由 Root.plist
和一个子菜单 Extra.plist
.
组成
在 Release
模式下,我想在应用程序的 Setting.bundle
中包含完全不同的 Root.plist
和 no Extra.plist
我的 .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
调试模式结果:
释放模式结果:
除了有条件地包含不同的设置包之外,您可能还需要有条件地读取应用中的设置。您可以使用条件编译来读取设置或使用硬编码值:
#if DEBUG
//Read from settings
#else
//Use other values.
#endif
我目前正在使用 Xamarin 构建一个 iOS 应用程序,并希望实现一个设置包,以便我们的 QA 部门可以将该应用程序指向适当的 API 环境。
我正在做的是根据构建配置在 Xamarin iOS 应用程序中包含或排除设置包,因为我可能不想在发布模式下向用户公开此数据。
您能否根据构建配置包含或排除设置包,甚至更改编译到应用程序中的包?
(我被问过很多次了:-),我想我会扩展我原来的答案。)
举个例子,在 Debug
模式下,我想包含一个 Setting.bundle
,它由 Root.plist
和一个子菜单 Extra.plist
.
在 Release
模式下,我想在应用程序的 Setting.bundle
中包含完全不同的 Root.plist
和 no Extra.plist
我的 .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
调试模式结果:
释放模式结果:
除了有条件地包含不同的设置包之外,您可能还需要有条件地读取应用中的设置。您可以使用条件编译来读取设置或使用硬编码值:
#if DEBUG
//Read from settings
#else
//Use other values.
#endif