AAR 接入方式 是指基本采用原生接入的方案。在采用 AAR 接入方式時,由于對 mPaaS 基線管理的需要,請使用最新穩定版的 Android Gradle Plugin 和 Gradle Wrapper。建議使用 Android Gradle Plugin 3.5.3 和 Gradle Wrapper 5.6 以上版本,目前穩定版是 Android Gradle Plugin 3.6.x 和 Gradle Wrapper 6.3。
準備工作
升級 easyconfig 插件到 2.8.4 版本。
升級 Gradle 到 5.0 以上。
升級組件化接入方式到 AAR 接入方式
插件變化
更改 Gradle Wrapper 和 Android Gradle Plugin 到您需要的版本。Gradle 應為 5.0 或以上版本。
在所有項目的根目錄的 build.gradle 文件中,移除
classpath 'com.alipay.android:android-gradle-plugin'
。在 bundle 中移除所有的
com.android.application
插件,所有的 bundle 使用原生項目里的com.android.library
。移除 bundle 中所有的
com.alipay.bundle
插件。移除 bundle 中的
bundle {}
DSL 定義,移除public.xml
定義(如果有特別需要,可以保留)。移除 portal 中所有的
com.alipay.portal
插件。移除 portal 中的
portal {}
DSL 定義,移除public.xml
定義(如果有特別需要,可以保留)。更改
apply plugin: 'com.alipay.apollo.baseline.update'
為apply plugin: 'com.alipay.apollo.baseline.config'
。
依賴變化
移除
dependencies
節點中所有的provided
和bundle
聲明,使用 BOM 方式引入 AAR 依賴。implementation 'com.mpaas.android:push' implementation 'com.mpaas.android:nebula' implementation 'com.mpaas.android:push-hms5' implementation platform("com.mpaas.android:mpaas-baseline:$(latest)") testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
$(latest)
這個變量是 mPaaS 發布的最新基線。如果是標準基線,則不需要更改mpaas-baseline
的值;否則需要改成對應的定制基線的artifact
。移除加載框架與定制。更多關于加載框架和定制的信息,請參見 加載框架與定制。
通用組件使用變化
如果使用了 metainfo.xml
方式定義通用組件,請參見文檔 使用 mPaaS 框架通用組件。
熱修復使用變化
如果使用了熱修復功能,則需要將 portal 工程中的 com.alipay.mobile.quinox.LauncherApplication
替換為 com.alipay.mobile.framework.quinoxless.QuinoxlessApplication
,并按照在 AAR 接入方式下使用熱修復的流程進行初始化,更多信息,請參見 使用熱修復功能。如果沒有使用熱修復,則替換為 android.app.Application
。
文件變化
不再需要 slinks
文件和 res_slinks
文件。
可能存在的問題
因為高版本默認禁用了 v1 簽名,可能導致在 v1 簽名不存在的情況下無線保鏢報錯,請參見 如何解決運行時出現的 608 錯誤或 libsgmain 的 native 錯誤 進行排查。
自查
請參見 檢查構建腳本配置 文檔進行自查。
升級 mPaaS Inside 接入方式到 AAR 接入方式
插件變化
更改 Gradle Wrapper 和 Android Gradle Plugin 到您需要的版本。Gradle 應為 5.0 或以上版本。
在所有項目的根目錄的
build.gradle
文件中,移除classpath 'com.alipay.android:android-gradle-plugin'
。移除 portal 中所有的
com.alipay.portal
插件移除 portal 中的
portal {}
DSL 定義,移除public.xml
定義(如果有特別需要,可以保留)。?更改
apply plugin: 'com.alipay.apollo.baseline.update'
為apply plugin: 'com.alipay.apollo.baseline.config'
。
依賴變化
移除 dependencies
節點中所有的 provided
和 bundle
聲明,使用 BOM 方式引入 AAR 依賴。
implementation 'com.mpaas.android:push'
implementation 'com.mpaas.android:nebula'
implementation 'com.mpaas.android:push-hms5'
implementation platform("com.mpaas.android:mpaas-baseline:$(latest)")
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
$(latest)
這個變量是 mPaaS 發布的最新基線。如果是標準基線,則不需要更改 mpaas-baseline
的值;否則需要改成對應的定制基線的 artifact
。
通用組件使用變化
如果使用了 metainfo.xml
方式定義通用組件,請參見文檔 使用 mPaaS 框架通用組件。
gradle.properties 變化
不再需要設定 quinoxless=true
,已有的 quinoxless=true
配置可以保留也可以刪除。
可能存在的問題
因為高版本默認禁用了 v1 簽名,可能導致在 v1 簽名不存在的情況下無線保鏢報錯,請參見 如何解決運行時出現的 608 錯誤或 libsgmain 的 native 錯誤 進行排查。
自查
請參見 檢查構建腳本配置 文檔進行自查。