【问题标题】:Get --dart-define environment variables in native iOS and Android在原生 iOS 和 Android 中获取 --dart-define 环境变量
【发布时间】:2021-01-05 05:30:01
【问题描述】:

我正在尝试找到一种方法来访问本机 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 的参数中读取时,它必须将= 编码为%3D。我不知道如何防止这种情况发生

【问题讨论】:

  • 嗨)很抱歉造成这种混乱)我很久以前就更新了 medium 上的文章,甚至发表了一篇关于 1.20 更改的新文章)但由于某种原因,我们博客中的文章仍未更新(

标签: android ios flutter dart


【解决方案1】:

脚本似乎已更改,现在包含解码字符串所需的代码。

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

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 2017-10-21
    • 2011-11-27
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    相关资源
    最近更新 更多