![](/img/trans.png)
[英]Get --dart-define environment variables in native iOS and Android
[英]Flutter fastlane ios how to pass --dart-define
我找不到這個問題的答案。 我的應用需要定義參數
--dart-define=ENVIRONMENT="$APP_ENV"<\/code>
構建 Android 沒有問題,但是在 fastlane 中構建 ad-hoc 時如何通過這些? 我准備了運行的構建腳本:
flutter pub get
flutter build ios --config-only \
--flavor prod \
--dart-define=ENVIRONMENT="$APP_ENV"
cd ios
bundle exec fastlane build_app_prod_ad_hoc
解決方案:
在flutter_export_environment.sh和Generated.xcconfig中編碼和替換你的 dart 變量,然后直接從 Xcode/Fastlane 運行應用程序就可以了。
- - - 細節 - - - -
問題:
如果您直接從 Xcode/Fastlane 運行應用程序而不先運行 flutter run/build 命令,則通過 --dart-define 傳遞的變量不會反映。
原因:
涉及以下生成的文件,但不打算手動更新,但在我們從 Xcode 或 Fastlane 運行來構建應用程序的情況下,使用的 dart 變量不會得到更新。 當您運行 flutter run 或 build 命令時,這些文件將使用 --dart-define 中的值更新為 Base64。
/ios/Flutter/flutter_export_environment.sh
ios/Flutter/Generated.xcconfig
當您直接從 Xcode 構建應用程序或使用 Fastlane 時,Flutter 項目代碼中 ios 文件夾中的 Generated.xcconfig 將用於運行/構建應用程序。
示例:在我的例子中,我們使用 --dart-define 傳遞 ENV 變量,但是如果您直接從 XCode 運行而不先運行 flutter build 或 run 命令,這些參數將不會更新。
顫振運行/構建 --flavor dev --dart-define ENV=dev
Dart 定義變量會以 Base64 編碼存儲在 flutter_export_environment.sh 和 Generated.xcconfig 中。
DART_DEFINES=RU5WX1UEU9chZ2luZw==
注意:這是一種解決方法,可以避免運行 flutter run/build 命令,然后運行 Xcode/Fastlane 來解決問題。 不是最好的解決方案,但我希望它可以幫助某人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.