【问题标题】:Xamarin - Include Settings bundle in certain build configurationsXamarin - 在某些构建配置中包含设置包
【发布时间】:2016-08-16 03:39:56
【问题描述】:

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

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

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

【问题讨论】:

  • 由于其他人的询问,我扩展了我的原始答案,看看它是否也对你有帮助,

标签: ios xamarin xamarin.ios settings.bundle


【解决方案1】:

(我被问了很多次 :-),我想我会扩展我原来的答案。)

例如,在Debug 模式下,我想包含一个Setting.bundle,它由Root.plist 和一个子菜单Extra.plist 组成。

Release 模式下,我想在应用程序的Setting.bundle 中包含一个完全不同的Root.plist 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

调试模式结果:

发布模式结果:

【讨论】:

【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2017-11-23
    • 2020-08-25
    • 2012-07-07
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2019-01-19
    相关资源
    最近更新 更多