前言
最近個人開發(fā)的小程序要上線了,這里寫篇匯總了下從開發(fā)到上線的流程和一些注意點,筆者前后臺一共花了大概4,5天時間完成開發(fā),但是最后上線時間卻delay了一周,文中會介紹為啥delay了那么長時間,也給其它朋友一些經(jīng)驗。
注冊開發(fā)者帳號
要從事微信小程序開發(fā),第一步當然是注冊為小程序開發(fā)者,還沒注冊的同學請通過微信公眾平臺進行注冊,具體注冊和實名流程這里就不詳細介紹了,非常簡單,照著流程做就可以了。
注冊好了需要新建一個小程序,跟著guide做就好了,會讓你設置小程序名稱、圖標、分類、描述等等信息,在新建完成后可以看到會生成appid和app secrect,appid在后續(xù)登錄ide和在開發(fā)的工程中都會用到,appsecrect暫時用不到。
運行

這里需要提醒下,對于小程序的一些基本信息修改的次數(shù)是有限的,例如:
1)小程序名稱在發(fā)布前只能修改兩次,每次修改都需要等待1-2個工作日de審核,小程序的名稱是不能和其他人重復,如果想要已經(jīng)被搶注的名稱,那就只能和之前搶注的人協(xié)商了;
2)小程序的頭像每個月可以修改5次,小程序頭像的修改次數(shù)還是比較多的,而且大家一般也不會沒事修改頭像;
3)服務類別、介紹等也是每個月限制了修改次數(shù),每個月可以修改5次。
注:這里介紹的都是個人開發(fā)者的一些流程,對于企業(yè)開發(fā)者流程會復雜一些,企業(yè)的實名過程需要上傳證照等信息。
下載IDE開發(fā)
騰訊官方提供了微信小程序、小游戲開發(fā)的IDE工具,這個工具整體使用起來還算比較方便,基本功能也是比較全的,從開發(fā)到調(diào)試到測試基本都涵蓋了,不過對于有經(jīng)驗的前端開發(fā)者還是擅長使用webstorm或者sublime加插件的方式開發(fā)。微信IDE可以比較方便的和騰訊云集成,不過因為我的服務器不是騰訊云所以沒有嘗試相關功能。

申請域名、配置https
以前開發(fā)

因為小程序要求必須是在ICP備案過的域名,這就要求大家必須到ICP進行備案,常見的有以下幾種情況:
1)如果是國內(nèi)幾大空間服務商的用戶會比較方便,通管局都授權(quán)了這些網(wǎng)站可以不用面簽并且不用專用幕布拍照就可以在線申請備案,一般只要用當?shù)氐膫浒竌pp手持身份證拍照并上傳相關證件信息就可以了,一般云服務商會先進行簡單的初審并提出一些修改意見,一般來說這個過程1天就能搞定。

