Xamarin - 在某些构建配置中包含设置包

时间:2016-04-22 13:19:53

标签: ios xamarin xamarin.ios settings.bundle

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

我正在做的是根据构建配置在Xamarin iOS应用程序中包含或排除Settings包,因为我可能不希望在发布模式下将此数据公开给用户。

您是否可以包含或排除“设置”捆绑包,甚至可以根据构建配置更改编译到应用程序中的捆绑包?

2 个答案:

答案 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

调试模式结果:

enter image description here

enter image description here

发布模式结果:

enter image description here

答案 1 :(得分:2)

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

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