免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
色情·com| 丁香五月婷婷骚视屏| 九九Av| wWwCom夜操wwW| 伊人无码高清| 天天操婷婷| 九热在线这里有精品6| 热99.com婷婷| 亚洲亚洲人成综合网络| WWW.婷婷| 丁香五月婷婷激情123| 久久五月婷婷综合网| 性爱久久| 思思热视频| 婷婷色婷婷亚洲成人| 中文字幕在线视频播放| 搡BBBB搡BBB搡18| 91色色色18| 天天射夜夜爽| 一区二区三区视频| 五月丁香婷婷激情影院欧美| 亚洲国产另类av| 色一情一乱一乱一区91| 五月婷婷婷自由综合| 91人妻视频| 久草九九| 月色色综合婷婷网| 一级韩国产精品毛| 久9热视频在线| 色情五月丁香| 超碰成人电影| 99热爱爱干干日| 另类综合婷婷五月天欧美视频| 女人露出p毛视频www网站| 久久婷婷大香蕉| 51精品国自产在线| 九九色婷婷五月天| 亚洲性爱AV在线| 色婷婷成人| 夜夜躁爽日| 全国最新疫情| 亚洲人妻一区二区| 亚洲AV成人无码久久精品老人法拉利| 婷婷五月天论坛| 五月婷六月综合在线观看| 婷婷五月天大香蕉在线视频观看| 色婷婷啪啪综合网| 婷婷综合在线视频| 超碰国产在线观看| 黄色片精品| 亚洲天堂AV综合网| 九月色婷婷综合| 91紱請| 丁香五月偷拍| 日本熟妇乱妇熟色A片蜜桃| 超碰碰碰碰| 婷婷五月天成人| 色色哒五月婷婷六月丁香| 五月丁香婷色| 五月丁香六月婷婷的女人| 亚洲AAA| www.精品99| 五月婷婷在线视频免费观看| 色五月婷婷中文字幕| 婷婷激情五月视频| 91久久综合亚洲鲁鲁五月天| 狠狠操狠狠爱| 久久久月丁香| 丁香五月激情鲁| 色播婷婷五月天| www,五月天激情| 亚洲99手机免费看视频| 婷婷色五月在线视频| 九九综合久久| 日日爽日日爽| 婷婷综合五月| 色5在线| 久鲁鲁色网 | 91狠狠色丁香婷婷综合久久精品| 91精品综合久久久久久五月丁香| 91日在线视频| 狠狠色噜噜狠狠| 色玖玖综合| 丁香五月激情网| 好看的国产精品| 粉嫩av蜜桃av蜜臀av| 久久五月视频| 99精品视频在线6| 亭亭丁香久久五月| 伊人啪啪网| 久热这里| 欧美丰满熟妇BBB久久久| 五月丁香六月激情| AV免费在线网站| 婷婷五月丁香花综合| 婷婷五月丁香五月| 99精品亚洲| 欧美Va婷色| 丁香五月性爱| 色五月综合网站| 婷婷五月综合色中文字幕| 美女网黄| 婷婷激情五月天激情在线| 丁香婷婷六月激情| 91人碰| 性爱综合网| 99国产精品白浆在线观看免费| 99精品国产乱码久久久人妻| 91视频精品99| 九九久99免费视频| 无码yw| 五月婷丁香| www.狠狠干com| 丁香五月天五码婷婷| 色亚洲激情| 中文字幕在线观看视频www| 中文字幕免费高清电视剧| www.色欲丁香婷婷| 伊人大香五月天| 情婷婷五月天| 丁香久久| 97久久人人| 天天干天天操天天干天天操天天干天天操 | 日本女人久久| 五月激情基地| www久久99| 97人人操人人插| 亚洲99在线| 久热这里这里有精品| www.色色色色| 色天堂婷婷| 色丁香五月| 视频这里只有精品16| 俺去也综合| 91日本在线观看| 怡红院成人AV| 美英法精品无码免费视频| 另类精品视频在线观看| 精品一区二区三区三区| 天天五月情| 色婷婷五月天成人网| 天天日天天爽| 99er这里只有精品| 无码激情| 亚洲最大在线| 99无码| 99久热| 九九青青草成人| se99视频| 一婬一伦一区二区三区| 99国产视频网| yirenjiqingshiping| 狠狠夜夜五月丁香| 人妻久久久久久| 久热丁香| 国产无人区大片| 色五月噜噜| 久久香蕉婷婷五月天| 99操逼| 丁香五月激情综合婷综| 狠狠操天天干| 91chinese 在线| 欧美VA在线观看| 亚洲精品久久久无码| 日韩另类| 色综合久久88色综合天天看| 97成人在线视频| 婷婷亚洲激情在线观看视频| 激情久久五月天| 涩 五月 婷婷 狠狠| 五月丁香六月情婷婷久久| 996热| 色很很96| 粉嫩AV久久一区二区三区| 91操操| 婷婷五月天久久| 激情宗合 激情宗合| 五月丁香六月色婷婷| PORNY九色9l自拍视频成人| 日本操B片| 久热只有这里精品| 大香蕉人人人| 男人天堂99| 97久久五月丁香婷婷| 久久九九视频| 五月丁香六月婷婷成人| 一本久道综合色婷婷五月| 色综合久久中文| 97色97干| 9九热视频| 天天干狠狠| 五月丁香婷婷啪啪| 白人荫道BBWBBB大荫道| 五月综合色播播丁香婷婷 | 热久久国产视频| 99婷婷精品推荐在线视频| 国产精品噜噜在线视频| 大香蕉婷婷婷| 天天做天天爱天天要| 中文字幕综合色| 丁香五月亚综合图片| 成片免费观看大全| 亚洲色另类| 天天综合色丁香| 青草激情综合| 亚洲啪啪视频| 精品国产AV色一区二区深夜久久| 五月天激情av| 99热播放| www.seqingwuyuetian| 华人在线免费| 色婷婷综合久久久久| 91狠狠综合久久久| 97干婷婷五月天| 69久久久| 五月综合视频| 久久丁香久久| 丁香五月婷婷亚洲人| 成人免费120分钟啪啪| 五月婷婷九| 久久九九re热| 爆乳熟妇一区二区三区爆乳照片| 狠狠久久婷五月综合色| 丁香五月综合首页| 99国产精品久久久久久久久久久| 婷婷无码五月天| 日韩成人中文字幕| 玖久久网站| 99ri视频在线播放| 亚洲性爱99在线| 五月天婷婷激情网| 亚洲中文字幕在线观看| 五月婷婷影| 婷婷5月天激情综合| 日本99婷婷| 久激情网| 色五XX| 五月婷亚洲精品AV天堂| 丁香网五月天| 色五月婷婷亚洲| 亚洲狠狠操| 婷婷五月综合色拍| 九月婷婷人人操人人舔人人爱| 婷婷久久综合久色| 久热这里这里有精品| 激情五月婷婷视频| 日本色五月| 丁香五月激情视频| 色情丁香五月天| 欧美啪啪网| 婷婷五月综合在线| 五月丁香999| 99小视频网站| 五月丁香亭亭成人电影| 婷婷色丁香五月| 色色网站日本91| 成人丁香五月天| 色婷五月天激情| 高清无码.com| 婷婷激情五月视频| 丁香六月婷婷激情| 北条麻妃九九九国产精品视频| WWW,五月| 淫水导航| 一二三区视频韩国| 亚洲色爽| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 97操碰人免费| 日日操日日撸| 日本高清久久| 激情av在线| 超碰碰碰碰| 99久久高清视频| 丁香成人五月天| 香焦网五月天| 丁香五月综合在线观看| 色爱终和网| 五月色婷婷综合色| 无码四色色色| 色五月天.con| 久久人人九| 亚洲天堂AV综合网| 五月婷婷激情在线| 超级碰碰碰久久网站| 99热官网精品在线| 五月婷婷丁香啪啪| 欧美VA在线观看| 五月天婷婷青青| 99色色热| 久热这里这里有精品| 女同激情久久av久久| 超碰在线观看成人视| 日本久久九| 中文字幕网伦射乱中文| 国产精品99久久久久久久女警| 久久婷婷精品| 亚洲操b| 91九色丨国产丨爆乳| 五月天偷拍| 五月综合激情视频在线| 少妇性按摩无码中文A片| 综合一本道| 99亚洲无码| 婷婷综合六月| 婷婷九月在线| 色婷婷亚洲婷婷| 成人 在线 日韩| 久久99久久99精品免视看婷| 996er热| 97人妻碰碰中文无码久热丝袜| 99re思思久久| 色五月激情五月天| 日韩一级片| 日本婷婷五月天| 思思热在线观看| 91丨九色丨熟女|老版| www.91九色| 久久婷狠狠色| 伊人丁香六月婷婷| 天天狠狠色| WWW.色婷婷.COM| 亚洲激情免费视频| 天堂久久性| aa久久| 97人人射| 国色天香成人网| 日本啪啪视频HD| 久久受www免费人成| 综合精品啪啪| 在线99热| 天天操夜夜肏| 婷婷激情人妻| 91seav| 超碰碰碰碰| 色播五月丁香| 97久久超视频| 另类天堂| 色天天综合| 夜夜撸日日操| 99热综合| 9九色首页| 国产性爱色| 五月综合丁香婷婷| 亚洲成人电影aaaa| 激情九色| 国产精品久久久久久久久久| 91久久九色| 色婷婷久久综合| 99热99思午夜精品| 丁香涩涩爱| 国产va视频| 一级黄色影片| 99热每日| 99久热这里只有精品视频删减版| 天天高潮夜夜爽| 美欧日韩国产成人在战| 九九99九九精品免费 | 日日夜夜小色哥| 天天综合精品| 99国产性感视频| 26UUU在线观看| 久久久久网站| 色亭亭五月天网扯| 婷婷五月视屏| 亚洲另类在线观看| 9月色婷婷| 婷婷五月天无码熟女| 天天插天天插天天插天天插| 婷婷五月婷婷| 中文字幕av亚洲| 精品九九在线观看| 日韩在线视频网站| 色情网综合| www超碰| 狠狠色官网| 五月激情在线| 秋霞九九无码| 亚洲视频丁香网va| 五月婷婷AV| 99热免费| 一起草AV| 久草大| 五月婷av| 色婷婷五月亚洲| 这里只有精品视频在线| 思思热99er| 99热在线爱| 婷婷另类小说| 神马久久五月天| 天天爽天天爽天天爽天天爽天天爽天天爽天天| 九九无码| 日本色色影院| 丁香婷婷激情网站| 超碰国产在线播放| 久久视网36| 六月婷婷九月丁香亚洲综合| 国产性爱在线| 伍月激情天| 色色激情五月天| 日韩无码91| 久久五月激情| 久久R激情| 狠狠 婷婷| 超碰人人在线| 开心五月婷婷激情| 岛国av网站| 终合激情网| 精品一二三区久久AAA片| 日韩操人| 九九热av| 超碰99在线观看| 天天爽天天摸| 丁香婷婷六月| 丁香五月乱中文字幕| 99国产精品久久久久久久久久久| 桃色五月婷婷| 色情五月综合婷婷| 激情小说五月天社区丁香| 婷婷五月天国产在线播放| 色欲色香综合网| 99色干| 女同激情久久av久久| 婷婷九月在线| 啪啪综合| 亚洲黄色精品| 久久久激情| 色五月五月婷婷| 精品99在线| 亚洲 视频 导航 一区| 人妻久久久久久久久久| 日韩激情网站| 超碰在线视屏| 久久9精品| 五月婷婷五月天亚洲无码| 99激情| 亚洲操逼网| 五月激情婷婷丁香| 就爱啪啪婷婷| 丁香九色不卡aaa| 五月天激情无码| 欧美日本97| 五月丁香伊人网| 五月丁香色欲| 人妻VideOssS人妻| 婷婷综合日本| 99热这里只有精品4| 成人五月天在线观看| 九九激情网| 这里只精品| 久久A极片| 五月天六月婷婷电影| 丁香婷婷基地| 久色大香蕉| 天天天日天天天干| 香焦网五月天| 国产精品色色| 五月激情六月宗合| 久久久18| 五月色综合| 激情九九这里只有精品| 婷婷久久性爱| 国产偷人爽久久久久久老妇APP | 九九九九国产| 草婷婷在线| 狠狠色噜噜色狠狠狠综合色| 久操人妻| 丁香五月停停av| 无码橾| 丁香九月婷婷| dingxiangtingtingliuyue| 97人妻碰碰碰久久久久-最近国语高清| 综合激情在线视频| 狠狠狠五月婷婷六月丁香| 一级二级色大片| 丁香六月综合| www.狠狠干com| 婷婷五月综合久久中文字幕| 精品爱欲五| 婷婷丁香五月综合网上| 狠狠搞五月天| 五月婷婷狠狠久久| 国产婷婷色综合AV蜜臀AV| 欧美α√| 情婷婷五月天在线| 丁香五月婷婷亚洲激情四射| 成人无码髙潮喷水A片| 婷婷伊人网| 成人va在线观看视频| 成人在线免费网址| 久久er99热精品一区二区| 婷婷99狠狠躁| 色婷婷色五月丁香| 婷婷亚洲影院| 人人综合91网| 成人va在线播放| 91人人爽久久涩噜噜噜| 天天综合天天做天天综合| 亚洲自拍天堂| 人人摸人人干| 99网| 久久免费精彩视频| www.天天干| 激情图片婷婷| 99色在线视频观看| 婷婷丁香九月| 色五月天丁香婷婷色| 亚洲情综合五月天| 无码色色色| 亚洲精品永久久久久久| 亚州精品久久久久AV无码| 9色在线| www久久久久久| 在线看片h站| 色色婷婷五月| AV成人在线播放| www.亚洲激情| 亚州日本欧州韩美高青高潮一| 五月激情综合网| 69精品无码一区二区三区| 91 九色大美女| 99精品网| 狠狠色狠狠操| 99热精品在线| av在线观看免费| 亚洲五月天激情| www色五月天| 色月视频| 色五月 激情婷婷 综合五月天| 高清成人综合| 丁香五月天激情四射网| 中文字幕无码成人电影| 中文字幕av久久爽| 九色综合五月天婷五月| 久热久| 日本三级大片| 久久这里只精品| 欧美操人| 国产精品色色| 五月婷视频| 香蕉综合网| 久久激情视频| 婷婷在线视频| 免费观看全黄做爰的视频| 欧洲色区| 国产性av| 人人妖人人97| 男人的天堂99| 高清国产AV| 久久婷婷夜| 婷婷性爱视频在线| 久久草中文日韩欧美| 精品99在线| 色欲九区| 亚洲婷婷五月天在线激情综合网| 久久99热这里只有| 91热er| 九九亚洲小视频| 99热这里只有在线播放| 色五月天成人在线| 99免费视频网| 高清无码入口| 噜噜视频| 亚洲五月婷| 91精品综合久久久久久五月丁香| 婷婷成人视频| 欧美情色一区| 欧美在线视频9| 欧美色97| 中文字幕在线播放视频| 综合激情五月丁香9999久久精| 99热在线99| 五月丁香久久精品在线观看| 久久五月网| 天天色综合网1| 婷婷日欧美在线观看| 精品人人操| 综合网色| 热99.com婷婷| 久久九区| 天天综合永久| 丁香五月先锋| 亚洲中文字幕在线观看| 99综合入口| 国产精品色婷婷99久久精品| 梁铮版蜘蛛女在线观看| 婷婷开心久久| 综合婷婷久久| 99干免费视频| 五月丁香亚洲校园欧美| 97婷婷五月天| 婷婷久热| 超碰99资源站| 伊人婷婷五月| 久草五月| 婷婷五月无码| 色婷婷丁香AV综合| 99精品在线| 性爱激情综合网| 99九九玖玖| 激情五月无码| 国产avapp 网| www.婷婷com| 丁香五月成人丝袜| 99re这里只有精品视频6| 婷婷五月天在线一区| 色播五月综合网| 少妇人妻偷人精品无码视频新浪| 激情文学第四色婷婷丁香五月| 国产永久一二一起草| 久久六月天| 99无码视频| www色综合亚洲92| 怕怕av| www.五月丁香| 久久久网站| 久久九九re热| 婷婷综合五月色播| 婷婷色啪| 99视频日韩| 色婷婷成人丁香| 久久99热免费最新版| 99国产精品久久久久久久久久久 | 狠狠操.COM| AV在线资源| 激情网色五月| 六月色五月天天婷婷| 99热婷婷| 人妻精品在线| 激情99| 99视频在线观看视频| 六月色色婷婷| 69精品人人人人人人人人人| 亚洲成人网无码| 综合色五月天| 亚洲一级色电影| 天天干一干| 久久9热综合| 亚洲性爱区无码区| 成人免费黄色短视频| 六月五月丁香五月欧美| 激情五月天小说网| 99热色无码| 狼友视频在线观看18| 青青草原伊人网| 99在线观看精品视频| 久热这里| 免费成人网在线观看| 日韩在线aaa| 婷婷五月五月丁香| 天天色域综合网| 精品九九九久| 五月婷婷在线综合| 成人在线视频男人的天堂4399| 久久 视频这里只有精总| 伊人婷婷大香蕉在线| 亚洲精品小视频| 国精产品一区一区三区免费视频| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 久七香蕉| 欧美丁香五月97色| 婷婷五月激情网| 九九热99热| 天天综合久久| 人妻丰满精品一区二区A片 | 麻豆AV一区二区三区| 久热这里精品免费| 亚洲av电影在线| 啪啪小说五月天| 99人人操| 亚洲AV免费在线| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 色综合久久88色综合天天99| 天干夜夜操| www.25五月婷婷| 亚洲精品又粗又大又爽A片| 开心五月婷婷在线| 9色在线视频精品观看| 婷婷丁香六月| 99五月丁香丁| 国产成人AV不卡| 久久小片| 超碰在线人人| 大地资源色婷婷视频在线| 色小说五月婷婷| 一级韩国产精品毛| 久久色婷婷| 操笔无码| 二区成人视频| 九九热黄色| 丁香五色月婷婷网| 免费观看2018www黄色操逼网站| 97亚洲婷婷| 丁香五月婷婷婷婷欧美综合| 婷婷亚洲在线| 91九色熟女| 色色成人網| 久久精99| 亚洲av骚货| 色播丁香婷婷五月激情| 亚洲天99| 欧美69久成人做爰视频| 免费亚洲婷婷五月| 天天天天天天天干| 9色小视频在线观看| 久久性视频| 五月天婷婷久久综合| 五月婷婷色啪| A片试看120分钟做受视频红杏 | 激情五月婷婷| 久久欧洲综合网| 色综合网址| 99五月香婷婷丁香在线视频| 国产成人av在线播放| 五月丁综合在线观看| 99超碰人人| 国产伦亲子伦亲子视频观看| 亚洲六月婷婷| 97丁香五月天| 久综合| 九九色网专区| 天天天干夜夜夜操| 婷婷五月色天| 大狠狠在线| 丁香六月啪啪啪| 天天综合区| 老司机日日夜夜青草| 色丁香影院| 欧洲亚洲免费视频9| 综合网啪| 国内9l视频自拍老熟女九色| 综合激情五月丁香| 五月天婷婷网站888| 激情五月亚洲| 色爱综合视频| www久久99| 久久99免费视屏| 蜜桃人妻无码AV天堂三区| 91综合色| www激情婷婷com| 色婷婷4| 亚洲午夜av| 99九精品| 婷婷五月丁香99| 99热这里只有精品8| 99在线视频精品| 91精品综合久久久久久五月丁香 | 久久久久9久无码视频| 久热大香蕉| 久久久WWW| 天天插天天爱| 婷婷五月色網站| 色视五月天婷婷| 99视频超级精品| 久月婷婷| 99热在线精品播放| 成人毛片在线免费观看| 99久久婷婷综合| 99久久国产宗和精品1上映| 亚洲综合五月| 亭亭五月色男人| 日韩久久视频| 久久久性爱视频| 五月婷婷综合在线| 九九这里有精品| 色五月婷婷久久| 丁香五月婷婷骚视屏| www.伊人天堂偷偷婷婷| 婷婷五月天天| 激情五月天在线| 蜘蛛女免费观看完整版高清电影 | 99色久| 免费观看2018www黄色操逼网站| 无码碰碰| 人人操超碰| 热99玖玖99玖玖99九九| 久久婷婷老| 97caop| 色色色色色色色色色影院| 拍真实国产伦偷精品| 婷婷五月天色| 99噜噜噜在线播放| 亚洲av| 亚洲传媒在线观看| 1024久婷| 亚洲色图81p| 97黑人精品区| 91人妻人人做人碰人人爽九色| 婷婷午夜精品久久久| 久久婷婷亚洲| 久久综合激情五月天| 激情q青青草在线婷婷| 日本本土色网第一区| 欧美色骚婷婷五月天| 丁香狠狠| 嫩草AV久久伊人妇女超级a| 99热这里只有精品一区| 亚洲热久久| 五月婷婷婷丁香播| 五月婷婷熟女| 色五月欧美| 欧美韩国日本| 色五月色开心开心五月| 9视频1在线| 五月激情综合网| 天天操夜夜夜夜爽| 日本不卡五月婷婷丁香| se影音资源在线观看| 伊人玖玖精品| 欧美日韩aaa| 五月婷婷色欲| 2021日韩无码| 五月丁香综合啪啪| 深爱激情四射| WWW五月| 99精品热视频| 国外亚洲成AV人片在线观看| 韩国97天堂| 99爽视频| 五月丁香色五月| 狠狠色综合精品视频在线| 五月婷精品| 国产看真人毛片爱做A片| 婷婷五月综合色小姐小说| 九九人人自拍| 天天插天天插天天日| 五月婷婷福利| 欧洲亚洲免费视频9| 少妇性按摩无码中文A片| 9|人妻人人操| 六月丁香啪啪啪| 午夜九九电影| www.婷婷| 日产精品久久久久久久蜜臀| WWW.久久久久久久久久久久久| 久久婷婷视频| 天天做天天爱综合| 久久九九99| 内射 无码 伊人| 碰碰91| www国产亚洲色婷婷com| 欧美综合五月丁香六月婷| 无码免费人妻A片AAA毛片西瓜| 欧洲区自拍| 密黄站| 噜噜国产| 中字幕视频在线永久在线观看免费| 免费成片在线观看| 琪琪理论片| 婷婷五月天AV| 久久精品国产AV一区二区三区 | 色婷六月| 激情婷婷丁香色五月| 九九aV| 亚洲啪啪自拍| 性 色 婷婷| 丁香五月婷婷激情尤物| 亚洲精品一二三| 91丨九色丨43老版熟女| 97 A I色色| 超碰免费人人| 丁香五月情| 99热成人在线观看| 天天日天天色| 丁香婷婷性爱| 亚洲天堂aaaa| 婷婷五月丁香图片人人操| 亚洲成人免费电影| 五月丁香五月婷婷| 九色99视频| 激情的五月婷婷蜜桃| 欧日韩成人| 91欧美日韩| 逼逼AV| 午夜丁香婷婷| AV成人在线播放| 婷婷六月激情综合| 亚洲亚洲人成综合网络| 99re99在线看| 玖玖爱伊人| 久久sp免费视频| 日韩欧美骚货| 91操人人操| 婷婷丁香色五月天久久88| 亲子乱AV一区二区三区下载| 国产美女主播vip| 色婷婷五月天天天干天天操天天爽 | 26uuu日韩| 激情综合九月| 欧美 日韩 成人| 五月婷综合激情| 丁香五月在线看| 日产精品一线二线三线芒果| www.91.com处女在线直播| 九九热九九| 久久婷狠狠色| 99九无网码| 国产视频福利| 五月丁香婷婷导航视频| 97久操| 99热在这里只有精品| 亚洲区在线| 99亚洲色| 香蕉曰比| 五月婷婷丁香综合网| 丁香六月丁香婷婷激情| 五月婷婷乱| 97久久综合网| 色婷婷激情五月天| 美女久久天堂| 日本操逼九九九九58日本操逼| 婷婷五月天国产传媒| 色色aⅤ網| 色五月婷婷777| 99精品7| 色婷网站| 婷婷五月视频| 久热伊人在91| www,com,五月色色| 丁香五月手机在线| 另类视频综合| 丁香五月婷婷深爱综合激情 | 丁香色婷婷| 99热在线看| 玖玖在线资源视频| 99热99艹在线观看| 久久激情五月网| 大香人妻| 久久精品五月天| 亚洲超碰在线| 天天日天天爽| 久99久热只有精品国产99| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 国产人妻777人伦精品HD| 五月丁香六月婷婷a v| 色婷婷亚洲综合网站| 99热a片免| 97影院一级片| 99在线观看| 久久96热| 国产一区18| 99免费热视频在线| 六月伊人婷婷| 丁香五月婷婷少妇| 在线网黄| 国产Va视频| 91在线资源| 99操免费视频| 成久综合视频| 亚洲狠狠色丁香婷婷综合久久| 五月婷婷 激情五月| 中文字幕97超级碰| 色99视频| 噜噜久| 激情黄色小说色五月| 成人午夜无码视频| 播五月丁香六月| 五月天婷婷香蕉狠狠超碰综合| 五月丁香六月色| 99久久精品网| 九九这里是免费的视频5| 国产精品电影| 亚洲第一第二网站| 亚洲免费看片| 久久看九九90| 久久婷婷色| xfplayav在线| 亚洲成人高清在线| 国产看真人毛片爱做A片| 欧美五月婷婷| 亚洲中文无码成人| 五月婷婷色色网址| 99久久久久| 狠狠xx| 五月丁香日本片| 五月综合激情图片 | 久热婷婷| 91干99| 久久久久人妻网址| 婷婷五月天狠狠搞干| 四月婷婷五月色综合| 男人的天堂99| 国产成人网站在线观看| 色色色色综合| 97在线/亚洲| 色七色九九| 丁香婷婷色五月天| 色欲资源网| 久久综合激情| 五月婷婷五月天| 草AV9999| 大香蕉婷婷五月天| 91久久久久| 色婷婷五月天在线观看| 丁香六月激情国产| 婷婷五月天成人动漫| 九九色之九九色之88| 亚洲欧美在线观看| 99热偷拍| 五月婷婷亚洲| 五月天婷婷在看| www.91操| 色综合香蕉视频| 日比网免费国产| 精品久久99码| 夜夜大香蕉婷婷丁香| 丁香婷婷六月在线资源观看| 丁香五月花婷婷开心| 婷婷色五月开心五月| 久久丁香婷| 国产精产国品一二三在观看 | 无码人妻丰满熟妇奶水区码| 激情五月综合网| 日本WWW九九九| 夜丁香五月婷婷| 在线综合婷婷| 中海油常州环保涂料有限公司| 丁香密臀AV激情网| 婷婷黄色网| 亚洲成人AV电影在线| 色色国产| 婷婷五月色| 午夜成人网站在线观看| 人妻内射视频| 婷婷五月花西瓜| 国产精品色色色色| 婷婷五月天va| 开心久久五月天| 九九99免费视频| 91人操| 亚洲有码在线视频| 亚洲国产另类av| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 三级三久久线久久99久目本WW| 色播五月综合网| 天天综合久久| 丁香五月婷婷六月| 五月亭亭综合五码| 五月综合激情综合久| 综合逼五月激情婷婷| 伊人青草成人| 亚洲婷婷五月天综合| 99这里是99在线视频| aⅤ79成人片| 婷婷丁香在线| 天天色播| 99开心五月五月丁香激情| 91丨九色丨大屁股| 99无码视频| 热中文字幕| 轮奸综合网| 五月天婷婷日日爱| 蜜臀av无码久久久久久久久| 激情深爱婷婷网| 色99视| 很很干在线视频| 操操操操操电影网| 人妻自慰高清合集| 在线观看中文字幕| 久久免费精彩视频| 婷婷丁香花五月天| 久热大香蕉| 久久久久婷婷| 国产精品18久久久| 丁香情色五月| 婷婷综合天堂| 五月丁香久久丝袜啪啪| 97干综合网| 伊人婷婷大香蕉| 成人看片网站| 99精品色色| 天天爽天天透天天爱| 婷婷五月天在线观看第二页| 亚洲另类视频| 97色久| 五月激情小说| 成人在线观看精品| 一区操| 性生活视频98791| 最新热中文字幕| 五月天成人手机在线视频| 色综合色综合网| 干一干xxxx| 亚洲色网址| 无码91中文字幕| 久久99免费视屏| 91免费看片| 五月婷婷激情四季| 天天热夜夜操| 欧美在线视频免费播放| 激情五月综合| 婷婷五月丁香基| 成人免费在线电影| 五月天另类小说亚洲| 国产日日操夜夜操的肉棒视频| 色婷婷小说网| 色五月天婷婷| 9热超碰| 婷婷五月丁香综合激情| 婷婷免费成人视频| 丁香婷婷噜噜| 激情综合五月| 九月丁香八月婷婷加勒比| 欧美伊人9| 婷婷五月天av网| 九九99视频| 五月激情婷婷在线| 久久久久久久久18久久| 五月婷婷深深爱| 天天做天天双| 开心五月天激情网| 日日夜夜天天| 国产操逼网站| 综合亚洲五月天| 久久九精品| 婷婷国产日本欧美| 五月丁香综合网| 成人做爰高潮A片免费视频| 四色五月视频| 色狠狠999综合网| 五月性色| 黑人糟蹋人妻HD中文字幕| www,色综合| 丁香五月成人论坛| 99熟女啪啪视频| 久久久国产精品黄毛片 | 五月婷五月婷伊人伊人五月婷| 天天夜夜六月丁香五月婷婷老师| 丁香五月日韩| 玖玖色综合色| 青草青草久热这里只有精品| 久久人妻视步| 色色色热| 久久婷婷五月综合精品蜜芽| 99热精国产这里只有精品| 99热自拍| 超色欲天天| 99久久成人| 亚洲免费婷婷| caopeng97人人| 丁香五月天欧美在线| 九九视频这里只有精品| 婷婷黄色五月| 色五月视频无码播放| 婷婷色五月激情| 色色色天堂网| 亚洲中文乱字字幕线在永久| 99热这里只有精品在线观看| 婷婷色片| 在线可以看的av网址| 国产精品18久久久| 成人AV免费观看| 丁香五月天中文字幕| 尤物一区二区| 六月丁香五月激情亚洲AV| 亚洲精品又粗又大又爽A片| 五月婷婷视频在线观看| 亚洲无AV在线中文字幕| 日韩综合网络男女香蕉a片| 婷婷五月天中文字幕| 午夜精品人妻无码一区二区三区 | 国产又黄又爽又色的免费| 免费亚洲婷婷中文字幕| 五月天开心婷婷激情网站| 五月激情丁香啪啪| 三区激情四射av| 噜噜视频| 另类视频综合| 中文字幕,综合,91| 综合色婷婷| 婷婷六月久久综合导航| 精品人妻在线免费观看| 日本五月婷婷久久久六月丁香| 99这里只有精品|v| 丁香六月啪啪啪| 色噜噜狠狠色综无码久久合欧美| 蜜乳AV成人| 五月激情基地| 黄网在线免费| 99久久综合网| 亚洲日韩一页精品发布| 怡红院院在线导航网| 99性爱| 九九热AV| 欧美日韩999| 51成人| 久操大| 亚洲不卡| 日本在线视频www色| 狼人狠狠操| 综合久久综合久久| 91狠狠综合网| 亚洲av网站| 99热这里是精品| 五月激情六月综合| 99久久亚洲精品视频| 91碰碰碰| 婷婷放心五日爱| 能看的AV| sisi热国产| 国产人妻777人伦精品HD| 日韩六十路91性交电影| 久草婷婷网 | 亚洲在线综合| 婷婷伊人中文字幕| 天天日天天干天天操| 五月丁香久久综合| 偷偷与邻居做爰完整视频| 五月综合激情图片| 丁香五月婷婷激情四射深爱激情| 99久久er| 五月婷婷9| 六月婷婷色色色| 在线视频另类| 开心激情婷婷| 涩涩五| 婷婷五月丁香四射| 丁香五月成人婷婷| 婷婷丁香五另类网站| 色色色热热热| 婷婷黄色五月天在线视频| 九九综合影音先锋| 国产三级秋霞| 色综合久久88色综合天天看| 五月婷婷色| 色五月丁香激情视频| 丁香五月婷婷操逼| 六月丁香激情| 午夜丁香| 日本人妻伦在线中文字幕| 丁香五月婷婷欧美成人色图| sewuyuetingtingiii| www.婷婷五月天.com| 深爱五月综合网| 伊人在线另类| 久久在线大香蕉| 丁香五月花婷婷开心| seav天堂| 97碰碰在线观看视频| 99久热这里只有精品视频删减版| www.色五月| 日韩aaa| 99精品在线观看| 色情终和网| 五月丁香激情综合啪啪| 色欲人妻综合aaaaaaaa网| 综合久久狠狠| 99热免费精品| 婷婷五月情色| 激情丁香五月AV| 大香蕉综合| 五月天综合激情网| 色五月婷婷久久| 亚洲综合五月天婷婷| 久久色五月天| 狠狠色性| 操操精品| 丁香激情网| 天天操天天干天天日| 日本的α片xxxwww| 一本九九色| 五月婷婷色色| 天天操婷婷| 五月丁香视频在线观看| 性色av大香综合| 97在线观视频免费观看 | 五月丁香婷婷俺|