2)如果服務器是自己的或者買的境外的云資源,那就會麻煩點,如果域名是通管局認可的例如.cn.com.gov.me.club之類的一般去通管局網(wǎng)站按照流程申請就可以了,但是如果是一些國外域名公司申請的一些比較詭異的域名可能無法申請通過,這樣的話只能換域名了。自行申請的話流程會比較復雜一些,建議按照官網(wǎng)流程來實施。
3)因為各省的通管局都是獨立運作,各省也是各家服務層次不齊,所以建議還是通過國內(nèi)幾大云服務商進行代理備案會方便很多,但是各家代理備案都是要買入它們的云資源的,不然無法進行代理備案。
在備案這個環(huán)節(jié)我就折騰了比較長的時間,筆者原先的域名是在境外域名服務商那申請的,服務器也是境外的,所以以前做的一些blog或者網(wǎng)站域名都沒經(jīng)過備案,這次小程序必須要ICP備案,以為只是上傳一些證件信息就可以了,還是too young too simple 誰知道直接找通管局申請是這么麻煩,首先在上海的通管局官網(wǎng)上愣是沒找到申請入口,其它省的通管局不清楚,后來網(wǎng)上查了下流程比較麻煩,還要去當?shù)赝ü芫脂F(xiàn)場拍照什么的,算了還是為了小程序找個國內(nèi)的云資源吧,找了臺阿里云的資源,登錄阿里云的代理備案但是發(fā)現(xiàn)我在國外申請的域名沒辦法國內(nèi)實名。。。,沒辦法那就只能申請個國內(nèi)便宜的域名去申請備案了,在阿里云買了個很便宜的.club域名然后就照著流程走,很快3天就全部搞完。
我的慘痛經(jīng)驗告訴大家,如果要快速上架小程序,最好是國內(nèi)申請的域名+國內(nèi)的云資源。
申請好域名后就簡單多了,只要服務器提供的服務是https就可以設置到小程序的訪問url白名單里。一般來說公司都會使用verisign或者其它一些大的CA證書服務商提供的域名,但是這里因為是個人小程序為了成本考慮,那幾只能使用免費的了,簡單通過openssl的自定義ssl證書微信是不認可的沒法加入白名單,這里推薦大家使用https全球公益組織提供的免費的SSL證書-let's encrypt https://github.com/letsencrypt/letsencrypt, let's encrypt最大的問題就是每次申請的效期只有3個月,到期后需要自己續(xù)期,網(wǎng)上很多人寫了自動續(xù)期腳本可以參考,其實也比較簡單,因為還沒到3個月所以懶癌發(fā)作還沒來得及寫自動續(xù)期腳本,這里先列下手工生成SSL證書的步驟。
//首先下載letsencrypt
git clone https://github.com/letsencrypt/letsencrypt
//下載下來后cd到letsencrypt的根目錄執(zhí)行安裝
./letsencrypt-auto
安裝成功后會提示
完畢!
Creating virtual environment...
Installing Python packages...
Installation succeeded.
下面就開始生產(chǎn)證書
./letsencrypt-auto certonly --standalone --email monkey01@XXX.com -d www.monkey01.club
這里有幾個參數(shù)各位要自行修改,一個是email地址,一個是-d參數(shù)后的證書對應的域名,域名一定不要弄錯了,弄錯了后面小程序發(fā)起請求的時候會校驗不過,不要問我為什么知道。
生成成功后會有一大段提示,大概的意思就是祝賀你生成成功了,默認會把4把秘鑰放到/etc/letsencrypt/live/www.monkey01.club 這個目錄下,會為每個域名生成一個目錄。因為letsencrypt生成的證書是pem格式的,目前很多web服務器需要的都是jks或者p12,所以我們還需要進行一個格式轉(zhuǎn)換,這里個是轉(zhuǎn)換可以直接使用openssl,我的服務端是springboot寫的服務器用的是tomcat所以直接生成p12就可以了,下面我先說下pem轉(zhuǎn)p12的命令:
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out mk_letsencrypt.p12 -name tomcat_letsencrypt
這里也有幾個參數(shù)要改下,fullchain.pem和privkey.pem是之前用letsencrypt。
證書生成之后只要配置到服務端應用服務器中就可以對外提供https服務訪問了。
發(fā)布體驗版
前端開發(fā)完成,服務端開發(fā)部署完并配置https證書后,就可以進行體驗版發(fā)布了,這里的體驗版發(fā)布階段有點類似于我們?nèi)粘5幕叶劝l(fā)布前的內(nèi)部灰度測試,可以指定白名單用戶進行生產(chǎn)測試體驗。發(fā)布的動作其實很簡單,就是在微信的開發(fā)IDE中上面工具欄上點擊上傳按鈕即可發(fā)布到微信服務器,提交后就可以在mp管理端查看到新的開發(fā)版本,可以發(fā)布二維碼白名單用戶掃碼后進行體驗。

上線審核
體驗版本驗證沒問題后就可以發(fā)布,點擊開發(fā)版本右邊的提交審核按鈕就可以發(fā)布到騰訊進行小程序?qū)徍?,第一次發(fā)布審核時間會比較長,大約3-5個工作日左右,日后的升級版本審核就很快了,基本上可以做到半天就審核通過。

上線
審核通過后就會出現(xiàn)在審核版本的欄位,點擊右邊的發(fā)布即可,對于即將發(fā)布的小程序也可以選擇是按比例灰度發(fā)布或者是全量發(fā)布,對于用戶量不大的小程序直接全量發(fā)布就可以了,對于用戶量比較大的小程序建議還是先按比例灰度發(fā)布,發(fā)布后監(jiān)控一段后臺服務情況,如果發(fā)現(xiàn)問題可以緊急回退版本,小程序mp管理端也提供了前端版本回退的功能。
總體來說小程序在版本管理、發(fā)布回退的體驗方面做得還是很好的,能夠滿足基本需求,不需要額外的開發(fā)。

總結(jié)
本文介紹了小程序從開發(fā)到上線的一個全流程,希望對大家有一定的幫助。