React Native Android端多环境自动打包
生活随笔
收集整理的這篇文章主要介紹了
React Native Android端多环境自动打包
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1、技術(shù)環(huán)境搭建
- 2、配置Android構(gòu)建參數(shù)。
- 3、編輯復(fù)制文件到指定位置的腳本
- 4、Jenkins創(chuàng)建工程
- 5、下載nginx,配置相關(guān)參數(shù)、HTTPS證書(shū)
- 6、寫(xiě)iOS下載配置文件plist
- 7、編寫(xiě)下載頁(yè)面
- 9、將下載頁(yè)面、文件下載路徑配置到nginx的配置文件中
- 10、啟動(dòng)nginx
1、技術(shù)環(huán)境搭建
-
Android SDK
- 通過(guò)comdline-tools 管理SDK
- 配置環(huán)境變量
- 安裝需要的SDK
- 列舉所有組件:sdkmanager --list
- 下載指定版本:sdkmanager “platform-tools” “platforms;android-23” build-tools;30.0.3"
-
Gradle
-
JDK
-
Node
常用命令行
2、配置Android構(gòu)建參數(shù)。
- 在build.gradle中配置環(huán)境
- 修改react.gradle中的打包命令
3、編輯復(fù)制文件到指定位置的腳本
autoPackage.sh
#!/bin/sh# 預(yù)先定義對(duì)應(yīng)的環(huán)境變量 envionmentVariables(){#安卓項(xiàng)目工程路徑android_project_path="D:\gerrit\workspace\Traffic\pmcloud-android-rn\android"# 安卓apk目錄路徑apk_dir_path="$android_project_path/app/build/outputs/apk"# apk 路徑apk_debug_path="$apk_dir_path/debug/app-debug.apk"apk_preRelease_path="$apk_dir_path/preRelease/app-preRelease.apk"apk_release_path="$apk_dir_path/release/app-release.apk"# 安裝文件最終存儲(chǔ)路徑output_path="D:\marui\download\files" }apkBuild(){# 刪除老的apkrm -rf $apk_debug_pathrm -rf $apk_preRelease_pathrm -rf $apk_release_pathcd "$android_project_path"pwdsleep 1# 執(zhí)行安卓打包腳本echo " ----clear start----"./gradlew clearecho " ----build start----"./gradlew build# 檢查apk文件是否存在if [ -f "$apk_debug_path" ]; thenecho "----build success(debug)----"sleep 1elseecho "----build failed(debug)----"exit 1fiif [ -f "$apk_preRelease_path" ]; thenecho "----build success(preRelease)----"sleep 1elseecho "----build failed(preRelease)----"exit 1fiif [ -f "$apk_release_path" ]; thenecho "----build success(release)----"sleep 1elseecho "----build failed(release)----"exit 1fi }copyFiles(){echo "復(fù)制結(jié)果文件到下載目錄" robocopy "$apk_dir_path/debug" "$output_path" "app-debug.apk"robocopy "$apk_dir_path/preRelease" "$output_path" "app-preRelease.apk"robocopy "$apk_dir_path/release" "$output_path" "app-release.apk"echo "復(fù)制完成" # echo xcopy }envionmentVariables #apkBuild copyFiles4、Jenkins創(chuàng)建工程
在公司的jenkins(https://ci.yonyou.com/)上創(chuàng)建項(xiàng)目。其中重要的是構(gòu)建步驟的配置如下:
執(zhí)行windows批處理命令:yarn
執(zhí)行windows批處理命令:git reset --hard
Invoke Gradle script:Use Gradle Wrapper、Wrapper location( ${workspace}/android/)、Tasks(build)
執(zhí)行windows批處理命令:
cd D:\marui sh autoPackage.sh5、下載nginx,配置相關(guān)參數(shù)、HTTPS證書(shū)
6、寫(xiě)iOS下載配置文件plist
ios.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict><key>items</key><array><dict><key>assets</key><array><dict><key>kind</key><string>software-package</string><key>url</key>// ios包的下載地址<string>https://ygccs.yonyoucloud.com/files/app-ios-release.ipa</string></dict></array><key>metadata</key><dict><key>bundle-identifier</key>// 項(xiàng)目id<string>com.yonyou.engineerCloud</string><key>bundle-version</key><string>3.3.0</string><key>kind</key><string>software</string><key>title</key><string>友工程</string></dict></dict></array> </dict> </plist>7、編寫(xiě)下載頁(yè)面
<!DOCTYPE html> <html lang="cn"> <head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1,minimum-scale=1,user-scalable=no"><title>工程云</title><style>html, body {width:100%;height: 100%;margin: 0 auto;text-align: center;background-color: #ffffff;cursor: pointer;-webkit-tap-highlight-color: transparent !important;}* {-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}.centent {max-width: 600px;width: 80%;height: 100%;margin: 20px auto;border-radius: 6px;display: flex;align-items: center;flex-direction: column;padding: 60px 0 20px 0;}.down-btn {max-width: 300px;width: 80%;background-color: #E6E6FA;padding: 10px 0 10px 0;border-radius: 6px;font-size: 16px;margin-top: 20px;}</style> </head> <body><div class = "centent"><h2>友工程app下載</h2><div class="down-btn" onclick="downClick(1);">Android 開(kāi)發(fā)包</div><div class="down-btn" onclick="downClick(2);">Android 測(cè)試包</div><div class="down-btn" onclick="downClick(3);">Android 正式包</div><br/><div class="down-btn" onclick="downClick(4);">iOS 測(cè)試包</div><div class="down-btn" onclick="downClick(6);">iOS 正式包</div><br/><div class="down-btn" onclick="downClick(5);">數(shù)字體驗(yàn)館Android包</div></div><script>window.onerror = function(msg,url,line,col,error){//alert("下載包不存在")}function downClick(type){let ua = navigator.userAgent.toLowerCase();let isWeixin = ua.indexOf('micromessenger') !== -1;if (isWeixin) {alert("請(qǐng)?jiān)跒g覽器打開(kāi)下載");return;}switch(type){case 1:top.location.href="https://ygccs.yonyoucloud.com/files/app-debug.apk";break;case 2:top.location.href="https://ygccs.yonyoucloud.com/files/app-preRelease.apk";break;case 3:top.location.href="https://ygccs.yonyoucloud.com/files/app-release.apk";break;case 4:top.location.href="itms-services://?action=download-manifest&url=https://ygccs.yonyoucloud.com/ios-test.plist";break;case 6:top.location.href="itms-services://?action=download-manifest&url=https://ygccs.yonyoucloud.com/ios.plist";break;case 5:top.location.href="https://ygccs.yonyoucloud.com/files/app-exhibit.apk";break;}}</script> </body> </html>9、將下載頁(yè)面、文件下載路徑配置到nginx的配置文件中
10、啟動(dòng)nginx
總結(jié)
以上是生活随笔為你收集整理的React Native Android端多环境自动打包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 植物大战僵尸2app攻略
- 下一篇: commonjs是什么_JavaScri