uapp為啥誕生
社群大多是 laravel 後端,但應該也有不少做全棧的,但願 uapp 能幫助到你。
uniapp是一個基於Vue同構技術的多平臺前端框架,對公司或創業者來說,只需要有一個會Vue的前端,就可以同時寫App(android/ios),H5,快應用,微信/QQ/抖音/飛書/百度/支付寶等各家小程式,維護一套程式碼可以釋出10多個平臺。有以下幾大好處:
- 釋出多個平臺獲取更多流量
- 一旦熟悉,開發效率極高
- 至少省 1 / 3 研發成本,商業試錯成本更低
- 即使當前不需要釋出多平臺,同樣花時間寫程式碼,為什麼不選擇複用價值更高的方法呢
但 uniapp 官方釋出的離線包裡只有 DEMO,對於一個新的專案,需要手動更改的配置較多,且除錯基座和正式發版共用一個配置,維護起來也很不方便。uapp 就是我們在實踐了一些產品後,積累的一些經驗,分離了除錯和釋出的配置,也方便通過命令加入自動化整合。
為什麼不使用線上打包呢?
uniapp 線上打包,一般無法滿足靈活的需求,比如:
- 沒法在團隊裡實施自動化整合(自動構建、單元測試、釋出)。
- 有些包是冗餘的,線上打包不能控制具體打入哪些包。
- 線上打包有大小限制,超過需要單獨付費,因為特別佔用官方伺服器資源。
- 寫uniapp外掛擴充套件時,必須有離線工程才方便除錯,且可以自己控制是否釋出外掛。我們也是在寫 ffmpeg 擴充套件時,遇到些許不便。
先安裝 uappsdk
1、 安裝 uapp 命令
npm install -g uapp
# 初始化或更新 uappsdk
uapp sdk init
2、下載 uniapp 離線打包的 SDK
注意和.uappsdk區分開,此處的uniapp離線包的SDK是指dcloud 官方釋出的
android 離線打包SDK:
nativesupport.dcloud.net.cn/AppDoc...
ios 離線打包SDK:
nativesupport.dcloud.net.cn/AppDoc...
解壓其中的SDK目錄,放入 .uappsdk 資料夾裡,最終 .uappsdk 資料夾結構如下:
> $HOME/.uappsdk/
.
├── android
│ ├── SDK # -> 這裡是Android的SDK
│ └── libs
├── ios
│ ├── SDK # -> 這裡是iOS的SDK
└── templates
└── manifest.json
SDK 相關檔案都放在當前使用者的 $HOME/.uappsdk 目錄下。
需要引入哪些模板,請務必仔細閱讀官方的 SDK 模組依賴說明,包含多了會影響APP稽核,少了會影響功能使用。
.uappsdk 目錄下預設包含的第三方依賴包,僅含有微信授權登入,蘋果授權登入,基礎功能等。不包含廣告、通知等相關依賴,因為廣告和通知類的sdk,在稽核時需要特別提交資料跟蹤說明,比較麻煩。
如不是必須,最好不包含。如果確實需要,可以自行手動新增,參照如下模組依賴說明。
android 模組依賴說明:
針對 android,僅需提取必用的依賴包放入 $HOME/.uappsdk/android/libs 裡。
nativesupport.dcloud.net.cn/AppDoc...
ios 模組依賴說明:
nativesupport.dcloud.net.cn/AppDoc...
下載離線打包工程模板
1. 下載 android 離線工程模板
git clone https://github.com/uappkit/uapp-android.git
2. 下載 ios 離線工程模板
git clone https://github.com/uappkit/uapp-ios.git
3. 工程下常見命令
# 讀取 manifest 中的配置,並更新基本資訊
uapp manifest {uni-app 工程目錄}/src/manifest.json
uapp manifest
# 更新 HBuilderX 本地打包資源
# 如果通過 HBuilderX 重新編譯,或者通過 uniapp-cli 命令重新編譯的資源,可以通過 prepare 命令更新到離線 APP 工程中,用於 APP 重新打包釋出。
uapp prepare
# 釋出離線打包基座到 HBuilderX 下
uapp publish debug
manifest.json 相關配置
注意:
uapp.* 引數
是 uapp 根據需要擴充套件出來的, 非 dcloud 官方標準.
原工程裡的 manifest.json
內的引數,大多是給 hbuiderx 雲打包用的。編譯後生成的終極釋出包,裡面的 manifest.json 已被去除了無關資料,所以不用擔心引數暴露問題。
{
"name": "uapp",
"appid": "__UNI__ECA8F4D",
"versionName": "1.0.1",
"versionCode": "1000000",
"uapp": {
/* name, package, versionName, versionCode 如果需要平臺差異化定義, 可以加字首 android.xxx, ios.xxx */
/* 例如 android.name, android.package, ios.package, ios.versionCode ... */
"name": "μAppKit",
"package": "com.code0xff.uapp",
"android.appkey": "b4ab7d1c668cbb3b257aeeabd75c29da",
"ios.appkey": "aa215ff1522abe39cb7ccec5943eeb92",
"info": "npm info uapp"
},
"app-plus": {
"distribute": {
"sdkConfigs": {
"oauth": {
"weixin": {
"appid": "wx95039516c9f72e50",
"appsecret": "123456",
"UniversalLinks": "https://uapp.code0xff.com/"
}
}
}
}
}
}
如何申請 dcloud_appkey
nativesupport.dcloud.net.cn/AppDoc...
如何申請微信 appid
登入微信開發者平臺建立APP,稽核過後,獲取 weixin.appid, weixin.appsecret
等引數,用於微信登入,分享,支付等相關引數
跨端開發注意事項
uapp 使用幫助
技術問題加群
遇到技術問題,可加微信入群交流
微信:yinqisen
本作品採用《CC 協議》,轉載必須註明作者和本文連結