Xamarin:是否可以将环境变量注入AndroidManifest.xml文件?

问题描述 投票:1回答:1

我有一个开源Xamarin项目,该项目在AndroidManifest.xml文件中具有API密钥。目前,我已经通过.gitignore-AndroidManifest.xml处理了该问题,但这是一个麻烦的解决方案,它使我无法使用AppCenter等自动构建环境。

可以通过Gradle文件完成:https://developer.android.com/studio/build/manifest-build-variables

但是,在Xamarin中,我们无权使用Gradle。我在Xamarin项目中找不到实现此目的的方法。我是否缺少明显的东西?

xamarin gradle xamarin.android
1个回答
0
投票

不幸的是,当读取AndroidManifest.xml(或iOS版本的Info.plist)时,环境变量不可用。

我发现更改这些文件(包括com标识符)中的配置值的一种方法是通过“项目选项”->“构建”->“自定义命令”运行预构建脚本。实际的脚本可能非常简单。类似于:

#!/bin/sh
cat ./manifest/prod/AndroidManifest.xml > Properties/AndroidManifest.xml

每个构建配置都需要使用不同版本的脚本。就我而言,我需要根据环境更改com标识符,以便从Pushy.me隔离生产与开发推送通知。

这将显示在您的.csproj文件中,如下所示:

<CustomCommands>
    <CustomCommands>
    <Command>
        <type>BeforeBuild</type>
        <command>set_manifest_dev.sh</command>
        <workingdir>${ProjectDir}</workingdir>
    </Command>
    </CustomCommands>
</CustomCommands>

Project options view

© www.soinside.com 2019 - 2024. All rights reserved.