android - 在原生 iOS 和 Android 中获取 --dart-define 环境变量
问题描述
我正在尝试找到一种方法来访问本--dart-define
机 iOS 和 Android 代码内部提供的环境变量。
有没有办法做到这一点?
我已经尝试过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 读取时必须将其编码=
为%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
推荐阅读
- jquery - Jquery Datepicker插件值属性不起作用
- javascript - Chrome 不会加载我的 js 脚本文件
- materialize - 在浮动按钮中实现 CSS 图标定位
- ios - 使用 Swift 4,如何获取本地存储的图像?
- ios - 使用 Objective-C 检索 SSL 证书的信息
- php - 将值返回给 laravel 中的许多视图
- java - android:如何将字符串转换为日期
- java - 此客户端应用程序的回调 URL 未获批准
- javascript - 在区间函数中反应 setAttribute
- javascript - 使用jspdf时转换/规范化特殊字符