欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

華為云DevCloud與CodeHub實(shí)戰(zhàn):移動(dòng)端Git配置與環(huán)境對(duì)齊指南

華為云DevCloud與CodeHub實(shí)戰(zhàn):移動(dòng)端Git配置與環(huán)境對(duì)齊指南 1. 初識(shí)DevCloud與CodeHub為什么移動(dòng)端團(tuán)隊(duì)要重構(gòu)代碼托管鏈路我們團(tuán)隊(duì)之前一直用自建Git服務(wù)器托管代碼服務(wù)器放在某辦公樓的機(jī)房里平時(shí)用著還行一旦遇到網(wǎng)絡(luò)抖動(dòng)或者機(jī)房斷電整個(gè)團(tuán)隊(duì)的提交和拉取就全卡住了。最難受的是iOS和Android兩個(gè)端的同學(xué)要用不同的工具鏈代碼托管和構(gòu)建環(huán)境割裂得很厲害每次發(fā)版都要人工協(xié)調(diào)半天。后來我們立項(xiàng)做一款新的移動(dòng)端管理App決定把代碼托管和云端構(gòu)建整體遷到華為云DevCloud上核心的代碼倉(cāng)庫放到CodeHub。這件事看起來只是把Git倉(cāng)庫換個(gè)地方放實(shí)際操作下來牽扯到的東西比我預(yù)想的多得多SSH密鑰怎么配、iOS和Android兩端如何共用一套托管策略、本地環(huán)境怎么和云端構(gòu)建機(jī)對(duì)齊、CI/CD流水線怎么串聯(lián)起來。這篇就是整個(gè)系列的第一篇專門講Git連接CodeHub以及iOS、Android的本地和云端開發(fā)環(huán)境怎么一步步搭起來。如果你正準(zhǔn)備把移動(dòng)端項(xiàng)目遷到華為云或者剛開始用DevCloud和CodeHub這篇應(yīng)該能幫你省不少時(shí)間。我個(gè)人的體會(huì)是遷移最怕的不是技術(shù)難度而是兩邊環(huán)境不一致。本地是本地云端是云端代碼托管又是中間那一環(huán)任何一環(huán)版本對(duì)不上后面跑流水線的時(shí)候就會(huì)冒出一堆莫名其妙的報(bào)錯(cuò)。所以這篇文章會(huì)從代碼托管這條鏈路切入先把Git和CodeHub的連接徹底講透再分別展開iOS和Android這邊的環(huán)境配置最后把云端構(gòu)建的環(huán)境對(duì)齊和常見坑也一并說清楚。1.1 華為云DevCloud到底是什么和CodeHub是什么關(guān)系先把這個(gè)概念理清楚。華為云DevCloud現(xiàn)在控制臺(tái)里也經(jīng)??吹紺odeArts品牌指的是同一套DevOps服務(wù)是一個(gè)一站式研發(fā)云平臺(tái)涵蓋項(xiàng)目管理、代碼托管、編譯構(gòu)建、部署發(fā)布、流水線等能力。而CodeHub是其中負(fù)責(zé)代碼托管的模塊本質(zhì)上就是一個(gè)基于Git的云端倉(cāng)庫服務(wù)和GitHub、GitLab屬于同類產(chǎn)品只是它深度集成在華為云的整體生態(tài)里。對(duì)于移動(dòng)端團(tuán)隊(duì)來說CodeHub解決的核心痛點(diǎn)是倉(cāng)庫不再依賴內(nèi)網(wǎng)服務(wù)器團(tuán)隊(duì)成員在任意網(wǎng)絡(luò)環(huán)境都能拉取和推送代碼倉(cāng)庫權(quán)限可以和DevCloud的項(xiàng)目成員體系打通同時(shí)代碼倉(cāng)庫和構(gòu)建服務(wù)天然聯(lián)動(dòng)后續(xù)做CI/CD的時(shí)候不需要額外寫一堆腳本去對(duì)接。這里有一個(gè)很重要的認(rèn)知CodeHub不是簡(jiǎn)單的云盤版Git倉(cāng)庫它和DevCloud的流水線、編譯構(gòu)建任務(wù)是聯(lián)動(dòng)的。你在本地提交代碼到CodeHubCodeHub觸發(fā)Webhook云端構(gòu)建機(jī)拉取最新代碼開始編譯整個(gè)鏈條是通的。如果只是把代碼推到遠(yuǎn)程倉(cāng)庫而不用云端構(gòu)建那這套遷移的意義就打了一半折扣。1.2 為什么我覺得這一步值得單獨(dú)寫一篇很多教程上來就直接讓你執(zhí)行g(shù)it clone忽略了環(huán)境搭建的系統(tǒng)性。但移動(dòng)端開發(fā)和后端不一樣涉及的本地工具鏈很重iOS必須用macOS加XcodeAndroid需要JDK、Android Studio、SDK、Gradle一大堆。如果只講倉(cāng)庫配置不講環(huán)境對(duì)齊你本地跑得好好的代碼到了云端構(gòu)建機(jī)上大概率編譯不過。另外一個(gè)容易被忽略的問題是iOS和Android兩個(gè)平臺(tái)對(duì)Git的使用習(xí)慣有差異。iOS端通常直接在Xcode里操作GitAndroid端則習(xí)慣用Android Studio的VCS菜單或者命令行。兩端提交代碼時(shí)對(duì).gitignore的處理、對(duì)二進(jìn)制文件的管理方式也不同。既然放在同一個(gè)CodeHub倉(cāng)庫下這些差異就必須在環(huán)境搭建階段就統(tǒng)一規(guī)范好。所以我這篇的定位是先搞定代碼托管這一層再搞定兩端環(huán)境這一層兩者的交叉點(diǎn)就是本地Git配置和SSH密鑰。下面我從最基礎(chǔ)的SSH配置開始講這是連接CodeHub的第一道關(guān)卡。2. Git與CodeHub建立連接SSH密鑰生成、配置與驗(yàn)證全程記錄2.1 本地Git環(huán)境準(zhǔn)備與版本選擇無論iOS還是Android端第一步都是在本地裝好Git。macOS上我推薦用Homebrew安裝命令是brew install git安裝完檢查版本git --version這里有一個(gè)需要注意的細(xì)節(jié)macOS自帶的Git版本可能比較老而且Xcode如果更新過系統(tǒng)的Git路徑可能會(huì)被Xcode的命令行工具覆蓋導(dǎo)致版本混亂。建議用Homebrew的Git并確保which git指向/usr/local/bin/git或/opt/homebrew/bin/git不要指向/usr/bin/git。Windows端推薦直接裝Git for Windows安裝時(shí)選Use Git from the Windows Command Prompt和Checkout as-is, commit as-is這兩個(gè)選項(xiàng)前者方便在CMD和PowerShell里直接用git命令后者避免行尾符轉(zhuǎn)換引發(fā)一堆莫名奇妙的diff。Android端的同學(xué)還要裝JDK和Android Studio這個(gè)我在第四部分細(xì)說這里先保證Git本身是可用的。2.2 SSH密鑰對(duì)生成一對(duì)密鑰還是兩對(duì)密鑰連接CodeHub有兩種方式HTTPS和SSH。HTTPS每次push都要輸入用戶名密碼可以配置credential緩存但團(tuán)隊(duì)協(xié)作時(shí)容易出問題SSH則是通過公鑰認(rèn)證配置好之后push/pull都不需要再輸密碼。移動(dòng)端團(tuán)隊(duì)我強(qiáng)烈建議用SSH。生成SSH密鑰的命令ssh-keygen -t rsa -b 4096 -C your_emailexample.com -f ~/.ssh/id_rsa_devcloud這里有幾個(gè)參數(shù)說明一下-t rsa指定算法雖然現(xiàn)在也支持Ed25519但CodeHub對(duì)RSA的兼容性最穩(wěn)妥4096位長(zhǎng)度足夠安全-C是注釋建議填你在DevCloud注冊(cè)的郵箱方便后期識(shí)別-f指定文件名我習(xí)慣不以默認(rèn)的id_rsa命名而是單獨(dú)命名為id_rsa_devcloud這樣如果電腦上還有其他Git平臺(tái)比如自建GitLab或GitHub的密鑰就不會(huì)互相覆蓋生成之后~/.ssh目錄下會(huì)出現(xiàn)兩個(gè)文件id_rsa_devcloud私鑰和id_rsa_devcloud.pub公鑰。私鑰留在本地公鑰要填到CodeHub后臺(tái)。如果你同時(shí)維護(hù)多個(gè)代碼托管平臺(tái)我建議在~/.ssh/config里做區(qū)分。示例配置Host codehub HostName codehub.devcloud.huaweicloud.com User git IdentityFile ~/.ssh/id_rsa_devcloud這樣后面git clone時(shí)可以直接用gitcodehub:Group/Repo.git這種寫法Git會(huì)自動(dòng)使用對(duì)應(yīng)密鑰。沒有這個(gè)配置也不影響功能但配置了之后在多密鑰環(huán)境下會(huì)省掉很多麻煩。2.3 公鑰配置到CodeHub后臺(tái)與本地驗(yàn)證登錄華為云DevCloud控制臺(tái)進(jìn)入CodeHub服務(wù)在個(gè)人設(shè)置里找到SSH密鑰管理把id_rsa_devcloud.pub里的內(nèi)容完整復(fù)制粘貼進(jìn)去保存即可。這個(gè)公鑰和你的華為云賬號(hào)綁定同一賬號(hào)下的所有CodeHub倉(cāng)庫都能用。然后在本地驗(yàn)證連通性ssh -T gitcodehub.devcloud.huaweicloud.com第一次連接會(huì)提示確認(rèn)指紋輸入yes回車。如果返回類似于Welcome to CodeHub的歡迎信息說明密鑰配置成功。如果提示權(quán)限拒絕Permission denied按順序排查公鑰是否完整復(fù)制有沒有多復(fù)制空格或者漏掉末尾的郵箱注釋私鑰文件的權(quán)限是否過寬運(yùn)行chmod 600 ~/.ssh/id_rsa_devcloudssh-add -l查看私鑰是否已加載到ssh-agent沒有就執(zhí)行ssh-add ~/.ssh/id_rsa_devcloud這里我要特別提一個(gè)坑Windows環(huán)境下如果你用的是Git for Windows自帶的OpenSSH但同時(shí)又裝了別的SSH工具可能會(huì)遇到公鑰能配但就是連不上的問題大概率是SSH客戶端選擇沖突。解決辦法是在Git for Windows的安裝選項(xiàng)里明確設(shè)置Use OpenSSH或者在系統(tǒng)環(huán)境變量里把GIT_SSH指向正確的ssh.exe路徑。2.4 創(chuàng)建CodeHub倉(cāng)庫并完成首次push在CodeHub后臺(tái)新建倉(cāng)庫填充倉(cāng)庫名選擇可見范圍私有還是公開。國(guó)內(nèi)團(tuán)隊(duì)項(xiàng)目的代碼倉(cāng)庫保險(xiǎn)起見都選私有同時(shí)注意DevCloud里項(xiàng)目的成員權(quán)限配置——不是項(xiàng)目成員的人看不到倉(cāng)庫這一點(diǎn)和GitLab的Group權(quán)限模型類似。倉(cāng)庫創(chuàng)建后CodeHub會(huì)給出完整的命令行指引HTTPS和SSH兩種方式都有。我們按SSH的方式操作。以iOS端為例如果項(xiàng)目已經(jīng)存在本地cd your-ios-project git init git add . git commit -m Initial commit git remote add origin gitcodehub.devcloud.huaweicloud.com:GroupName/RepoName.git git push -u origin masterAndroid端的操作完全一致。這里提醒幾個(gè)細(xì)節(jié)首次git add .之前務(wù)必先把.gitignore寫好。iOS項(xiàng)目至少要忽略Pods/、DerivedData/、*.xcuserstateAndroid項(xiàng)目至少要忽略build/、local.properties、.idea/。這些目錄一旦被提交進(jìn)去后面再想清理就得用git rm -r --cached麻煩不說還容易誤刪分支命名建議統(tǒng)一用master或mainDevCloud的倉(cāng)庫默認(rèn)分支可以在后臺(tái)改。后續(xù)如果走Git Flow再按需建develop、release分支首次push的倉(cāng)庫建議不要太大超過幾百M(fèi)B時(shí)用git gc壓縮一下對(duì)象否則網(wǎng)絡(luò)不穩(wěn)定時(shí)容易push失敗3. iOS本地與云端開發(fā)環(huán)境Xcode、模擬器與構(gòu)建機(jī)的配合3.1 Xcode版本選擇與命令行工具iOS開發(fā)繞不開Xcode。官方渠道是App Store安裝等Xcode下載完再裝Command Line Toolsxcode-select --install裝完后把命令行工具路徑指向Xcode自帶的工具鏈sudo xcode-select -s /Applications/Xcode.app/Contents/Developer然后驗(yàn)證xcode-select -p這一步看似簡(jiǎn)單但我遇到過一個(gè)很頭疼的問題Xcode更新到新版本后xcodebuild命令報(bào)錯(cuò)找不到SDK。這個(gè)問題的根源是xcode-select的路徑被重置了或者多個(gè)Xcode版本并存導(dǎo)致系統(tǒng)指向了錯(cuò)誤的Developer目錄。所以每次升級(jí)Xcode后我都習(xí)慣先跑一遍xcode-select -p確認(rèn)路徑再跑xcodebuild -version確認(rèn)版本。云端構(gòu)建這部分華為云DevCloud提供macOS構(gòu)建機(jī)。這里的關(guān)鍵點(diǎn)是本地Xcode主版本和云端構(gòu)建機(jī)的Xcode版本必須一致或至少兼容。比如本地用Xcode 15云端也盡量保持在15這個(gè)大版本。如果不一致最容易出現(xiàn)的情況是本地編譯鏈接通過提交上去之后云端構(gòu)建報(bào)錯(cuò)什么SDK版本過低parameter of xxx is unavailable之類看起來像是代碼問題實(shí)際是工具鏈版本不一致導(dǎo)致的。DevCloud的構(gòu)建任務(wù)配置頁面里可以選擇構(gòu)建機(jī)類型和Xcode版本這一步一定要和本地對(duì)齊。我記過一次很典型的例子A同學(xué)本地Xcode 16提交的代碼云端的構(gòu)建機(jī)還停留在Xcode 14結(jié)果一跑流水線就報(bào)iOS 17 SDK required。當(dāng)時(shí)排查了半小時(shí)最后發(fā)現(xiàn)不是代碼問題純粹是版本錯(cuò)位。3.2 本地模擬器與真機(jī)調(diào)試的環(huán)境細(xì)節(jié)模擬器本身不算復(fù)雜但涉及證書簽名的環(huán)節(jié)容易卡人。模擬器構(gòu)建不需要證書直接CommandR就能跑真機(jī)調(diào)試需要Apple Development證書和描述文件。這個(gè)證書體系對(duì)新手來說是第一道坎。實(shí)操層面在Xcode的Signing Capabilities面板里勾選Automatically manage signingXcode會(huì)自動(dòng)幫你生成開發(fā)證書和描述文件。但如果你是用CodeHub拉下來的倉(cāng)庫且項(xiàng)目里的Bundle Identifier和當(dāng)前開發(fā)者賬號(hào)不匹配會(huì)自動(dòng)簽名會(huì)失敗。我一般建議確認(rèn)團(tuán)隊(duì)里每個(gè)開發(fā)者在DevCloud項(xiàng)目的成員列表里并且有對(duì)應(yīng)的Apple開發(fā)者賬號(hào)權(quán)限項(xiàng)目里如果涉及推送、App Group等能力在Apple開發(fā)者后臺(tái)提前配好不要提交個(gè)人證書和描述文件到Git倉(cāng)庫用Xcode的自動(dòng)管理機(jī)制代替云端iOS構(gòu)建時(shí)證書的處理方式不同需要把證書和描述文件上傳到DevCloud的證書管理里構(gòu)建時(shí)通過配置關(guān)聯(lián)。這個(gè)我放到第五節(jié)講流水線時(shí)一起說。3.3 使用Xcode連接CodeHub倉(cāng)庫的操作路徑Xcode內(nèi)置了Git客戶端在項(xiàng)目初始化的界面上Xcode 15及以上的版本在創(chuàng)建項(xiàng)目時(shí)可以選擇源碼控制。如果是已有的項(xiàng)目要通過Xcode連接CodeHub可以在Xcode的Source Control菜單里添加遠(yuǎn)程倉(cāng)庫填入CodeHub的SSH地址。這里有個(gè)Xcode使用上的細(xì)節(jié)Xcode的Git界面在查看Diff、提交、推送時(shí)還算好用但遇到?jīng)_突解決時(shí)我還是建議切換到命令行或第三方工具。Xcode的沖突解決界面做得比較簡(jiǎn)陋多個(gè)紛爭(zhēng)并發(fā)時(shí)容易點(diǎn)錯(cuò)導(dǎo)致誤把別人的修改覆蓋掉。比較穩(wěn)妥的工作流是在Xcode里寫代碼、看Diff、做常規(guī)提交切換分支、合并、處理沖突時(shí)用命令行工具推送到遠(yuǎn)程之前先在命令行看一遍git log和git status另外Xcode項(xiàng)目文件.xcodeproj是結(jié)構(gòu)化目錄Git合并時(shí)經(jīng)常出現(xiàn)項(xiàng)目文件沖突。團(tuán)隊(duì)協(xié)作時(shí)最好約定一個(gè)規(guī)則同一時(shí)間段內(nèi)盡量不要多人同時(shí)修改項(xiàng)目配置比如簽名配置、Target設(shè)置這些能避免大量無意義的沖突。4. Android本地與云端開發(fā)環(huán)境Android Studio、Gradle與CodeHub的三角組合4.1 JDK與Android Studio安裝的版本匹配問題Android端的本地環(huán)境搭建第一個(gè)坑就是JDK版本。Android Studio新版本如Koala及以后內(nèi)置了JBRJetBrains Runtime但Gradle構(gòu)建時(shí)仍需要Java環(huán)境。常見的匹配關(guān)系大致如下Gradle版本JDK版本要求AGP版本建議7.xJDK 11或177.x8.xJDK 178.x8.5JDK 17或218.5如果不匹配最常見的就是Unsupported class file major version這類報(bào)錯(cuò)。根本原因是Gradle運(yùn)行時(shí)的JDK和編譯字節(jié)碼的JDK不一致。Android Studio自帶JBR但命令行構(gòu)建時(shí)比如在CI環(huán)境里系統(tǒng)默認(rèn)的java可能是Oracle JDK或者OpenJDK的某個(gè)版本?,F(xiàn)在大部分企業(yè)項(xiàng)目的實(shí)踐經(jīng)驗(yàn)是在項(xiàng)目根目錄的gradle.properties或.java-version文件里固定JDK版本然后確保本地的JAVA_HOME指向正確的路徑。Android Studio安裝完成后還要通過SDK Manager下載對(duì)應(yīng)版本的Android SDK Platform、Build Tools和NDK如果你的項(xiàng)目用C/C代碼。SDK的路徑配置很重要Android Studio默認(rèn)會(huì)寫到用戶目錄下的Android/Sdk這個(gè)路徑務(wù)必記下來后面配置云端構(gòu)建時(shí)還要用到。4.2 Gradle初始化與項(xiàng)目依賴同步Android項(xiàng)目的構(gòu)建核心是Gradle。新建項(xiàng)目或從CodeHub拉取項(xiàng)目后Android Studio會(huì)自動(dòng)同步Gradle依賴。但如果是從倉(cāng)庫拉的老項(xiàng)目大概率會(huì)遇到兩個(gè)問題Gradle wrapper版本和本地已安裝的Gradle版本不匹配依賴源拉取超時(shí)第一個(gè)問題的解決辦法是修改gradle/wrapper/gradle-wrapper.properties里的distributionUrl或者直接在Android Studio里調(diào)整Gradle JDK版本。第二個(gè)問題在實(shí)際中更常見經(jīng)常是國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下默認(rèn)的Google Maven倉(cāng)庫拉取慢。常用的做法是在項(xiàng)目級(jí)build.gradle里配置阿里云鏡像倉(cāng)庫buildscript { repositories { maven { url https://maven.aliyun.com/repository/google } maven { url https://maven.aliyun.com/repository/public } maven { url https://maven.aliyun.com/repository/gradle-plugin } } }這個(gè)配置我一般建議只在本地開發(fā)環(huán)境加提交代碼時(shí)通過git update-index --skip-worktree build.gradle的方式避免誤提交或者干脆在CI環(huán)境里用環(huán)境變量控制鏡像源。原因也很簡(jiǎn)單如果所有團(tuán)隊(duì)成員都用自己的鏡像配置可能會(huì)出現(xiàn)依賴源不一致、構(gòu)建結(jié)果不一致的情況。4.3 Android Studio的VCS配置與從CodeHub拉取項(xiàng)目Android Studio內(nèi)置了Git支持首次打開項(xiàng)目后通過VCS菜單可以把本地倉(cāng)庫切換到CodeHub遠(yuǎn)程。操作路徑是VCS Git Remotes添加CodeHub的SSH地址。這里有一個(gè)重要的操作習(xí)慣Android Studio里右鍵項(xiàng)目文件時(shí)會(huì)看到很多Git相關(guān)的操作但不要用Android Studio的Git去處理項(xiàng)目文件的沖突。Android Studio在合并多個(gè)模塊的Gradle腳本時(shí)自動(dòng)合并策略有時(shí)候會(huì)把兩個(gè)不相關(guān)的改動(dòng)強(qiáng)行合并到一起產(chǎn)生邏輯層面的錯(cuò)誤。一般認(rèn)為最穩(wěn)妥的Android Git操作順序是在Android Studio里開發(fā)編碼切換到命令行執(zhí)行g(shù)it pull --rebase拉取遠(yuǎn)端最新代碼手動(dòng)處理沖突后再回Android Studio刷新項(xiàng)目本地編譯通過后再push到CodeHub這樣看似多了一步實(shí)際能避免很多Git操作造成的問題。4.4 Android云端構(gòu)建環(huán)境的認(rèn)知本質(zhì)上就是一臺(tái)預(yù)裝SDK的Linux機(jī)器DevCloud的Android構(gòu)建機(jī)本質(zhì)上是一臺(tái)預(yù)裝了JDK、Android SDK、Gradle的Linux虛擬機(jī)。你在本地能跑通的構(gòu)建理論上云端也能跑通前提是環(huán)境對(duì)齊。這里最容易出問題的點(diǎn)有三個(gè)SDK版本本地裝的是API 34云端構(gòu)建機(jī)可能只預(yù)裝了API 33編譯時(shí)就會(huì)報(bào)SDK component platforms;android-34 was not found。解決辦法是在流水線構(gòu)建任務(wù)里加上SDK安裝步驟或者通過腳本自動(dòng)下載對(duì)應(yīng)版本Gradle緩存云端構(gòu)建機(jī)每次構(gòu)建時(shí)如果不是同一臺(tái)機(jī)器Gradle的依賴緩存可能為空構(gòu)建耗時(shí)明顯拉長(zhǎng)。DevCloud構(gòu)建任務(wù)支持配置緩存策略建議開啟簽名配置release包的簽名文件.jks不要放進(jìn)倉(cāng)庫本地構(gòu)建時(shí)用local.properties引用簽名路徑云端構(gòu)建時(shí)通過DevCloud的私密參數(shù)下發(fā)我在初期的項(xiàng)目里吃過虧本地release構(gòu)建一直正常云端一跑就報(bào)Key was created with errors排查后發(fā)現(xiàn)是簽名文件被加密后云端構(gòu)建機(jī)上解密生成的臨時(shí)文件權(quán)限不對(duì)。這種問題很隱蔽寫在流水線配置里要注意文件的加密與解密順序。5. 云的流水線配置從代碼提交到自動(dòng)化構(gòu)建的核心鏈路5.1 在DevCloud里創(chuàng)建編譯構(gòu)建任務(wù)DevCloud的CI/CD核心是流水線Pipeline構(gòu)建任務(wù)可以單獨(dú)配置也可以放在流水線里串聯(lián)。以Android為例最基本的構(gòu)建任務(wù)是從CodeHub拉取代碼執(zhí)行./gradlew assembleDebug產(chǎn)出APK。流程上先在DevCloud控制臺(tái)進(jìn)入編譯構(gòu)建新建構(gòu)建任務(wù)選擇代碼源為CodeHub選中對(duì)應(yīng)的倉(cāng)庫和分支選擇構(gòu)建模板Android有現(xiàn)成的模板會(huì)幫你填充Gradle命令和SDK路徑配置構(gòu)建機(jī)類型一般選Linux Docker保存之后手動(dòng)執(zhí)行一次看構(gòu)建日志這里有一個(gè)很關(guān)鍵的點(diǎn)構(gòu)建任務(wù)拉取代碼時(shí)用的憑證。DevCloud的構(gòu)建任務(wù)默認(rèn)使用你創(chuàng)建任務(wù)時(shí)關(guān)聯(lián)的賬號(hào)權(quán)限但它拉取代碼的憑證是獨(dú)立的。如果構(gòu)建日志里出現(xiàn)Authentication failed不要慌去構(gòu)建任務(wù)的代碼源配置里檢查是否選擇了正確的CodeHub倉(cāng)庫訪問權(quán)限。另一種路徑是你在自己的流水線里寫自定義腳本用git clone命令手動(dòng)拉取代碼然后執(zhí)行構(gòu)建命令。這種方式的靈活度最高但你必須自己管理SSH密鑰或HTTPS憑證在構(gòu)建機(jī)上的存放位置稍有不慎就會(huì)把密鑰泄露到構(gòu)建日志里。我建議新手優(yōu)先用DevCloud自帶代碼源配置不要在腳本里手動(dòng)處理認(rèn)證。5.2 iOS云端構(gòu)建的證書管理與描述文件策略iOS云端構(gòu)建相對(duì)Android更繁瑣核心在于證書和描述文件不能像Android那樣簡(jiǎn)單用密鑰參數(shù)。DevCloud提供證書管理功能把.p12證書文件和.mobileprovision上傳到云端構(gòu)建時(shí)綁定到對(duì)應(yīng)任務(wù)。實(shí)操中我發(fā)現(xiàn)以下幾個(gè)環(huán)節(jié)是坑點(diǎn)高發(fā)區(qū)證書導(dǎo)出在鑰匙串訪問里導(dǎo)出.p12時(shí)注意勾選包含私鑰并設(shè)置導(dǎo)出密碼。這個(gè)密碼在云端構(gòu)建配置時(shí)要用到描述文件選擇確保描述文件包含的設(shè)備列表包含運(yùn)行真機(jī)的設(shè)備或者使用App Store類型描述文件。如果描述文件不匹配簽名階段會(huì)直接報(bào)錯(cuò)構(gòu)建命令的選擇xcodebuild的-exportArchive階段要指定ExportOptions.plist這個(gè)文件里寫的teamID、method要和證書匹配。我們?cè)趯?shí)際項(xiàng)目中維護(hù)了一個(gè)ExportOptions.plist模板放在倉(cāng)庫里避免每個(gè)人本地手寫導(dǎo)出配置構(gòu)建日志里常見的errSecInternalComponent錯(cuò)誤大多是證書導(dǎo)入到云端Keychain時(shí)權(quán)限問題。DevCloud的文檔里會(huì)提到構(gòu)建機(jī)鑰匙串權(quán)限設(shè)置建議仔細(xì)閱讀這里不再展開。5.3 流水線串聯(lián)提交觸發(fā)、靜態(tài)檢查與產(chǎn)物歸檔當(dāng)兩端構(gòu)建任務(wù)都跑通后就可以把它們串到一條流水線里。DevCloud里創(chuàng)建流水線經(jīng)過這幾個(gè)階段代碼提交時(shí)自動(dòng)觸發(fā)在倉(cāng)庫配置Webhook或者流水線的代碼源綁定CodeHub倉(cāng)庫每次push自動(dòng)啟動(dòng)流水線并行執(zhí)行iOS構(gòu)建和Android構(gòu)建在邏輯上相互獨(dú)立可以配置成并行階段節(jié)省總耗時(shí)靜態(tài)檢查可選DevCloud集成了代碼檢查服務(wù)可以加在構(gòu)建前攔截明顯的編碼規(guī)范問題產(chǎn)物歸檔把生成的.ipa和.apk文件歸檔到DevCloud的軟件發(fā)布庫或制品庫方便測(cè)試同學(xué)直接下載這里分享一下我對(duì)自動(dòng)化程度的建議不是流水線越復(fù)雜越好。早期階段兩端各一條簡(jiǎn)單的構(gòu)建任務(wù)加上手動(dòng)觸發(fā)已經(jīng)比人工打包進(jìn)步一大截。等團(tuán)隊(duì)穩(wěn)定了再逐步加自動(dòng)化觸發(fā)、代碼檢查、自動(dòng)部署到測(cè)試環(huán)境。一上來就配置全自動(dòng)鏈路維護(hù)成本會(huì)很高而且出現(xiàn)問題后排查難度大。5.4 云端構(gòu)建機(jī)與本地環(huán)境的一致性維護(hù)清單這是一個(gè)我強(qiáng)烈建議做成文檔的清單。我們?cè)趯?shí)際運(yùn)營(yíng)中總結(jié)出來的一致性維護(hù)項(xiàng)包括檢查項(xiàng)本地云端構(gòu)建機(jī)Xcode版本Xcode 15.xXcode 15.xAndroid SDK平臺(tái)API 34構(gòu)建腳本中動(dòng)態(tài)安裝JDK版本JDK 17JDK 17Gradle版本由wrapper指定使用wrapper簽名方式本地jks文件云端證書管理依賴源海外或鏡像源與本地保持一致這個(gè)清單不是一勞永逸的。每次系統(tǒng)升級(jí)、工具鏈更新都要重新對(duì)齊一輪。特別是Xcode大版本更新后SDK特性變化很大本地一升級(jí)云端立刻要跟進(jìn)否則下一次云端構(gòu)建就會(huì)失敗。6. 環(huán)境搭建避坑實(shí)錄版本、超時(shí)與權(quán)限邊界的經(jīng)典坑6.1 Xcode升級(jí)后xcodebuild路徑錯(cuò)亂的處理開頭提到過xcode-select的問題再展開講一次具體案例。有一次Xcode從15.2升到15.3之后團(tuán)隊(duì)里幾個(gè)iOS開發(fā)同時(shí)報(bào)告在終端跑xcodebuild時(shí)提示找不到這個(gè)命令。排查后發(fā)現(xiàn)原因是升級(jí)過程中系統(tǒng)把/Library/Developer/CommandLineTools激活成了默認(rèn)開發(fā)者目錄而xcodebuild實(shí)際上在Xcode.app內(nèi)部。運(yùn)行sudo xcode-select -s /Applications/Xcode.app/Contents/Developer即可解決。此外如果安裝了多個(gè)Xcode版本比如Xcode_14.x和Xcode_15.x并存建議在構(gòu)建腳本里顯式指定DEVELOPER_DIR環(huán)境變量否則不同終端環(huán)境可能選到不同的Xcode構(gòu)建結(jié)果都會(huì)不一樣。這里我給的方案是在項(xiàng)目根目錄維護(hù)一個(gè)env.sh腳本里面寫好export DEVELOPER_DIR/Applications/Xcode.app/Contents/Developer export JAVA_HOME/path/to/jdk-17每次打開新終端或者進(jìn)入項(xiàng)目目錄時(shí)先source env.sh從源頭避免環(huán)境錯(cuò)亂。6.2 Gradle依賴下載超時(shí)的排查鏈路Android構(gòu)建最容易出現(xiàn)的經(jīng)典坑就是依賴下載超時(shí)。表現(xiàn)是構(gòu)建日志里出現(xiàn)類似Could not resolve com.android.tools.build:gradle:8.x.x或Connection timed out。這時(shí)候不要急著重試先按順序排查確認(rèn)distributionUrl對(duì)應(yīng)的Gradle版本能否從網(wǎng)絡(luò)正常下載檢查倉(cāng)庫地址是否可訪問直接在瀏覽器里訪問一下對(duì)應(yīng)URL檢查本機(jī)是否有代理或防火墻攔截了相關(guān)域名如果用的是鏡像源確認(rèn)鏡像源同步完整在實(shí)際案例里我們遇到過鏡像源只同步了部分模塊導(dǎo)致解析失敗的情況這時(shí)候把缺失的倉(cāng)庫臨時(shí)切回Google官方倉(cāng)庫即可。另外合理配置Gradle離線緩存也能顯著緩解~/.gradle/caches目錄的緩存可以復(fù)制到云端構(gòu)建機(jī)的持久化磁盤避免每次構(gòu)建從零下載。6.3 敏感文件入庫的補(bǔ)救流程經(jīng)常有同事在配置環(huán)境時(shí)臨時(shí)改了local.properties提交代碼時(shí)不小心把這個(gè)文件帶進(jìn)倉(cāng)庫。這個(gè)文件里通常含有SDK路徑、本地簽名文件路徑等信息不應(yīng)該進(jìn)倉(cāng)庫。補(bǔ)救流程分兩步# 第一步把文件從Git追蹤中移除 git rm --cached local.properties # 第二步加入.gitignore避免再次誤提交 echo local.properties .gitignore git commit -m Remove local.properties from version control但如果這個(gè)文件已經(jīng)被推送到了遠(yuǎn)程倉(cāng)庫光這么做還不夠因?yàn)闅v史記錄里仍然存在該文件內(nèi)容。為了徹底移除要用git filter-branch或git filter-repo重寫歷史。這個(gè)操作會(huì)導(dǎo)致倉(cāng)庫的commit hash變化如果倉(cāng)庫已經(jīng)有多人協(xié)作重寫歷史前必須和團(tuán)隊(duì)成員確認(rèn)否則其他人的本地分支全部會(huì)失聯(lián)。我個(gè)人經(jīng)驗(yàn)是在項(xiàng)目初期就嚴(yán)格把關(guān).gitignore比事后補(bǔ)救成本低得多。團(tuán)隊(duì)里可以做一次代碼評(píng)審約定凡是涉及本地環(huán)境信息的文件一律不入庫。6.4 權(quán)限邊界與團(tuán)隊(duì)成員協(xié)作的注意事項(xiàng)CodeHub的權(quán)限模型里代碼倉(cāng)庫的訪問權(quán)限與DevCloud的項(xiàng)目成員角色綁定常見角色有項(xiàng)目經(jīng)理、開發(fā)人員、測(cè)試人員、瀏覽者等。開發(fā)人員默認(rèn)有倉(cāng)庫的push權(quán)限測(cè)試人員只有只讀權(quán)限這一點(diǎn)在配置完權(quán)限后要告知每位成員避免出現(xiàn)測(cè)試同學(xué)想拉代碼卻拉不下來的疑問。還有一個(gè)容易忽略的點(diǎn)成員從DevCloud項(xiàng)目里移除后他/她原來的SSH公鑰會(huì)立即失效哪怕公鑰還留在CodeHub的個(gè)人設(shè)置里。這是一個(gè)安全設(shè)計(jì)但如果項(xiàng)目?jī)?nèi)人員流動(dòng)頻繁新成員加入后一定要走加入項(xiàng)目的流程而不是單獨(dú)添加公鑰后者容易在忘卻后造成權(quán)限邊界混亂。7. 一個(gè)完整的實(shí)操演示從零連接CodeHub到兩端構(gòu)建通過這部分我以團(tuán)隊(duì)里真實(shí)走過的路徑為藍(lán)本整理出一份可以直接對(duì)照操作的完整流程清單。假設(shè)我們的項(xiàng)目叫某跨平臺(tái)管理AppiOS和Android兩個(gè)端的代碼放在同一個(gè)CodeHub倉(cāng)庫里用不同目錄區(qū)分也可以是兩個(gè)獨(dú)立倉(cāng)庫邏輯一致這里以單倉(cāng)庫為例。7.1 初始化階段本地項(xiàng)目與CodeHub倉(cāng)庫的關(guān)聯(lián)第一步在CodeHub創(chuàng)建一個(gè)空倉(cāng)庫例如mobile-app。創(chuàng)建時(shí)選私有初始化時(shí)不要勾選生成README和.gitignore保持倉(cāng)庫為空因?yàn)槲覀儽镜仨?xiàng)目已存在。第二步在項(xiàng)目根目錄建立.gitignore。iOS和Android雙端目錄結(jié)構(gòu)示例# iOS Pods/ DerivedData/ *.xcuserstate xcuserdata/ # Android build/ .gradle/ local.properties .idea/ *.apk *.aab captures/ # 通用 .DS_Store *.log第三步執(zhí)行本地Git初始化并連接遠(yuǎn)程git init git add . git commit -m Initial commit git remote add origin gitcodehub.devcloud.huaweicloud.com:YourGroup/mobile-app.git git push -u origin master這個(gè)階段遇到最多的問題就是push時(shí)提示Permission to XXX denied按第2.3節(jié)的方法排查密鑰配置。等push成功CodeHub網(wǎng)頁端能看到代碼就說明Git連接這一環(huán)徹底打通了。7.2 iOS本地編譯驗(yàn)證與云端任務(wù)創(chuàng)建本地打開Xcode確認(rèn)能直接編譯運(yùn)行項(xiàng)目。然后到DevCloud創(chuàng)建iOS構(gòu)建任務(wù)主要內(nèi)容包括代碼源選擇CodeHub倉(cāng)庫分支選擇master構(gòu)建機(jī)選擇macOS類型構(gòu)建模板選擇Xcode相關(guān)模板在證書管理里導(dǎo)入.p12和.mobileprovision構(gòu)建命令選擇xcodebuild -workspace YourApp.xcworkspace -scheme YourApp -configuration Release clean archive并指定導(dǎo)出選項(xiàng)這一步容易出的問題構(gòu)建機(jī)型號(hào)不同xcworkspace的Pod安裝情況也不同。如果項(xiàng)目使用CocoaPods要確保構(gòu)建前先執(zhí)行pod install否則workspace無法生成構(gòu)建直接失敗。7.3 Android本地編譯驗(yàn)證與云端任務(wù)創(chuàng)建Android端同樣先確保本地能跑通./gradlew assembleDebug。然后到DevCloud創(chuàng)建Android構(gòu)建任務(wù)代碼源選擇同一CodeHub倉(cāng)庫構(gòu)建機(jī)類型選擇Linux構(gòu)建命令填寫./gradlew clean assembleDebug配置JDK和SDK路徑如果構(gòu)建時(shí)下載依賴慢開啟Gradle緩存這里的關(guān)鍵是SDK路徑。DevCloud的Linux構(gòu)建機(jī)預(yù)裝了SDK但版本可能不是你需要的。我們的做法是在構(gòu)建腳本開頭動(dòng)態(tài)安裝SDK組件sdkmanager --install platforms;android-34 build-tools;34.0.0或者直接在Gradle配置里用android.suppressUnsupportedCompileSdk的方式控制版本兼容。7.4 兩端構(gòu)建通過后的驗(yàn)證清單構(gòu)建任務(wù)創(chuàng)建完手動(dòng)觸發(fā)一次拿到構(gòu)建成功的日志后做以下驗(yàn)證在CodeHub上修改一次代碼并push確認(rèn)流水線自動(dòng)觸發(fā)如果配置了自動(dòng)觸發(fā)從制品庫下載iOS的.ipa和Android的APK分別安裝到模擬器和真機(jī)驗(yàn)證讓另一位同事從CodeHub重新clone代碼跑一次本地編譯確認(rèn)新成員環(huán)境也能正常復(fù)現(xiàn)檢查構(gòu)建日志里有沒有warning或非致命錯(cuò)誤盡量消除我建議至少把這些驗(yàn)證做全再進(jìn)行下一步的自動(dòng)化集成否則環(huán)境層面埋下的雷會(huì)在后續(xù)功能迭代中反復(fù)炸。8. 寫在最后的個(gè)人操作心得做完整套環(huán)境搭建我最想強(qiáng)調(diào)的一點(diǎn)是不要小看環(huán)境對(duì)齊這件事。代碼托管只是把代碼放到了云上真正的價(jià)值在云端構(gòu)建和協(xié)作流程里而這兩者的基礎(chǔ)就是本地環(huán)境和云端環(huán)境的一致性。如果兩邊版本不一致你每天的工作都會(huì)在本地能跑云端報(bào)錯(cuò)的循環(huán)里消耗大量時(shí)間。實(shí)操了多次之后我現(xiàn)在的習(xí)慣是每次本地工具鏈一升級(jí)就在云端的構(gòu)建任務(wù)、流水線配置里做一次同步更新同時(shí)更新團(tuán)隊(duì)文檔里的環(huán)境對(duì)齊清單。不要等到下次構(gòu)建失敗時(shí)再想起來那時(shí)候排查成本已經(jīng)上去了。另一個(gè)有價(jià)值的體會(huì)是文檔比記憶靠譜。我們團(tuán)隊(duì)現(xiàn)在維護(hù)了一份標(biāo)準(zhǔn)的入職環(huán)境搭建文檔內(nèi)容就是這篇文章里講到的流程壓縮版。新人來了照著做基本半天內(nèi)能把環(huán)境和CI鏈路跑通。如果你也是移動(dòng)端團(tuán)隊(duì)的負(fù)責(zé)人我強(qiáng)烈建議把環(huán)境搭建規(guī)范做成文檔讓每個(gè)成員按同一套標(biāo)準(zhǔn)來后續(xù)省下的時(shí)間絕對(duì)值得。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷五月影院| 91精品视频男人的天堂| 狠狠草狠狠草| 99精品在| 婷婷日本色| 日日干天天爽| 人人操超踫| 婷婷五月丁香六月| 激情骚五月| 夜夜撸天天操| 精品网站:999WWW| 我要色综合五月婷婷| 久久sp免费视频| AVDV久久| 一起草AV| 丁香五月婷婷综合精品素人| 爱婷婷五月| 欧美97色| 婷色五月天| 超碰av在| 成人做爰A片免费看网站找不到了 噼里啪啦在线观看免费完整版视频 | 秋霞丝袜啪啪啪| 五月天婷婷综合网| 91超级碰| 久久婷五月天| 色综合网址| 激情婷婷五月天在线观看| 欧美超碰亚洲| 久久久久五月丁香| 久久99国产综合精品免费 | 一区二区三区四区牛| 97福利视频| 五月丁香六月激情| 狠狠插狠狠插| 色色色色网| 色婷婷色情| 中文字幕在线免费| 天天看A片| 麻豆精品| 五月天婷婷免费视频| 亚洲色婷婷激情| 中文字幕97超级碰| 一逼色综合| 黄色AAAAAAA| 日日干夜夜干| 黄网在线免费观| 深爱激情综合| 办公室少妇激情呻吟A片在线观看| 狠狠五月激情丁香六月| 色婷婷a v| 99热这里只有精品4| 丁香婷婷久久老熟女综合网| 丁香五月欧美色综合| 99热20| 丁香五月性| 久人人操| 色六月婷婷| 99精品97| 玖热精品综合视频| 久色视频首页| 玖操97| 五月婷婷色综图片| 天天橾日日橾夜夜橾17| 丁香五月天激情网| 99热在线播放| 久久久中文| 91AV婷婷| 99操视频| 五月丁香激情综合| 无码一区精品一区视频| 国产日产亚系列精品版优势| 亚洲视频99| 五月婷婷丁香综合| 可以免费观看的av| 五月天啪啪啪| 91精品激情9| 国产毛片欧美毛片久久久| 久久久久久久久久8888| 欧美丰满熟妇BBB久久久| www.婷婷| 一区二区乱视频码| 九九综合九九| 思思热精品免费视频| 五月丁香婷婷成人伊人网| VA国产在线综合网站| 久久黄色免费视频| 激情5月婷婷| 日本婷婷色日| 青草五月天| 婷婷成人AV| 欧美色色色| 99精彩视频| 97精品人人A片免费看| 国产亚洲成AV人片在线观黄桃| 精品久久久久成人码免费动漫| 丁香五月欧美婷婷综合| 久久久久亚洲AV无码网影音先锋| 99热在线资源| 色五月视频无码播放| 久久欧洲综合网| 91啪啪网| 婷婷丁香五月激情图片| 五月婷视屏在线观看| 六月婷婷激情| 国产激情久久久| 日韩超碰在线| 91丨九色丨43老版熟女| 一级无码作爱片| 欧美大香蕉视频| 精品一二三区视频立| 色五月婷婷开心| 欧美综合丁香网| 亚城区在线| 区美毛片子| 亚洲天堂久久| 五月婷在线影院| 狠狠色丁婷婷日日,伊人激情综合网 | 天天干天天干天天| 亚洲精品又粗又大又爽A片 | 99超级碰碰| 激情com| 色丁香五月综合网| 天天插综合网| 五月天婷婷基地综合网| 激情小说 五月天| 日韩成人中文字幕| 婷婷五月丁香基| 激情性爱五月| 91xxxx九色| 永久的网站AAAA| 26uuu另类亚洲欧美日本一| 色香蕉影院| 亚洲第一成人无码A片| 超碰无码318604| www.91.com处女在线直播| 五月丁香婷婷俺| 色婷婷99| 亚洲精品无码久久| 成人在线视频一区| 91色五月在线观看| 五月婷婷熟女| 婷婷爱五月| 激情性爱网站| 伊人超碰| 大香蕉久艹| 成人国产网| 婷婷6月综合网| 五月丁香六月玩女人| 欧美大肥婆大肥BBBBB| 高清成人综合| 热成人网| 97碰碰免费.视频| 色五月涩涩婷婷蜜桃| 五月婷婷草| 大香蕉久久视频久久视频| 综合色播| 思思精品视频| 一级黄色影片| 91日本在线| 九九热精品99| 91丨九色丨东北熟女| 亚洲色色色| 六月婷婷九月丁香| 久久多色| 九九人人操| 婷婷五月天网址| 国产国产乱老熟女视频网站97| 天堂综合久| 五月婷性爱| 五月婷婷,六月激情| 人人操av| 色五月婷婷在线| 超碰人人色| 原琪琪色影院| 亚洲日日操| 91狠狠色色丁香婷婷综合久久| 亚洲综合激情五月| 五月天婷婷亚洲| 亚洲激情淫网| 亚洲国产精品VA在线看黑人| 99这里只有精品在线| 99热这里只有精品9| 欧洲亚洲免费视频9| 日本久久人| 亚洲色色五月| 久碰婷婷视频| 激情婷婷丁香五月天小说| 久久婷婷色色| 丁香五月天天| 欧美日韩99| 伊久久婷婷| 在线观看免费狠狠色丁香香综合| 丁香六月啪啪啪| 久9无码视频| 亚洲色色五月天| 久久性爱视频| 99热免费网站| 色五月网址| 梁铮版蜘蛛女在线观看| 91人妻人人操| a久久| 18久久| 九九热免费视频| 人人综合久| 色情综合网| 99热这里只有99| 激情久久久| 99九九视屏| 欧美日韩国产一二区| 色五月婷婷丁香五月| 99热 在线播放| 亚洲乱码w在线观看| 99热亚洲精品| 丁香久久在线| 黄网免费看| 26UUU| 一点色成人网| 婷婷色色综合激情| 黄色五月婷| 久热免费| 免费成人va| 国产精品VIDEOSSEX久久发布| 99色看| 九月av在线| 综合激情五月天| 97色五月天| 日本英国美国欧美亚洲国产精亚洲日韩精品在线观看 | 亚洲第一色色色| 五月天婷婷在线播放| 黄色99网| 丁香九月激情| 色五月五月婷婷| 天天射影| 97婷婷丁香五月天激情图片| 一起草AV| 激情五月婷黄版| 久久九九怡红院| 婷婷丁香六月| 欧美天堂久久| www、色色色| 五月天激情小说| 99无码视频| 婷婷五月天激情丁香| 538任你爽| 屁股翘好撅高迎合跪趴| 91狠狠综合久久| 婷婷五月激情片| 久久一品区| 日韩aaaaa| 开心五月婷婷婷美女| 俺也去婷婷五月天第五色| 婷婷激情五月天桃花网| 禁欲电影完整版在线播放| 婷婷久久色| mmm1717.6dbm人人爱人人操| 日本久久视频| 9热久久| 777影视理论片大全在线观看| 丁香五月婷婷五月天| 婷婷久久视频| www久久99| 六月成人网| 噜噜狠狠色综无码久久合欧美| 欧洲永久精品| 91一起艹| 色人久夂| 婷丁香五月天| 久热re在线视频| 国产乱妇乱子在线播视频播放网站 | 五月天婷婷久草丁香| 亚洲日韩一页精品发布| 色欲久久综合| 丁香六月婷婷| 天天天干夜夜夜操| 丁香五月婷久久| 丁香五月在线播放| 五月天色五月| 亚洲激情精品| 丁香五月在线看| 丁香五月天色综合| 深爱五月综合网| 亚洲愉拍99热成人精品| 亚洲AV综合在线观看| 婷婷伊人视婷婷婷| 婷婷色五月天色| 丁香网站| 青青草视频免费观看| 99亚洲天堂| 久久婷婷五月综合色丁香| 26uuu色噜噜精品一区| 色色狼人综合| 丁香婷婷五月人体| 大香蕉75线| 色婷婷在线视频观看| .精品久久久麻豆国产精品| 99色婷婷视频| 亚洲另类电影| 婷婷丁香五月婷婷| aaa久久| 丁香五月婷婷五月天| 色女伊人| 51国精产品自偷自偷综合| 五月丁香无码视频| 色播五月网| 色婷婷五月天视频网站| 天天做天天爽| 中文字幕成人影视| 91久久久久久久久久久| 99精品免费视频| 激情五月综合免费| 久久精品亚洲一级牲爱综合| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 99精品免费欧美小视频 | 九九五月天| 久久机热这里只有精品| 99九九精品| 色播五月| 91精品久久久久久久| 曰曰久久| www99热| 日韩中文字幕| 99在线精品免费视频| 99ER热精品视频| 一本大道伊人AV久久综合| 婷婷丁香激情五月天色色色| 亚洲成人AV在线| 亚洲无aV在线中文字幕| 99操碰| 久99热| 久久九九免费大视频| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 五月天激情亚洲| 色开心五月丁香| 午夜丁香综合婷婷| 五月色婷婷综合色| 婷婷综合在线| 91欧美日韩| 91N 一起草| 伊人色综合久久久| 思思热久在线观看视频| 丁香五月天av| 婷婷人人操| 99爱视频在线观看这里只有精品| 91色呦哟| 亚洲第一成人无码A片| 99久久玖玖| 激情久久久| 热久久66| 五月丁香网站在线播放| 五月天啪啪啪| 欧美日韩99| 狠狠色 综合色区| 冬月かえでAV无码播放| 大香蕉综合| caopeng97日韩| 极品人妻VideOssS人妻| 天天爽夜夜操| 丁香午夜天| 狼人伊人天堂| 亚洲激情四射| 99视频久久| 五月综合视频| 大香蕉九九操| 思思精品久久艹| 神马欧美精| 久久香蕉网| 婷婷丁香婷婷97| 99玖玖精品| 色综合久久综合中文综合网| 五月丁香六月色情网欧美| 婷婷五月成人| 激情五月天.色网| 91啪啪视频| 99爱在线视频观看| 免费视频WWW在线观看网站| 99热观看| 婷婷激情五月综合丁| 亚洲永久四色| 九九综舍久久| 激情99在线视频| 99热精品10| 亚洲色热| 丁香五月激情综合久久| 婷婷五月丁香婷婷| 91精品久久久久久| 永久免费一区二区三区| 丁香五月在线视频| 婷婷在线视频| HD久久精品视频| 99综合| 婷婷五月天亚洲图片| 啪啪啪综合网| 久久sp免费视频| 狠狠狠五月婷婷六月丁香| 丁香九月婷| 岛国资源站| 99福利导航| 久久性刺激| 丁香六月婷婷综合在线| 欧美黄色一级录像| 婷婷色香六月综合激情| 婷婷精品| 婷婷五月丁香六月伊人网| 成人电影在线免费试看| 99爱爱网| 久久婷网| 久久久.COM| 五月丁香成人视频| 丁香五月婷婷色综合| 九九综合九九| 丁香六月啪啪啪| 美国不卡视频| 五月天四色房丁香亭亭| 九九99在线| 99re这里只有精品视频了| 激情五月天在线视频| 9久国产| 婷婷五月天影视首页| 99热伊人综合| 日本熟女一区二区| 九月婷婷人人操人人舔人人爱| 五月丁香六月婷精品视频| 激情五月天综合| 中文字幕视频在线播放| 超碰人人干| 欧美精品A片一区在线观看| 日韩十国产极品久久| 婷婷.com| 99热这里只有精品3| 久久女人九九| 亭亭五月激情亚洲在线| 午夜天堂一区人妻| 五月婷婷深爱六月| 国产AV网页| 婷婷五月天黄色小说| 色综合中文综合网| 97深爱伊人综合| 日韩AV免费看| 五月丁香另类图片| 丁香五月婷婷激情四射| 色播播五月天| 五月天婷婷色色| 婷婷五月丁香六月| 久久久久久久97| 激情六月综合| 五月丁香婷婷婷婷综合网| 97色干在线观看| 狠狠干思思热| 操日视频| www.超碰在线| 天天操天天日天天操| 色色色五月| 国产精品色色| 第2色五月婷| 91se精品国产| 午夜丁香五月天综合| 伊人三级激情| 色婷婷激情| 激情5月婷婷狠狠干| 超碰人人插| 五月天色婷婷成人| 丁香婷婷五月激情| 做爰丰满少妇1313| 久久久久久久人妻| 天天色一道本综合婷婷| 婷婷免费视频| 亚洲天堂大香蕉| 久久婷婷五月天懂色| 狠狠草狠狠草| 婷婷五月天激情五月天网站| 婷婷丁香激情综合色情| 成人草榴视频| 少妇高潮一区二区三区99欧美| 色欲久久久久久综合网综合网| www.狠狠| 婷婷激情五月综合| 天天玩天天摸| 午夜丁香婷婷| 色五月在线观看| 日本99热| 丁香色影院| 婷婷亚洲天堂| 五月丁香六月婷婷,婷| 9999热免费视频视频| 91超碰九色| 草操网| 性色99| 激情婷婷在线中文字幕| 国产精品天天狠天天看| 色欲丁香| 五月婷婷激情视频| 综合激情伊人影视在线| 精品导航在线x不卡| 99性色| 橾逼网| 五月婷婷综合网| 九月色婷婷婷| 日本九九九九| 久久久噜噜噜久久人妻| 五月天开心激情网色欲无码| 另类在线免费视频| 超碰大香蕉网| 狠狠干五月天| 日韩a热| 五月天激情啪啪| 久久99热这里只有精品| 97色操| 开心色播色五月婷婷| 玖玖在线视频| 棕合影院色色| 欧美日韩国产日本精品四虎网网站物| 另类在线免费视频| 大香蕉婷婷| 久久婷狠狠色| 狠狠色成人影片| 日日撸日日操| 好吊丝aV| 日日噜狠狠色综| yw.av| 538在线精品| 国产日韩欧美性爱| 99综合| 色色热| 婷婷激情五月天色| 久色视频首页| 蜜臀A∨在线水帘洞| 91色吧网| 啪啪色区| av成人在线播放| 国产成人片| 五月天婷婷激情小说电影| 亚洲无码yw| Caop在线| 中文AV在线观看| 九九热99精品| 日本欧美999久久久三级片| 婷婷香蕉精品| 99天堂在线观看免费视频| 熟女人妻一区二区三区免费看| 狠狠色丁香| 日本久热| 超碰在线人妻| 这里只有精品免费视频| 五月丁香六月综合激情| 深爱激情六月天| 99re这里| www.9797国产| 婷婷五月丁香啪啪| 日韩一级片| 国产91视频| 97人人超| 少妇做爰免费视看片| 色婷婷五月天| 色情五月丁香| 这里只有精品96| 69凹凸成人综合网| A片试看50分钟做受视频| 国产精品美女久久久久AV超清 | 91久久久久久久久久| 久久久五月天网站| 久久婷婷成人| 五月天激情综合网站| 久久精品国产色| 久久婷婷五月| 丁香五月网| 亚洲精品国产精品乱码不99| 久久色情综合免费网站| 亚洲情色一区| 亚洲丁香花色| 亚州欧美黄色电影| 超碰无码318604| 日本久热| 凹凸探花电影| 婷婷日日夜夜| 综合五月婷婷| 99色免费观看全部| 苗黎美女四级成人版一级二级毛片| seuuu婷婷| 九九精品99久久久| 天天曰夜夜爽| 久久视频在线| 五月丁香色色网| 香蕉AV福利精品导航| 99热超碰人| www.久久久久久| 99精品热视频只有精品10| 久久只有这里精品免费| 有哪些A片网站| 激情人妻综合| 亚洲精品久久久无码| 婷婷综合在线网| 美女网黄| 可以免费看av网站| 天天色视频| 五月丁香偷拍| 色婷婷色和| 超碰不卡在线| 五月婷婷六月丁香激情综合网| 五月婷婷综合精品| 综合久久99| 任你干aa| 操操自拍| 五月天激情久色| 99热这里只有精品3| 深爱激情六月天| 成人无码精品1区2区3区免费看 | 五月 婷婷 成人| 婷婷五月天激情网| 亚洲不卡123| 激情五月天的婷婷| 久久一二三视频| 婷婷五月天堂| 久草视频大香蕉99| 激情啪啪五月天| 人人操Av| www99精品| 色啦啦视频| 9 1超碰九色| 亚洲国产va| 婷婷五月天色播| 91精品国产色猫| 97热久久| 激情五月六月婷婷| 四川BBB搡BBB爽爽视频| 色色吧综合| 99热官网精品在线| 五月婷婷综合激情小说| 日本三久久| 色五月婷婷九月| 色135综合网| 96色婷婷| 久久久区区一久久久久久| 色色婷婷五月天| 欧洲区自拍| 99色区| 99a级片| 爱iii做iiii日日| 久久99这里| 久草天堂| 五月激情综合婷婷| 久久成人天| 伊人婷婷五月天| 色色五月天网站| 久色婷婷200| 五月天丁香婷婷网| 久久免费9| 99视频在线精品| 人妻在线观看视频| 五月婷婷我| 九九99免费视频| 丁香五月婷婷大香蕉| 深爱1激情网| 丁香五月婷婷成人网| 五月天成人小说| 91精品无码| 色色五月天网站| 91精产一区三区免费观看| 五月色情婷婷开心五月色情| 国产亚洲色婷婷久久99精品91| 日韩成人AV在线| 激情综合激情五月一起草| 婷婷五月天VI| 婷婷激情丁香六月| 久久激情四射| 俺也去在线视频| 丁香花狠狠婷婷亚洲中文字幕| 99精品视频在线| 国产日产亚系列精品版优势| www久热com| 狠狠狠狠狠狠草| 亚洲色情激情丁香五月| 激情文学综合婷婷五月天丁香花| 五月婷色丁香| 丁香五月婷婷总啪啪| 婷婷激情五月天小说| 丁香五月激情五月| 少妇婷婷五月天| 欧美久久一级内射wwwwww.| 五月天堂婷婷| 婷婷碰碰| 狠狠草狠狠草| 97干视频| 久久久激情| 激情图片婷婷| 99色综合久久| 久久五月天激情视频| 狠狠久久婷五月综合色| 色99在线视频| 99人碰碰碰| 五月综合视频| 夜夜做夜夜愛| 2020日日干| 日本色婷婷| 爱草视频在线| 综合一啪| 丁香五月社区| 五月婷婷乱| 久久久久久久五月| 99黄色性生活| 涩涩五| 中文字幕婷婷在线| 久久98| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 色在线99| www.婷婷六月天| 久久欧洲综合网| 国产老熟妇亲子乱对白| 97色婷婷| 夜夜撸天天日| 久99久99精品免| 五月婷婷开心网| 丁香婷婷在线| 91久久1118| 影音先锋 萱萱| 国产婷婷综合在线免费视频| 99热无码精品| 婷婷丁香五月综合网| 亭亭五月丁香五月天激情| 欧美五月丁香啪啪响视频| 啪啪日本欧美| 视频一二区| 5月色亭亭视频| 色色五月激情| 丰满少妇猛烈A片免费看观看| 婷婷五月中文在线视频| 色五月丁香五月激情五月激情| 91无码一起草| 婷婷精品| 亚亚州久久高潮| 99久热这里只有精品视频删减版| 婷婷丁香在线| 婷婷的色色五月天| 婷婷五月丁香基| www999日韩精品| 久久精品凹凸分类| 日韩成人精品中文字幕| 亚洲激情精品| 波多野结衣AV无码Porn| AA片在线观看视频在线播放| 射久久丁香五月| 婷婷色五月色妇| 成人视频一区| 超碰丁香五月| 成人国产欧美大片一区| 久99热| 色五月天综合网| 五月天婷婷色播| 丁香婷婷网| 玖玖激情网| 鲁鲁色五月| 99热这里是精品| 俺也去在线视频| 久久aaa| 99在线视频色版| 久久99免费视频| 野战J办公桌椅H| 婷婷涩涩五月天| 夜夜操夜夜姧| 操碰99| 丁香五月综合久久| av操B网站| 国产毛多水多女人A片| 丁香六月啪| 噜噜操操| 免费亚洲婷婷五月| 婷婷性色| 超碰熟女拍拍| 热思思| 婷婷激情啪啪| 五月综合777| 激情婷婷五月天伊人在线观看| 另类视频综合| 丁香婷婷性爱| 婷婷中文无码| 91avse| 超碰猛烈的性猛交| 91九九热| 99操网站| 色天使久久综合| 26uuu色五月| 操操操B| 国产成人精品一区二区三区视频| 任你艹| 婷婷五月天在线观看| 色色五月丁香婷婷| 色婷久久| 第四色激情网| 狠狠色大香蕉| 日本一毛片| 91ncm视频| 婷婷五月天堂| 激情五月天婷婷| 午夜丁香婷婷| 99热最新| 全部老头和老太XXXXX| 国产SUV精品一区二区6| 在线看的免费网站| 男人的天堂婷婷色五月| 999热在线观看视频| 超碰五月婷婷五月天| 色婷婷丁香AV综合| 欧美久人人| 99热综合色图| www.99视频| 无码四色色色| 看黄的网站18禁| 久久久久久草黄色片AV在线观看| 中文aV网| 99视频网| 中文久久婷婷| 丁香婷婷社区| 情欲禁地| 亚洲成人综合网在线免费观看| 超级碰人人操人人干| 99久久99视频| 天天综合91入口| 91九色|疯狂|高潮|对白|| 亚洲成人在线播放| 99综合婷婷五月| 久久96热| 丁香五月婷婷色| 99色视频| 天天爽天天爽| 青青草青青草五月天| 毛片九九九九九九| 97人妻碰碰碰久| 性婷婷| 久久精品性爱| 五月丁香六月成人| www.金莲av| 久久久久久久久久久44| 1024人妻| 亚洲精品五月| 五月婷婷婷| 成人日韩欧美| 婷婷99狠| 婷婷的99视频网站| 逼逼AV| 性综合网| 婷婷六月色| 大地9中文在线观看免费高清 | 欧美在线操| 桃色伊人在线| 日本婷色| 婷婷五月成人| 色五月大| 天天 日综合| 日本九九视频| 99热久| 九九爱精品网站| 另类视频一区| 日本激情五月天‘| 大香网伊人久久综合| 五月激情站| 天天色五月婷婷91久久久久久久| 婷婷五月电影院| 五月丁香六月情亚洲| 欧美大香蕉视频| 色综合久久久综合久久网| 殴美激情综合网| 五月婷婷之美女图片| 玖玖色综合| 99玖玖视频| 热久久思思热思思| 99九九在线视频| 日本人妻伦在线中文字幕| 99欧州偷拍视频| 99久久久| 99精品视频在线观看| aaa久久| 色久综合天天做视频| 婷婷六月丁| 久久久五月天婷婷成人网| 99热 免费| 秋霞性爱AV| 色婷婷色和| 久久午夜理论| 色五月天综合网| se色综合网| 热热久久久久久久久| 久久久久人妻网址| 欧美色男人网站| www.狠狠操.co m| 狠狠干综合网| 婷婷色五月天色色| 五月丁香婷婷中文网| 伊人婷婷五月天| 91婷婷色 | 99亚洲色| 婷婷97狠狠成人网站| 人人综合久| 亚洲色在线观看| 无码91中文字幕| 国产成人AV人人爽人人澡Va| 婷婷丁香18| 涩综合网| 色色色在线观看| 另类图片五月天激情| 日韩按摩二区| 八戒青柠影视剧在线观看| 婷婷色网站| 国产激情av| 五月天婷婷社区久久综合| 丁香五月无码| 久久R激情| 丁香成人五月天| 六月婷婷久久| 天天爱天天操| 99色色网站| 五月天色五月| 久99久99精品免| 色婷婷丁香| 五月婷护士| 五月婷婷啪啪啪啪| 91婷婷视频| 九九久久综合网站| 色色欧美色色色| 色五月aV| 免费无码毛片一区二区A片| 思思视频精品| 色婷婷丁香A片区毛片区女人区| 再次出发二| www.99热| 激情五月综亚网| 国产乱人偷精品人妻A片| 思思99精品视频| 9久久久久| 婷婷亚洲天堂| 色五月成人| www.五月天性.com| 99久久国产宗和精品1上映| 天天在线久久综合 | 激情综合色婷婷啪啪五月天| 久久婷婷五月草视频| 五月天天丁香婷婷| 79色色色色| 色婷综合| 99无码| 久久99网站| 丁香激情五月| 亚洲九九在线| 色都都狠狠色都都色综合色| 婷婷操婷婷干婷婷射| 在线看黄色| 欧美婷婷日本| www.97碰碰com| 99热都是精品| 99热无码精品| 91av传媒高清在线视频网| 五月综合六月婷婷| http://www.com久久久精品一区| 台湾佬天天日丁香婷婷五月天 | 九九九激情综合| 久久色这里只有精品| 18久久| 丁香花五月天激情| 综合亚洲五月天| 亚洲色综合| 五月丁香六月停停| 综合 蜜月 婷婷| 人人播| 精热在线综合网| 婷婷.com| 婷婷内射视频在线| 日日噜狠狠色综| 欧美交换配乱吟粗大25P| 另类激情五月| 伊人色综合久久久| 婷色五月天| 99热这里只有的精品视| 日韩综合久| 激情综合五月| www激情五月天| 99热爱爱干干日| 少妇人妻丰满做爰XXX| 色情激情五月| 99爽视频| 五月日韩中文字幕| 婷婷激情在线| 黄色99网| tingtingseav| 亚洲超碰在线| 色综合久久久久久久久五月| 丁香五月影视| 日本女色人人| 激情文学久久| 99色一| 久操福利| 九九色情网站| 久99久视频| 日日操夜夜操中国无码| 五月丁香综合| 丁香五月激情六月| 婷婷激情人妻| 91肏肏肏| 操97| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪 | 人人操AV| 五月天五月色| 亚洲综合视频在线| 欧美色必爱| 成人丁香| 亚洲免费观看高清完整版AV线| 一根材五月婷成人| 啪啪激情综合| 国产XXXX搡XXXXX搡麻豆| 97人人操| 激情六月一二| 思思99热在线| 婷婷久久大香蕉| 91超级碰人人操| 精品久久穴| 五月丁香啪啪综合| 久久视频婷婷| 综合五月激情网| 五月丁香网av| 黄网在线免费观看| 99日视频在线| 亚洲AV日韩在线观看| 激情五月天啪啪| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 丁香五月六月欧美| 99热久久这里只有精品| 五月丁香婷婷色色| sewuyuetingtingiii| 亚洲妇女熟BBW| 五月天婷a在线| 久久 婷婷 五月天| 成人永久免费视频在线观看| 久热99中文字幕| 99国产在线精品视频| 六月综合婷婷开心伊人| 天天噜日日噜综合无码| 亚洲va欧美va天堂v国产综合| 第四色婷婷色五月| 超碰日韩人妻在线| 五月天天天操天天爽夜夜操| 欧美性生交XXXXX无码小说| 五月天色五月天| 无码人妻一区二区一牛影视| 亭亭五月色男人| av在线免费网站 | 亚洲啪| 狠狠狠狠狠狠狠狠草| a九九热www| 涩玖玖免费视频| 色婷婷狠狠禁久久| 日木WWW视频| 国产精产国品一二三在观看| 99爱在线免费视频| 97人人操人人爽| 日韩啪| 丁香六月激情| 激情深爱五月| 丁香五月婷婷色偷偷| 婷婷综合色播网| 丁香5月婷婷| 婷婷丁香六月影视| 精品一区二区三区四区五区六区介绍| 六月丁香婷婷五月天| 丁香婷婷久久| 狠狠色婷婷| 丁香五月图片| 热99精品视频观看| 这里只有精品99www| 一二三区视频韩国| 精品99爱免费视频在线观看 | 日本久久99| 婷婷五月无码| 婷婷色九月| 色情综合| 婷婷五月成人| 婷婷色综合| 精品一二三区久久AAA片| 五月丁香亭亭电影久久| 97操碰98| 婷婷九色| 深爱激情五月天| 色色婷婷五月| 国产成人精品一区二区三区视频 | 高清无码入口| 久久综合久色欧美综合狠狠| 色无婷婷| 色色999三级片| 免费亚洲婷婷| 国熟女视频| 色噜噜狠狠色综合网| www.色五月| 丁香婷婷六月天| 99热这里只有精品在线播放| 激情五月综合网| 91 原创 在线 九色| 婷婷五月情| 婷婷成年人免费视频| 日本婷婷网| 另类丁香五月天区图| 日本操天堂| 4399在线观看免费高清毛片| 人人操操| 色色色五月婷| 国产激情在线| 凹凸探花电影| 婷婷五月天偷拍| 天天综合精品| 天天操比比| 五月天激情小说网| 丁香花综合永久入口| 另类激情五月| 开心五月丁香综合久久| 激情五月天小说| 日韩久久视频| 亚洲乱码日产精品BD| 99精品综合在线| 综合99久久| 天天婷婷操| 激情图片婷婷丁香五月| 久久99网| 1024在线视频| 婷婷五月天成人| 操逼在线视频| 五月天成人免费视频| 丁香五月婷婷啪| 日本人妻伦在线中文字幕| 97色色综合| 欧美精品久久久久久视频观看| 午夜激情五月天| 久激情网| 日本乱子人伦在线视频| 色婷六月| 久久婷婷视频| 婷婷五月天激情文学| 久大香蕉| 婷婷五月天综合亚洲| 久久区区一二三av| 伊人丁香六月婷婷| 久久久性爱视频| 伊人综合网站| 丁香六月婷婷综合欧美| 69er小视频| 五月天开心色情网| 99婷五月| 色八月婷婷| 日本va欧美va国产激情| 天天揷综合网| 久久综合五月天| 激情婷婷丁香五月天| 91要啪| 99婷婷| 大香蕉AV在线| 国产成人综合电影| 日本精品久久久久中文字幕| www.久久爱| 丁香五月影| 丁香五月成人| 中国女人做爰A片| 激情性爱五月天网页| 久操无码| 日本激情综合| 丁香六月av| 亚洲啪视频| 77777亚洲午夜久久| RenRenSe在线视频网站| 五月婷婷久久综合| 天天艹| 亚州AV超碰人人操| 九月婷婷综合| 热99这里只是精品| 五月综合久久| 九九热内射| 色五月开心五月激情五月| 可以直接看的AV| 99狠狠| 丁香五月六月综合欧美| 五月激情啪啪| 亚州色婷婷| 亚洲网视屏| 嫩草视频观看| 天天爽免费视频| 美女久久婷婷| 夜夜操少妇| 色五月婷婷老师| 婷婷亚洲日本| 99热老司机| 丁香久月婷| 天天插综合| 激情碰碰碰| 五月网网站| 婷婷丁香六月天激情四射网| 婷婷五月天亚洲图片| 99精品成人无码A片观看金桔| 天天日夜夜B久久| 婷婷五月激情小说| 丁香五月香蕉| 99狠狠| 色娸娸综合网| 天天人人人人人人人人人人人| 国产毛片精品一区二区色欲黄A片| 丁香六月婷婷综合色| 精品久久99| 久激情网| 天天操综合网| 五月天婷婷综合久久| www.色五月| 噜综合| 四色永久成人网站| 另类色视频| 激情婷婷五月天| 亚洲综合字幕色色| 99爱在线免费视频| 日本精品在线噜噜噜| 激情综合网五月| 免费AV在线网址| 丁香五月激情网| 亚洲综合视频网| 波多野结衣AV无码Porn| 五月婷婷丁香综合| 五月婷婷啪啪啪| 99久热在线精品| 久久99精品视频| 色香蕉影院| 久久久com| 亚洲免费av观看| 狠狠99| 97在线精品视频| 丁香五月色情| 久久久精品99亚洲综合| 五月丁香综合| 色色色在线播放| 99综合五月免费视频色婷婷| 不卡影院午夜理论片| 91怕怕网| 色五月婷婷在线| 久久久中文| 成人做爰高潮A片免费视频| 婷婷五月天色丁香| 久久caop| 亚洲国产色色| 91精品综合久久婷婷九色| 激情五月天小说网| 天天综合天天做天天综合| 久久99免费视频网站| 丁香五月天电影| 九九99精品| 久操97| 【乱子伦】黄色| 五月桃花网综合| 99热在线只有精品| 丁香九月婷婷| 97在线观视频免费观看| 婷婷五月天BBw| 99九九精品视频| 99热这里是精品| 色五月丁香激情视频| 久久综合站| 色综合久久天天综合网| h亚洲| 亚洲高清在线| 丁香六月视频免费观看| 婷婷伊人75| 伊人久久婷婷| 丁香婷婷激情网站| 综合婷婷久久| 久久草大香蕉| 五月婷婷欲色| 久操热| 九九综合九色欧美狠狠|