appcenter-pre-build.sh
環境の種類に応じて、他のスクリプトを実行しています。環境がUATの場合は実行されますuat-pre-build.sh
。
これはappcenter-pre-build.sh
if [ -z "$ENV_TYPE" ]
then
echo "You need define the ENV_TYPE variable in App Center"
exit
fi
echo "ENV_TYPE is : - $ENV_TYPE"
if [ "UAT" = "$ENV_TYPE" ]
then
echo "Environment type : UAT"
ENV_FILE=$APPCENTER_SOURCE_DIRECTORY/ABC/config/uat-pre-build.sh
else
echo "you need to mentioned correct envrionment type"
exit
fi
echo "Environment file : $ENV_FILE"
sh "$ENV_FILE"
ビルド環境に応じて、3つの異なるスクリプトがあります。
- uat-prebuild.sh
- developmentprebuild.sh
- 製品 prebuild.sh
上記のスクリプトでは、変数の値を読み取り、それをConfigurationHelper.csに割り当てようとします。
これは私のuat-pre-build.shです。
APP_ID=b1a4a39f-4d89-4f04-98d8-2a20eda89aad
# Get ConfigurationHelper.cs from project
APP_CONSTANT_FILE=$APPCENTER_SOURCE_DIRECTORY/helpers/ConfigurationHelper.cs
if [ -e "$APP_CONSTANT_FILE" ]
then
echo "Updating environment configs in AppConstant.cs"
sed -i '' 's#ApplicationID = "[-A-Za-z0-9:_./]*"#ApplicationID = "'$APP_ID'"#' $APP_CONSTANT_FILE
echo "File content:"
cat $APP_CONSTANT_FILE
else
echo "Can not locate $APP_CONSTANT_FILE file"
fi
これはConfigurationHelper.csです。
public class ConfigurationHelper
{
public static string ApplicationID = string.Empty;
static ConfigurationHelper(){}
}
スクリプトを実行できますが、APP_ID値uat-pre-build.sh
をに割り当てることはできませんConfigurationHelper.cs
。次の行が正しく実行されないようです。
sed -i '' 's#ApplicationID = "[-A-Za-z0-9:_./]*"#ApplicationID = "'$APP_ID'"#' $APP_CONSTANT_FILE
これはApplication Centerの出力です。
[command]/bin/bash
/Users/vsts/agent/2.153.1/work/1/s/ABC.Android/appcenter-pre-build.sh
ENV_TYPE is : - UAT
Environment type : UAT
Environment file : /Users/vsts/agent/2.153.1/work/1/s/ABC/config/uat-pre-build.sh
Updating environment configs in AppConstant.cs
File content:
namespace ABC.Business.Helpers
{
/// <summary>
/// The configuration helper.
/// </summary>
public class ConfigurationHelper
{
public static string ApplicationID = string.Empty;
/// <summary>
/// Initializes static members of the <see cref="ConfigurationHelper"/> class.
/// </summary>
static ConfigurationHelper()
{
}
}
}
この問題を解決するのに役立ちます。
ベストアンサー1
string.Empty
ファイルで置き換えようとしているようですが、ConfigurationHelper.cs
見つかったとおりに使用する代替項目が一致しません。あなたはApplicationID = "[-A-Za-z0-9:_./]*"
。これは一致できます。
public static string ApplicationID = "string.Empty";
ただし、一致パターンに二重引用符文字を明示的に指定したので、その文字をソースコードに表示する必要があります。
直接マッチングを試すことができますApplicationID = string.Empty
。string.Empty
引用符付き文字列の1つの複雑さが本当に必要な場合はどうすればよいですか?ApplicationID = \(string.Empty|".*"\)