![](/img/trans.png)
[英]How can I use set Environment Variables in Xamarin.Forms from App Center
[英]How to read Microsoft App Center Environment Variables in Xamarin.Forms (Android)?
我在 appcenter.ms 中部署了一個應用程序,它有一些“秘密”字段。 我將它們添加到“環境變量”部分,如MYSTRING_STR value
,我試圖在 Xamarin.Forms 項目中讀取它,如var myStr = Environment.GetEnvironmentVariable("MYSTRING_STR");
但沒有返回值。 在發布版本中閱讀它們的正確方法是什么?
我很愚蠢。 當然它不會工作,因為應用程序不在它編譯的系統上運行,所以環境變量不會被復制。 我將把它留在這里給將來可能需要它的任何人。 Tl;Dr,我在 github 上有我的應用程序,而 App Center 只是從那里編譯。 這就是我設法在不泄露 github 信息的情況下獲得“秘密”字段的方法:您需要在項目中安裝Mobile.BuildTools
nuget 包。 然后,您在項目的根目錄中創建一個名為secrets.json
的文件,其中包含您需要的信息。 我在本地創建了一個占位符值,例如:
{
"String1": "%VALUE1%",
"String2": "%VALUE2%"
}
因為它是一個 json,所以它不會讀取值,但沒關系。 我們只希望在下一部分中在 github 上跟蹤它。 將它提交到 repo 后,我將它添加到 .gitignore 並刪除它的緩存,這樣當我們將實際值放入其中時它就不會被跟蹤。 當您點擊 compile 時,Mobile.BuildTools 將自動生成一個名為Secrets
的類。 您可以使用Secrets.String1
等訪問代碼中的變量,因此您只需在需要它們的地方使用它們。 之后,您像往常一樣在 App Center 中設置環境變量,然后您需要一個構建腳本將它們寫入 json 文件。 在文件夾<MyProject>.Android
(或 iOS,或兩者,如果您支持多個平台)中,我創建了名為appcenter-post-clone.sh
的腳本, appcenter-post-clone.sh
包含以下內容:
#!/usr/bin/env bash
npm install node-jq --save
jq -n \
--arg str1 "$STRING1" \
--arg str2 "$STRING2" \
'{String1: $str1, String2: $str2}' > $APPCENTER_SOURCE_DIRECTORY/<Project>/secrets.json
之后你就完成了。 很抱歉這篇很長的帖子,但我真的找不到任何解釋這一點的來源,所以我只是把它留在這里,以防其他人和我一樣迷路。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.