最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

uni-app Android離線打包的多環(huán)境配置方案

 更新時間:2026年04月28日 09:46:30   作者:拾壹此間  
本文介紹uni-app項目Android多環(huán)境打包方案,通過productFlavors區(qū)分包名和key、利用flavor覆蓋資源和資產(chǎn)、規(guī)范變體命名和產(chǎn)物命名等方法,確保開發(fā)、測試、線上包穩(wěn)定并行,發(fā)版更可控,需要的朋友可以參考下

很多 uni-app 項目在離線打包階段都會遇到一個問題:
線上包、測試包共用一套配置,導(dǎo)致包名沖突、應(yīng)用名稱不區(qū)分、推送參數(shù)混用,甚至 release 包還帶著 debug 開關(guān)。

這篇文章基于一個真實項目,整理一套可落地的 Android 多環(huán)境配置方案,目標(biāo)是:

  • prod 包名:com.example.app
  • dev 包名:com.example.app.dev
  • prod 應(yīng)用名:示例應(yīng)用
  • dev 應(yīng)用名:示例應(yīng)用開發(fā)版
  • prod/dev 使用不同 dcloud_appkey
  • release 自動關(guān)閉 dcloud_control.xml 里的 debug 配置

1. 在 app 模塊啟用 productFlavors

文件:simpleDemo/build.gradle

android {
    defaultConfig {
        applicationId "com.example.app"
        manifestPlaceholders = [
                "GETUI_APPID"           : "YOUR_GETUI_APPID",
                "plus.unipush.appid"    : "YOUR_UNIPUSH_APPID",
                "plus.unipush.appkey"   : "YOUR_UNIPUSH_APPKEY",
                "plus.unipush.appsecret": "YOUR_UNIPUSH_APPSECRET",
                "apk.applicationId"     : "${applicationId}"
        ]
    }
    flavorDimensions "env"
    productFlavors {
        prod {
            dimension "env"
            manifestPlaceholders["DCLOUD_APPKEY"] = "YOUR_PROD_DCLOUD_APPKEY"
        }
        dev {
            dimension "env"
            applicationIdSuffix ".dev"
            manifestPlaceholders["DCLOUD_APPKEY"] = "YOUR_DEV_DCLOUD_APPKEY"
        }
    }
}

說明:

  • applicationIdSuffix ".dev" 會讓 dev 最終包名變成 com.example.app.dev
  • apk.applicationId 寫成 ${applicationId},避免 dev 包里仍然寫死 prod 包名
  • DCLOUD_APPKEY 用 flavor 維度區(qū)分,避免測試和線上串環(huán)境

2. Manifest 中使用占位符注入 dcloud_appkey

文件:simpleDemo/src/main/AndroidManifest.xml

<meta-data
    android:name="dcloud_appkey"
    android:value="${DCLOUD_APPKEY}" />

說明:
不要把 dcloud_appkey 寫死在 main,否則 prod/dev 無法自動切換。

3. 應(yīng)用名稱按環(huán)境覆蓋

main 保持正式名稱:

文件:simpleDemo/src/main/res/values/strings.xml

<resources>
    <string name="app_name">示例應(yīng)用</string>
</resources>

dev 增加同名資源覆蓋:

文件:simpleDemo/src/dev/res/values/strings.xml

<resources>
    <string name="app_name">示例應(yīng)用開發(fā)版</string>
</resources>

說明:
Android 資源會按構(gòu)建變體自動覆蓋,dev 下同名 app_name 會覆蓋 main

4. release 自動關(guān)閉 dcloud 調(diào)試開關(guān)

如果 dcloud_control.xml 放在 src/main 且寫著 debug="true",release 也會繼承這個配置。
正確做法是按 buildType 拆分。

調(diào)試包配置:

文件:simpleDemo/src/debug/assets/data/dcloud_control.xml

<hbuilder debug="true" syncDebug="true">
<apps>
    <app appid="__UNI__XXXXXXX" appver=""/>
</apps>
</hbuilder>

發(fā)布包配置:

文件:simpleDemo/src/release/assets/data/dcloud_control.xml

<hbuilder debug="false" syncDebug="false">
<apps>
    <app appid="__UNI__XXXXXXX" appver=""/>
</apps>
</hbuilder>

并刪除:

  • simpleDemo/src/main/assets/data/dcloud_control.xml

5. 讓輸出 APK 名稱帶上 flavor

配置后會出現(xiàn) prodDebug/devRelease 等多個變體,如果輸出文件名只叫 android_release.apk,產(chǎn)物會互相覆蓋。

建議在 androidComponents 中帶上 flavor:

androidComponents {
    onVariants(selector().all()) { variant ->
        variant.outputs.forEach { output ->
            def bt = variant.buildType
            def flavor = variant.flavorName
            def flavorPart = (flavor != null && !flavor.isEmpty()) ? "${flavor}_" : ""
            output.outputFileName.set("android_${flavorPart}${bt}.apk")
        }
    }
}

6. 打包

如果你使用 Android Studio 的 Build Variants 面板,正常會看到:

  • prodDebug / prodRelease
  • devDebug / devRelease

如果只看到 debug/release,通常是 Gradle Sync 失敗或未同步成功。

總結(jié)

uni-app Android 離線打包做多環(huán)境,核心是三件事:

  • productFlavors 區(qū)分環(huán)境(包名、key 等)
  • src/dev / src/release 做資源和資產(chǎn)覆蓋(應(yīng)用名、dcloud 控制文件)
  • 用規(guī)范的變體命名和產(chǎn)物命名,避免人工誤操作

這樣一來,開發(fā)、測試、線上包能穩(wěn)定并行,發(fā)版也會更可控。

到此這篇關(guān)于 uni-app Android離線打包的多環(huán)境配置方案的文章就介紹到這了,更多相關(guān) uni-app Android離線打包配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android實現(xiàn)九宮格手勢密碼

    Android實現(xiàn)九宮格手勢密碼

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)九宮格手勢密碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Android程序開發(fā)仿新版QQ鎖屏下彈窗功能

    Android程序開發(fā)仿新版QQ鎖屏下彈窗功能

    最近做了一個項目,其中涉及到這樣一個功能:新版的qq能在鎖屏下彈窗顯示qq消息,下面小編抽時間把實現(xiàn)代碼分享給大家感興趣的朋友參考下吧
    2016-09-09
  • Android中new Notification創(chuàng)建實例的最佳方法

    Android中new Notification創(chuàng)建實例的最佳方法

    這篇文章主要介紹了Android中new Notification創(chuàng)建實例的最佳方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • Android RecyclerView緩存復(fù)用原理解析

    Android RecyclerView緩存復(fù)用原理解析

    RecyclerView是Android一個更強大的控件,其不僅可以實現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實現(xiàn)數(shù)據(jù)縱向滾動,也可以實現(xiàn)橫向滾動(ListView做不到橫向滾動)。接下來講解RecyclerView的用法
    2022-11-11
  • Android實現(xiàn)標(biāo)題上顯示隱藏進(jìn)度條效果

    Android實現(xiàn)標(biāo)題上顯示隱藏進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)標(biāo)題上顯示隱藏進(jìn)度條效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android實現(xiàn)收到新短信后自動發(fā)郵件功能

    Android實現(xiàn)收到新短信后自動發(fā)郵件功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)收到新短信后自動發(fā)郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • android 調(diào)用系統(tǒng)的照相機和圖庫實例詳解

    android 調(diào)用系統(tǒng)的照相機和圖庫實例詳解

    android手機有自帶的照相機和圖庫,我們做的項目中有時用到上傳圖片到服務(wù)器,今天做了一個項目用到這個功能,所以把我的代碼記錄下來和大家分享,有需求的朋友可以參考下
    2012-12-12
  • 基于Android實現(xiàn)系統(tǒng)重啟reboot功能

    基于Android實現(xiàn)系統(tǒng)重啟reboot功能

    在某些特殊場景下(如設(shè)備管理、安全監(jiān)控、工控系統(tǒng)等),開發(fā)者可能需要實現(xiàn)系統(tǒng)重啟功能,本文給大家介紹了如何基于Android實現(xiàn)系統(tǒng)重啟reboot功能,需要的朋友可以參考下
    2025-04-04
  • android?sharedUserId?使用知識盲點解析

    android?sharedUserId?使用知識盲點解析

    這篇文章主要為大家介紹了android?sharedUserId使用的知識盲點解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android異步回調(diào)中的UI同步性問題分析

    Android異步回調(diào)中的UI同步性問題分析

    這篇文章主要為大家詳細(xì)分析了Android異步回調(diào)中的UI同步性問題,感興趣的小伙伴們可以參考一下
    2016-06-06

最新評論

西安市| 从化市| 静宁县| 临猗县| 永吉县| 大足县| 永新县| 宝清县| 肃北| 从江县| 扶沟县| 长宁县| 柳林县| 蒙山县| 比如县| 兴海县| 喀喇沁旗| 宜良县| 平塘县| 大竹县| 黄石市| 胶州市| 巴彦县| 大港区| 南汇区| 屏东市| 天津市| 睢宁县| 墨江| 六枝特区| 靖远县| 黑河市| 道真| 夏津县| 滁州市| 扶余县| 杭锦后旗| 革吉县| 宁波市| 九龙坡区| 雷州市|