前言
最近個(gè)人開(kāi)發(fā)的小程序要上線了格了,這里寫(xiě)篇匯總了下從開(kāi)發(fā)到上線的流程和一些注意點(diǎn),筆者前后臺(tái)一共花了大概4徽鼎,5天時(shí)間完成開(kāi)發(fā)盛末,但是最后上線時(shí)間卻delay了一周,文中會(huì)介紹為啥delay了那么長(zhǎng)時(shí)間纬傲,也給其它朋友一些經(jīng)驗(yàn)满败。
注冊(cè)開(kāi)發(fā)者帳號(hào)
要從事微信小程序開(kāi)發(fā),第一步當(dāng)然是注冊(cè)為小程序開(kāi)發(fā)者叹括,還沒(méi)注冊(cè)的同學(xué)請(qǐng)通過(guò)微信公眾平臺(tái)進(jìn)行注冊(cè)算墨,具體注冊(cè)和實(shí)名流程這里就不詳細(xì)介紹了,非常簡(jiǎn)單汁雷,照著流程做就可以了净嘀。
注冊(cè)好了需要新建一個(gè)小程序,跟著guide做就好了侠讯,會(huì)讓你設(shè)置小程序名稱(chēng)挖藏、圖標(biāo)、分類(lèi)厢漩、描述等等信息膜眠,在新建完成后可以看到會(huì)生成appid和app secrect,appid在后續(xù)登錄ide和在開(kāi)發(fā)的工程中都會(huì)用到,appsecrect暫時(shí)用不到宵膨。
運(yùn)行
這里需要提醒下架谎,對(duì)于小程序的一些基本信息修改的次數(shù)是有限的,例如:
1)小程序名稱(chēng)在發(fā)布前只能修改兩次辟躏,每次修改都需要等待1-2個(gè)工作日de審核谷扣,小程序的名稱(chēng)是不能和其他人重復(fù),如果想要已經(jīng)被搶注的名稱(chēng)捎琐,那就只能和之前搶注的人協(xié)商了会涎;
2)小程序的頭像每個(gè)月可以修改5次,小程序頭像的修改次數(shù)還是比較多的瑞凑,而且大家一般也不會(huì)沒(méi)事修改頭像末秃;
3)服務(wù)類(lèi)別、介紹等也是每個(gè)月限制了修改次數(shù)拨黔,每個(gè)月可以修改5次蛔溃。
注:這里介紹的都是個(gè)人開(kāi)發(fā)者的一些流程,對(duì)于企業(yè)開(kāi)發(fā)者流程會(huì)復(fù)雜一些篱蝇,企業(yè)的實(shí)名過(guò)程需要上傳證照等信息。
下載IDE開(kāi)發(fā)
騰訊官方提供了微信小程序徽曲、小游戲開(kāi)發(fā)的IDE工具零截,這個(gè)工具整體使用起來(lái)還算比較方便,基本功能也是比較全的秃臣,從開(kāi)發(fā)到調(diào)試到測(cè)試基本都涵蓋了涧衙,不過(guò)對(duì)于有經(jīng)驗(yàn)的前端開(kāi)發(fā)者還是擅長(zhǎng)使用webstorm或者sublime加插件的方式開(kāi)發(fā)。微信IDE可以比較方便的和騰訊云集成奥此,不過(guò)因?yàn)槲业姆?wù)器不是騰訊云所以沒(méi)有嘗試相關(guān)功能弧哎。
申請(qǐng)域名、配置https
以前開(kāi)發(fā)
因?yàn)樾〕绦蛞蟊仨毷窃贗CP備案過(guò)的域名稚虎,這就要求大家必須到ICP進(jìn)行備案撤嫩,常見(jiàn)的有以下幾種情況:
1)如果是國(guó)內(nèi)幾大空間服務(wù)商的用戶(hù)會(huì)比較方便,通管局都授權(quán)了這些網(wǎng)站可以不用面簽并且不用專(zhuān)用幕布拍照就可以在線申請(qǐng)備案蠢终,一般只要用當(dāng)?shù)氐膫浒竌pp手持身份證拍照并上傳相關(guān)證件信息就可以了序攘,一般云服務(wù)商會(huì)先進(jìn)行簡(jiǎn)單的初審并提出一些修改意見(jiàn),一般來(lái)說(shuō)這個(gè)過(guò)程1天就能搞定寻拂。
2)如果服務(wù)器是自己的或者買(mǎi)的境外的云資源程奠,那就會(huì)麻煩點(diǎn),如果域名是通管局認(rèn)可的例如.cn.com.gov.me.club之類(lèi)的一般去通管局網(wǎng)站按照流程申請(qǐng)就可以了祭钉,但是如果是一些國(guó)外域名公司申請(qǐng)的一些比較詭異的域名可能無(wú)法申請(qǐng)通過(guò)瞄沙,這樣的話(huà)只能換域名了。自行申請(qǐng)的話(huà)流程會(huì)比較復(fù)雜一些,建議按照官網(wǎng)流程來(lái)實(shí)施距境。
3)因?yàn)楦魇〉耐ü芫侄际仟?dú)立運(yùn)作泛粹,各省也是各家服務(wù)層次不齊,所以建議還是通過(guò)國(guó)內(nèi)幾大云服務(wù)商進(jìn)行代理備案會(huì)方便很多肮疗,但是各家代理備案都是要買(mǎi)入它們的云資源的晶姊,不然無(wú)法進(jìn)行代理備案。
在備案這個(gè)環(huán)節(jié)我就折騰了比較長(zhǎng)的時(shí)間伪货,筆者原先的域名是在境外域名服務(wù)商那申請(qǐng)的们衙,服務(wù)器也是境外的,所以以前做的一些blog或者網(wǎng)站域名都沒(méi)經(jīng)過(guò)備案碱呼,這次小程序必須要ICP備案蒙挑,以為只是上傳一些證件信息就可以了,還是too young too simple 誰(shuí)知道直接找通管局申請(qǐng)是這么麻煩愚臀,首先在上海的通管局官網(wǎng)上愣是沒(méi)找到申請(qǐng)入口忆蚀,其它省的通管局不清楚,后來(lái)網(wǎng)上查了下流程比較麻煩姑裂,還要去當(dāng)?shù)赝ü芫脂F(xiàn)場(chǎng)拍照什么的馋袜,算了還是為了小程序找個(gè)國(guó)內(nèi)的云資源吧,找了臺(tái)阿里云的資源舶斧,登錄阿里云的代理備案但是發(fā)現(xiàn)我在國(guó)外申請(qǐng)的域名沒(méi)辦法國(guó)內(nèi)實(shí)名欣鳖。。茴厉。泽台,沒(méi)辦法那就只能申請(qǐng)個(gè)國(guó)內(nèi)便宜的域名去申請(qǐng)備案了,在阿里云買(mǎi)了個(gè)很便宜的.club域名然后就照著流程走矾缓,很快3天就全部搞完怀酷。
我的慘痛經(jīng)驗(yàn)告訴大家,如果要快速上架小程序嗜闻,最好是國(guó)內(nèi)申請(qǐng)的域名+國(guó)內(nèi)的云資源蜕依。
申請(qǐng)好域名后就簡(jiǎn)單多了,只要服務(wù)器提供的服務(wù)是https就可以設(shè)置到小程序的訪問(wèn)url白名單里泞辐。一般來(lái)說(shuō)公司都會(huì)使用verisign或者其它一些大的CA證書(shū)服務(wù)商提供的域名笔横,但是這里因?yàn)槭莻€(gè)人小程序?yàn)榱顺杀究紤],那幾只能使用免費(fèi)的了咐吼,簡(jiǎn)單通過(guò)openssl的自定義ssl證書(shū)微信是不認(rèn)可的沒(méi)法加入白名單吹缔,這里推薦大家使用https全球公益組織提供的免費(fèi)的SSL證書(shū)-let's encrypt https://github.com/letsencrypt/letsencrypt, let's encrypt最大的問(wèn)題就是每次申請(qǐng)的效期只有3個(gè)月,到期后需要自己續(xù)期锯茄,網(wǎng)上很多人寫(xiě)了自動(dòng)續(xù)期腳本可以參考厢塘,其實(shí)也比較簡(jiǎn)單茶没,因?yàn)檫€沒(méi)到3個(gè)月所以懶癌發(fā)作還沒(méi)來(lái)得及寫(xiě)自動(dòng)續(xù)期腳本,這里先列下手工生成SSL證書(shū)的步驟晚碾。
//首先下載letsencrypt
git clone https://github.com/letsencrypt/letsencrypt
//下載下來(lái)后cd到letsencrypt的根目錄執(zhí)行安裝
./letsencrypt-auto
安裝成功后會(huì)提示
完畢抓半!
Creating virtual environment...
Installing Python packages...
Installation succeeded.
下面就開(kāi)始生產(chǎn)證書(shū)
./letsencrypt-auto certonly --standalone --email monkey01@XXX.com -d www.monkey01.club
這里有幾個(gè)參數(shù)各位要自行修改,一個(gè)是email地址格嘁,一個(gè)是-d參數(shù)后的證書(shū)對(duì)應(yīng)的域名笛求,域名一定不要弄錯(cuò)了,弄錯(cuò)了后面小程序發(fā)起請(qǐng)求的時(shí)候會(huì)校驗(yàn)不過(guò)糕簿,不要問(wèn)我為什么知道探入。
生成成功后會(huì)有一大段提示,大概的意思就是祝賀你生成成功了懂诗,默認(rèn)會(huì)把4把秘鑰放到/etc/letsencrypt/live/www.monkey01.club 這個(gè)目錄下蜂嗽,會(huì)為每個(gè)域名生成一個(gè)目錄。因?yàn)閘etsencrypt生成的證書(shū)是pem格式的殃恒,目前很多web服務(wù)器需要的都是jks或者p12植旧,所以我們還需要進(jìn)行一個(gè)格式轉(zhuǎn)換,這里個(gè)是轉(zhuǎn)換可以直接使用openssl离唐,我的服務(wù)端是springboot寫(xiě)的服務(wù)器用的是tomcat所以直接生成p12就可以了病附,下面我先說(shuō)下pem轉(zhuǎn)p12的命令:
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out mk_letsencrypt.p12 -name tomcat_letsencrypt
這里也有幾個(gè)參數(shù)要改下,fullchain.pem和privkey.pem是之前用letsencrypt侯繁。
證書(shū)生成之后只要配置到服務(wù)端應(yīng)用服務(wù)器中就可以對(duì)外提供https服務(wù)訪問(wèn)了胖喳。
發(fā)布體驗(yàn)版
前端開(kāi)發(fā)完成,服務(wù)端開(kāi)發(fā)部署完并配置https證書(shū)后贮竟,就可以進(jìn)行體驗(yàn)版發(fā)布了,這里的體驗(yàn)版發(fā)布階段有點(diǎn)類(lèi)似于我們?nèi)粘5幕叶劝l(fā)布前的內(nèi)部灰度測(cè)試较剃,可以指定白名單用戶(hù)進(jìn)行生產(chǎn)測(cè)試體驗(yàn)咕别。發(fā)布的動(dòng)作其實(shí)很簡(jiǎn)單,就是在微信的開(kāi)發(fā)IDE中上面工具欄上點(diǎn)擊上傳按鈕即可發(fā)布到微信服務(wù)器写穴,提交后就可以在mp管理端查看到新的開(kāi)發(fā)版本惰拱,可以發(fā)布二維碼白名單用戶(hù)掃碼后進(jìn)行體驗(yàn)。
上線審核
體驗(yàn)版本驗(yàn)證沒(méi)問(wèn)題后就可以發(fā)布啊送,點(diǎn)擊開(kāi)發(fā)版本右邊的提交審核按鈕就可以發(fā)布到騰訊進(jìn)行小程序?qū)徍顺ザ蹋谝淮伟l(fā)布審核時(shí)間會(huì)比較長(zhǎng),大約3-5個(gè)工作日左右馋没,日后的升級(jí)版本審核就很快了昔逗,基本上可以做到半天就審核通過(guò)。
上線
審核通過(guò)后就會(huì)出現(xiàn)在審核版本的欄位篷朵,點(diǎn)擊右邊的發(fā)布即可勾怒,對(duì)于即將發(fā)布的小程序也可以選擇是按比例灰度發(fā)布或者是全量發(fā)布婆排,對(duì)于用戶(hù)量不大的小程序直接全量發(fā)布就可以了,對(duì)于用戶(hù)量比較大的小程序建議還是先按比例灰度發(fā)布笔链,發(fā)布后監(jiān)控一段后臺(tái)服務(wù)情況段只,如果發(fā)現(xiàn)問(wèn)題可以緊急回退版本,小程序mp管理端也提供了前端版本回退的功能鉴扫。
總體來(lái)說(shuō)小程序在版本管理赞枕、發(fā)布回退的體驗(yàn)方面做得還是很好的,能夠滿(mǎn)足基本需求坪创,不需要額外的開(kāi)發(fā)炕婶。
總結(jié)
本文介紹了小程序從開(kāi)發(fā)到上線的一個(gè)全流程,希望對(duì)大家有一定的幫助误堡。