[英]Get --dart-define environment variables in native iOS and Android
我正在尝试找到一种方法来访问本机 iOS 和 Android 代码中--dart-define
提供的环境变量。
有没有办法做到这一点?
我已经尝试过https://binary-studio.com/2020/06/23/flutter-3/中解释的指南,但这不起作用,因为写入生成的.xcconfig
的内容不是由=
分隔,而是由%3D
。 我得到了错误
error: .../ios/Flutter/DEFINEEnvironment.xcconfig:2: expected a ‘=’, but found % (in target 'Runner' from project 'Runner')
使用以下内容生成文件DEFINEEnvironment.xcconfig
MY_VAR%3DMY_VALUE
而不是MY_VAR=MY_VALUE
更新
这似乎正在发生,因为从传递给--dart-define
的 args 读取时,它必须将 encoding =
转换为%3D
。 而且我不知道如何防止这种情况发生
脚本似乎已更改,现在包含解码字符串的必要代码。
需要添加到 Scheme 的 post-action 脚本是:
function urldecode() { : "${*//+/ }"; echo "${_//%/\\x}"; }
IFS=',' read -r -a define_items <<< "$DART_DEFINES"
for index in "${!define_items[@]}"
do
define_items[$index]=$(urldecode "${define_items[$index]}");
done
printf "%s\n" "${define_items[@]}" > ${SRCROOT}/Flutter/DEFINEEnvironment.xcconfig
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.