亚洲一级簧片_性 毛片_国产乱子视频_久久影城_强伦女教师视频_成人精品久久

電腦系統(tǒng)打包命令行

發(fā)布時間: 2023-04-16 09:28 閱讀: 文章來源:轉(zhuǎn)載

Flutter 命令行打包

作者:騰訊 - 小德(koudleren 任曉帥)

前言

前面講了Flutter持續(xù)化集成上的演進(jìn)之路,F(xiàn)lutter的工程為Flutter Model的工程,其中一個很重要的點就是如何在服務(wù)器上打包,這個涉及到命令行打包,接下來看如何做。

Android打包

Android的命令行打包比較簡單,直接用gradle命令,在工程的目錄下運行如下的命令:

  1. 打debug包
$./gradlew assembleDebug復(fù)制代碼
  1. 打Release包
$./gradlew assembleRelease復(fù)制代碼

生成的aar包就在.android/Flutter/build/outputs/aar/目錄下

iOS打包

iOS打包比較復(fù)雜一些,需要用到一個打包的腳本,這個腳本在Flutter SDK里,路徑為packages/flutter_tools/bin,有一個叫xcode_backend.sh的腳本,首先分析這個腳本:

if [[ $# == 0 ]]; then # Backwards-compatibility: if no args are provided, build. BuildAppelse case $1 in "build") BuildApp ;; "thin") ThinAppFrameworks ;; "embed") EmbedFlutterFrameworks ;; esacfi復(fù)制代碼

可以看到這個腳本有三個功能,分別是:

  1. build
  2. thin
  3. embed

把這個腳本拷貝到工程的目錄,運行

  1. 第一步
$/bin/sh xcode_backend.sh build復(fù)制代碼

然后你會發(fā)現(xiàn)有報錯,如下:

ERROR: Unknown FLUTTER_BUILD_MODE: .Valid values are 'Debug', 'Profile', or 'Release' (case insensitive).This is controlled by the FLUTTER_BUILD_MODE environment varaible.If that is not set, the CONFIGURATION environment variable is used.復(fù)制代碼

這是因為少了一些環(huán)境變量,要把這些變量加上:

export FLUTTER_BUILD_MODE="" //有三個值:Debug Profile Releaseexport FLUTTER_ROOT="" //Flutter SDK的目錄export FLUTTER_APPLICATION_PATH="" //工程目錄export SOURCE_ROOT="${FLUTTER_APPLICATION_PATH}/.ios/Flutter" //Flutter iOS代碼的目錄export FLUTTER_TARGET="lib/main.dart" //dart代碼export FLUTTER_BUILD_DIR="build" //build生成的路徑export ARCHS="armv7 arm64" //Flutter打包的Framework要支持的平臺復(fù)制代碼
  1. 第二步
$/bin/sh xcode_backend.sh thin復(fù)制代碼

同樣也要加上環(huán)境變量:

export SOURCE_ROOT=".../.ios/Flutter" //Flutter iOS代碼的目錄export ARCHS="armv7 arm64" //Flutter打包的Framework要支持的平臺export TARGET_BUILD_DIR="${SOURCE_ROOT}" //build生成的路徑export app_path="${TARGET_BUILD_DIR}/Flutter" //Flutter打包的Framework所在的路徑export frameworks_dir="${app_path}" //Flutter打包的Framework所在的路徑復(fù)制代碼

綜上,要加的環(huán)境變量如下:

export FLUTTER_BUILD_MODE="" //有三個值:Debug Profile Releaseexport FLUTTER_ROOT="" //Flutter SDK的目錄export FLUTTER_APPLICATION_PATH="" //工程目錄export SOURCE_ROOT="${FLUTTER_APPLICATION_PATH}/.ios/Flutter" //Flutter iOS代碼的目錄export FLUTTER_TARGET="lib/main.dart" //dart代碼export FLUTTER_BUILD_DIR="build" //build生成的路徑export ARCHS="armv7 arm64" //Flutter打包的Framework要支持的平臺export TARGET_BUILD_DIR="${SOURCE_ROOT}" //build生成的路徑export app_path="${TARGET_BUILD_DIR}/Flutter" //Flutter打包的Framework所在的路徑export frameworks_dir="${app_path}" //Flutter打包的Framework所在的路徑復(fù)制代碼

運行的命令如下:

$/bin/sh xcode_backend.sh build$/bin/sh xcode_backend.sh thin復(fù)制代碼

生成產(chǎn)物在.../.iOS/Flutter中查看,如果想修改生成產(chǎn)物的路徑,修改腳本里derived_dir的值,如下:

 local derived_dir="${SOURCE_ROOT}/Flutter/Flutter" if [[ -e "${project_path}/.ios" ]]; then derived_dir="${project_path}/.ios/Flutter/Flutter" fi復(fù)制代碼
???展開全文
相關(guān)文章
主站蜘蛛池模板: 天天操夜夜摸 | 超碰网址| 男人天堂av网站 | 日韩成人av在线播放 | 欧美a在线看 | 久久久www成人免费精品 | 日本一本在线视频 | 看全黄大色黄大片美女爽一次 | 日韩久久免费视频 | 亚洲国产91 | 6080yy精品一区二区三区 | 国产精品高潮在线 | 一区二区三区不卡在线观看 | 成人激情av | 91免费视频观看 | 男女的隐私视频网站 | 好av在线| 欧美成人a | 午夜午夜精品一区二区三区文 | 在线激情网站 | 男女羞羞免费视频 | 黄网站在线播放 | 丁香六月色婷婷 | 天天干天天插 | 国产综合精品一区二区三区 | 三区视频 | 美女久久 | 久久久久久久久久久久91 | 欧美一区二区三区视频 | 精品日本一区二区 | 夜夜爽爽爽久久久久久魔女 | 欧美日韩一级二级三级 | 国产激情在线 | 自拍偷拍视频网站 | 午夜精品999| 操人网站| 欧美黑人巨大videos精品 | www.婷婷色 | 国产馆av| 色先锋在线 | 日韩在线中文字幕 |