mis*_*iac 8 ios fastlane flutter
我找不到答案。我的应用程序需要定义参数--dart-define=ENVIRONMENT="$APP_ENV"
构建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
Run Code Online (Sandbox Code Playgroud)
我的 fastlane 车道是:
lane :build_app_prod_ad_hoc do
cocoapods
gym(
configuration: "AdHoc-prod",
export_method: "ad-hoc",
scheme: "prod",
export_options: {
provisioningProfiles: {
...
},
},
)
end
Run Code Online (Sandbox Code Playgroud)
但是我可以看到我的结果没有正确设置环境。有任何想法吗?
解决方案:在 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/Generate.xcconfig
当您直接从 Xcode 构建应用程序或使用 Fastlane 时,Flutter 项目代码内 ios 文件夹中的 generated.xcconfig 将用于运行/构建应用程序。
示例: 在我的例子中,我们使用 --dart-define 传递 ENV 变量,但如果您直接从 XCode 运行而不首先运行 flutter build 或 run 命令,这些参数将不会更新。
flutter run/build --flavor dev --dart-define ENV=dev
Dart 定义变量将以 Base64 编码存储在 flutter_export_environment.sh 和 generated.xcconfig 中。
DART_DEFINES=RU5WX1UEU9chZ2luZw==
注意:这是一种解决方法,可以避免运行 flutter run/build 命令,然后运行 Xcode/Fastlane 来解决问题。不是最好的解决方案,但我希望它可以帮助别人。
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |