Ada*_*per 6 c# xamarin xamarin.forms visual-studio-app-center
我有一个使用 App Center 构建的 Xamarin Forms 应用程序。该应用程序包含一些如下所示的代码:
var secret= "secretvaluegoeshere";
Run Code Online (Sandbox Code Playgroud)
然后我使用该秘密与 API 进行通信。现在我想从代码中提取该秘密,以免在源代码管理中使用它并在 App Center 上构建时注入它。环境变量似乎应该解决这个问题,但是文档中的示例没有提到它们如何进入代码(只有 nuget 和 gradle 配置)。有没有办法用环境变量做我想做的事,还是我应该用另一种方式来做?
Ada*_*per 14
所以事实证明,通过以下步骤,这非常容易:
在您的项目中安装Mobile.BuildTools NuGet 包。
在项目的根目录中添加一个 secrets.json 文件(这应该使用 .gitignore 从源代码控制中排除)。
将您的秘密添加到 secrets.json 文件中,因此在我的情况下,我将添加一个 SearchApiKey,显然您可以添加任意数量的秘密:
{
"SearchApiKey": "SUPERSECRETGOESHERE"
}
Run Code Online (Sandbox Code Playgroud)
构建您的项目,这将生成一个名为 Secrets 的静态类,其属性为 SearchApiKey,如果您想查看它,可以在 obj 文件夹下找到它。
您现在可以在您的代码中访问此类及其属性,因此我只需执行以下操作:
var secret = Secrets.SearchApiKey;
Run Code Online (Sandbox Code Playgroud)
最后,要将秘密传递到 AppCenter 上的构建中,您需要添加一个与前面带有 Secret_ 的属性名称匹配的环境变量,因此在我的情况下,它的名称是 Secret_SearchApiKey 并设置它的值。
您可以查看Mobile.BuildTools GitHub 存储库以获取更多信息。
| 归档时间: |
|
| 查看次数: |
6091 次 |
| 最近记录: |