我目前正在使用Xamarin构建iOS应用程序,并且正在寻求实现设置包,以便我们的QA部门可以将应用程序指向适当的API环境。
我正在做的是根据构建配置在Xamarin iOS应用程序中包含或排除Settings包,因为我可能不希望在发布模式下将此数据公开给用户。
您是否可以包含或排除“设置”捆绑包,甚至可以根据构建配置更改编译到应用程序中的捆绑包?
答案 0 :(得分:6)
(我多次问过这个问题:-),我想我会扩展原来的答案。)
举例来说,在Debug
模式下,我想要添加一个由Setting.bundle
和一个子菜单Root.plist
组成的Extra.plist
。
在Release
模式下,我想在应用的Root.plist
Extra.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
答案 1 :(得分:2)
除了包含不同设置包的条件之外,您可能还需要有条件地阅读应用中的设置。您可以使用条件编译来读取设置或使用硬编码值:
#if DEBUG
//Read from settings
#else
//Use other values.
#endif