欧美成人午夜精品久久久,国产?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
返回資訊列表
婷婷五月天六月| 色婷婷的五月天| wwW天天干| 久久久jd| 色情五月| 丁J香六月首页| 国产精品第一国产精品| 丁香五月电影| 天堂中文国产| 婷婷色婷婷| 国产精品婷婷午夜在线观看| 米奇影视资源777狠狠色婷婷五月天激情网| 狠狠色婷婷7777久| 五月激情综合网| 99久免费视频| av五月丁香| 1024操逼| 精品国产AV色一区二区深夜久久| 26uuu欧美| 伊人五月综合网| 人妻激情综合| 五月丁香成年黄色| 五月天色婷婷综合| 五月丁香六月综合激情无码软件亮点| 99热这里只有精品无码| 九九一综合精品| 第2色五月婷| 婷婷五月丁香综合| 91在线日| 91视频一起草| 熟女人妻视频| 成人精品视频99在线观看免费| 91蜜桃婷婷狠狠久久综合9色| 天天干天天操天天射| 九九热视频精品| 婷婷六月婷婷| 人妻内射麻豆视频| 玖玖色资源站| 99热精品网| 婷婷色亚洲| 丝袜人妻| 大香蕉520| 五月婷婷亚洲| 五月伊人网| 丁香五月婷婷Av| 人操人| 国产jd1024基地手机看国产| 日韩人妻在线播放| 91碰操| 玖玖婷婷色欲| 在线色婷婷| 婷婷五月激情欧美大胆视频| 五月天福利影院导航| 国产成人精品亚洲线观看| 激情五月天网| 国产成人网站在线观看| 九九热精品视频在线观看| 囯产精品久久欠久久久久久九大| 久热伊人| 无码成人AAAAA毛片AI换脸| 99视频精品| 激情六月婷婷| 五月天婷婷久久视频| 天天爽日日爽夜夜爽| 色欲资源网| 婷婷婷五月天最新综合你懂的| 伊人六月丁香婷婷| 99热的无码| 九九色热视频| 亚洲久久激情| 色日本综合| 久久99热这里只频精品6学生| 99这里只有精品视频| 色婷婷综合视频| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 日本成人小说婷婷六月| 十月丁香九月婷婷综合| 人。妻久久| 青草激情综合| 欧美影院| 久久9久| 九九99免费理论| 情色五月天网站| 91精品久久久久久| 国产激情视频在线观看| 中字幕视频在线永久在线观看免费| 欧美私人家庭影院| 蒲京久久无码视频| 日本九九九九九九| 99在线精品视频| 中文字幕AV在线| 91操人视频| 激情网第九色| www婷婷亚洲| \\五月天婷婷激情| 狠狠操狠狠干综合| 久久激情网| 久久99激情| 人人97碰| 91久久久久久久| 专区无日本视频高清8| 婷婷不干网| 91黄色五月天视频| 九月大香蕉| 久久婷婷激情四射五月天| 天天综合五月天| 欧日韩成人| 日本99视频| 天天五月香欧美| 99爱免费在线观看| 六月亭亭久久综合激情| 夜夜爽天天爽| 26uuu亚洲| 99激情| 成人AV在线中文版| 久久九九re热| 九九热在线观看6| 久久网站观看免费欧洲国产| 激情婷婷五月基地| 99九九玖玖| 啪啪啪综合网| 强辱丰满人妻HD中文字幕| 久久中文网| 五月婷色丁香| www久| 开心五月天私房婷婷| 天天日天天摸天天| 操人妻视频91| 99视频内射三四| 99热这里只有精品8| 色婷婷呢狠禁久禁| 九九青草热| 久热这里只精品| 色天天综合色| 激情五月婷婷视频一区二区三区| 五月天婷婷在线AN| 亚洲精品V天堂中文字幕| 影音先锋AV男人站| 99re久久| 1995年关宝慧版蜘蛛女| 五月丁香色综合| 色色五月天婷婷| 久久精品99国产精品日本| 狠狠爱丁香婷| 久热婷婷| 五月天激情婷婷丁香| 狠狠人人婷婷| 激情五月婷婷| 五月天堂色色| 久久人视频| 99热主页日本| 日日干干天天干| 天天澡天天狠天天天做| 成人片在线播放| 日韩野外 无套| 激情亭亭五月| 成人视频九九| 79精品视频在线观看,| 五月天婷婷在线播放| 免费看欧美成人A片无码| 男人的天堂在线婷婷| 4399在线观看免费高清黄色视频| 人人人人人人人人人草| 色噜噜狠狠色综无码久久合欧美| 婷婷五月成人| 五月丁香久久色| 丁香六月婷婷激情综合| 天天日日综合| 五月丁香色综合| 黄色av网站在线免费播放| 91人操| 欧美综合婷婷欧美综| 色五月丁香六月婷婷| 国产免费一区二区三区三州老师F1F1.CC | 色播五月婷婷综合| 婷婷丁香小说| 国产av天堂| 婷婷丁香五月天熟女丝袜| 开心婷婷中文字慕| 天天干天天干天天干天天干天| 狠狠色婷婷777| 丁香五月影| 国产老熟妇亲子乱对白| 五月天激情图| 夜夜撸天天操| 大香人妻| 五月天开心成人网| 五月丁香亭亭操逼| 久久涩视频| 久久婷婷啪啪视频| 五月婷婷伊人在线| 99操逼| 激情久久综合网| 狠狠操之狠狠操| 色日本五月天| 国产精品美女久久久久AV超清| 久久99精品日本| 五月激激网w'w'w| 婷婷色在线播放| 一点色成人网| 激情文学第四色婷婷丁香五月| 色综合五月婷婷狠狠干| 99热免费精品| 东北熟女高潮99综合99| 精a品a视a频| 五月丁香亚洲婷婷| 女人天堂AV| 超碰成人在线免费观看| 五月丁香婷婷国产精品综合| 色色婷婷五月天| 97人人妻人人艹| 天天日天天添| 久久婷婷综合国产| 色综久久久| 欧美日本VA| AV性爱在线| 中国女人做爰A片| 亚洲AV网址| 丁香五月婷婷成人网| 婷婷黄色| 四色五月婷婷| 五月丁香婷婷在线综合蜜桃| 少妇人妻人伦A片| 激情小说色五月| 激情综合色| 日韩无码色色| 婷婷狠狠干| 天天做天天爱天天爽夜夜揉| 99色色| 人操综合| 日韩无码乱轮| 亚洲久久婷婷| 99这里有精品视频| 色色色99| 99亚洲视频| 午夜AV网| 五月丁香综合伦理片| 丁香五月自拍| 久久国产高潮白浆免费观看99| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片| 婷婷天天日婷婷| 玖玖色资源| 操熟女成人网| 无码少妇高潮喷水A片免费| 天天操B| 色色色色综合| 色99xx| 丁香五月综合福利视频导航| 丁香六月综合| 五月婷婷基地| 中文资源在线a | 九九色色| av九九| 丁香五月激情网| 丁香婷婷五月激情四射网| 丁香五月色播中文在线播放| AAA久久| 人人人操| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 九色激情网| 女力报到正好爱上你| 午夜天堂一区人妻| 五月天激情综合网站| 婷婷色情网| 丁香五月WWW| 婷婷五月天第四色| chaopengdaxiangjiao| 五月丁香啪啪啪免费看| 六月综合婷婷开心伊人| 色五月综合| 久狠狠| 激情五月婷婷丁香综合网| 五月色丁香国产在线视频| 激情婷婷| 97人人射| 九九久久99| 人人操人人爽成人AV| 99热在线观看精品免费| 香蕉久久五月| 综合激情深爱| 五月丁香综合精品欧美| www.日日夜夜| 欧洲MV日韩MV国产| 99热99免费| 五月丁香影院| 色99视| 99视频只有精品| 综合婷婷| 天天插天天插天天插天天插| 亚洲另类在线观看| se99视频| 黄色大片又大粗又爽| 久久久久久久久久8888| 51XX午夜影福利| 五月丁香六月色| 97操男人的天堂| 久久免费婷婷视频| 五月天天综合网色婷婷| 日韩在线婷婷五月天综合| 国产毛片操B| 天天影视色综合网| 丁香婷婷浪潮AV久久综合| 激情五月天色婷婷综合| 色婷婷亚洲综合网站| 伍月婷婷六月丁香| 丁香五月激情五月| 激情五月丁香五月| 九色在线观看91av| 999精品乱码77777| www.超碰在线| 女人天堂AV| 五月天国产成人| 五月丁香婷婷欧美| 五月丁香综合网色欲| 天天干天天拍| 色五月激情综合| 爽tv | 99亚洲欧洲| 日本不卡高字幕在线2019| 激情二色月| 亚洲色图欧美色图日本视频| 欧美激情2025| www九月婷婷| 欧美五月丁香| 六月丁香停| 91久久九久久九久久九久久九久久| 丁香五月先锋| 亚洲综合成人网| AV九九| 久久久久人妻网址| 婷婷黄色五月天在线视频| 人妻熟女一区二区AV| er99免费视频在线| www.久99| 丁香桃色网| 加勒比日本一区二区三区| 第四色五月婷婷| 91婷婷色五月| 婷婷五月天小说| 狠狠狠狠免费| 九月丁香八月婷婷加勒比| 激情小说五月欧美亚洲丁香| 婷婷色情五月| 国产成人AV在线| 99热超碰在线| 亚洲精品国产熟女久久久| 丁香五月综合在线| 婷婷五月丁香四射| 99无码精品| 99狠狠色| 久热9| 亭亭色天香| 99久久婷婷精品视频| 夜夜操天天干| 色婷婷久久久| 成人无码精品1区2区3区免费看| 密乳视频| 亚洲无码AV片| 91精品婷婷国产综合久久| 色久播播| 99热传媒| 五月花婷婷| Av大香蕉| 屁股翘好撅高迎合跪趴| 岛国AV网| 色婷婷久久久| 国产AV一区二区三区最新精品| 日韩操逼小电影| 婷婷狠狠97| 第四色激情网| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 丁香五月天网站| 91精品91久久久中77777| 婷婷基地五月色| 加勒比久热| 五月丁香操婷逼| 五月婷婷综合热| 精品亚洲国产成AV人片传媒| 亚洲综合五月天婷婷| 伊人久久大香网| 99色在线视频| 五月天综合婷婷| 婷婷五月天激情电影| 亚洲色五月| 婷婷激情啪啪| 97资源欧美日韩大香蕉超碰一区| 欧美大肥婆大肥BBBBB| 亚洲经典小视频| 日本成人综合| 色婷婷亚洲婷婷| 国产美女最新VA在线免费观看| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 极品人妻XXXXOOOO| 五月激情六月综合| 成人噜噜网| 中文字幕网伦射乱中文| WWW.桔色成人.COM| 婷婷亚洲激情在线观看视频 | 天天射天天插天天干| 五月亭亭性| 婷婷色导航| 在线观看免费视频| 99色 | 超碰成人在线观看| 韩国中文字幕91| 99热这里只有精品9| 九九99在线观看视频| 69热91天堂| 97人人做| 天天色色婷婷| 婷婷综合97| 精品无码久久久久久久久| 狠狠色婷婷777| 综合激情五月天| 91色综合网站在线| 五月天狠狠草| 大香蕉九九| 亚洲狠狠终合停停终合| 人人综合久| 婷婷五月成人有| 99久热在线精品99re6热| 一级黄色影片| 九九热精品6| 成片免费播放| 丁香婷婷五月综合欧美另类| 99A片| 丁香六月亚洲综合| 激情五月综合网| 婷婷色网址| 91狠狠综合久久| 99热九九在线| 欧美久热| 久久久人人操A V| 色婷婷色99国产综合精品| 99热99色| 亚洲va日| 婷婷伊人视婷婷婷| 中文字幕日产A片在线看| 婷婷丁香五月综合免费视频百花| 激情五月天之六月婷婷| 亚欧州精品视频| 久99999热视频在线观看免费| 殴美综合激情五月天免费视频| 99九九精品| 激情五月婷婷视频一区二区三区| 五月丁香av在线| 99综合自拍| 色色色色色色色色色影院| 久久久91| 天天插天天操| 亚洲婷婷开心五月| 色欲色天天香综合| 69人人操人人爽| 伊人99热| 综激情网| 五月婷天天搞视频| 五月丁香天天| 六月丁香久久| 亚洲韩国日产综合AV| www久久久| 五月天婷婷操逼视频| 激情五月天婷婷视频| 97人人草| 日本色色网站| 人碰人人人玩91| 五月花婷婷| 五月婷婷草| 91男同| 超碰人人妻| 亚洲妇女熟BBW| 我爱大香蕉| 亚洲第一第二网站| 秋霞电影理论| 99色色热| 91网站黄| 沈娜娜av| 欧美性生交A片免费看| 五月婷色色| 五月亭亭直播| 五月天激情婷婷小说| 色色热99| 亚洲旡码| 色五月自偷自拍婷婷婷婷| 色婷婷丁香花五月天| 狠狠操狠狠| 99ri视频在线播放| 丁香五月婷婷激情中文| 婷婷综合网在线| 亚洲高清在线| 九九色大香蕉| 久久丁香九| av高清无码| h在线看免费版在线看| 婷婷丁香亚洲色综合91| 免费观看的婷婷五月视频在线| 五月丁香好婷婷A片网| 俺也去婷婷五月天第五色| 97九色视频| 大香蕉视频婷| 亚洲成人无码专区| 日本欧美成人片AAAA| 99re这里| 色综合久久88色综合天天99| 久色激情| 久久伊人五月天| 这里只有免费的精品| 无码一区二区日韩| 色狠狠五月天| 久9热| 色色色色色五月丁香| 色情激情五月婷婷| 久久婷婷五月天大香蕉| 久热在线中文字幕色999舞| 国产这里只有精品| 五月婷六月| 1024国产| 婷婷色啪| 五月婷激情影院| 婷婷五月天伊人网| 曰日爽日日操| 这里只有精彩亚洲视频推荐| 99爱免费在线视频| 五月丁香综合啪啪対白| 丁香婷婷综合精品六月初| 五月婷中文字幕| 欧美婷婷九月| 超级碰 久久9| 婷色综合| 狠狠爱婷婷五月天| 99精品综合在线| 91碰免费视频| 久久5 9视频免费观看| 国产偷人爽久久久久久老妇APP| 综合五月婷婷| 欧美日韩一区二区三区四区| 色9999日韩国产| 五月丁香综合激情网| 激情五月丁香六月综合AVXXXX| 天天爱天天做天天操| 婷婷五月激情在线视频| 激情五月婷婷色| 五月婷婷狠狠干| 色五月婷婷啪啪五月| 日日噜狠狠色综合久久| 激情五月丁香激情综合网| 五月丁香综合伦理片| 五月婷婷就去色| 五月香蕉婷婷| 五月婷婷网久久| 丁香五月天婷婷久久综合| 激情婷婷综合| 亚洲天堂AAA| 人妻在线中文字幕久久| 天天射天天射一道本日本社区| 操日本人妻视频| www,色中色| 色婷婷影音| 深爱网深爱综合网| 婷婷中文字幕版| 99色一| 丁香五月婷婷成人网| 五月天伊人手机在线播放AV| 伊人五月丁香| 超碰1999| 五月天综合| 天天综合五月天| 久久丁香五月| 丁香色婷婷| 久久婷婷五月天| 日本五月婷婷| 1024日韩| 99燥99日| 国产首页在线| 狠狠色九月| 婷婷丁香综合在线| 婷婷第一页| 99久精品视频| 亚洲高清在线| 这里只有精品,日韩视频| 激情精品久久| 日在线V视频在线播放| 天天干,噜噜色,狠狠色| 狠狠五月天婷婷激情网。| 亚洲激情网站| 色香欲综合| 五月99久久| 婷婷操逼| 天天爽天天操| 久婷狼色诱惑在线| 亚洲免费电影2| 538任你爽视频不一样的| 五月丁香久久久久| 久久五月视频| 天天射综合网天天插| 性生活久久朋友人妻| 婷婷五月天第三页| AV成人在线播放| 丁香婷婷性爱| 天天干夜夜谢| 国产精品99久久久久久久女警 | 月色色综合婷婷网| 五月色色网| 日本女va| 99爱免费在线视频| 色99在线观看| 伊人久久婷婷| 欧美大片| 婷婷五月乱交换| 久久久久8888| 激情五月激情综合俺也去婷婷小说| 丁香亚洲婷婷五月| 久久99性爱| 五月婷婷色播| 99超级碰免费视频| 影音先锋秋秋五月婷婷| 艹天天射| 一起草AV| 天天插天天干天天舔| 影音先锋777xfplay色资源网站| 91青娱乐青青草| 激情五月天电影| 在线理论片| AⅤ在线播放网| 日韩色久| 婷婷丁香六月影视| 婷婷色正月| 色综合久久44| 成人国产欧美大片一区| 国产婷婷五月| 任你草| 男人综合网| 亚洲情欲| 能直接看的av网站| 日韩成人不卡| 五月婷婷草| 色婷婷av在线观看| 综合99在线| 欧美性爱5月天天天看| 色偷偷综合| 久久久免费精彩视频| 丁香六月婷婷基地| 亚洲成人在线综合| 精a品a视a频| 99热99热不卡| 99激情在线| 国产全是老熟女太爽了| 九月久久婷婷| 婷婷五月蜜桃成人桃色丁香| 六月 丁香 视频| 久久久久久久久久8888| 丁香五月天AV在线| 97碰碰在线看视频免费| 激情丁香五月激情婷婷| 五月天婷婷伊人| 免费做A爰片77777| 婷婷五月天综合AV| 99高级会所久久| 久久人妻久久| 色色com| 丁香五月天堂亚洲社区| 亚洲AV免费在线| 996热re视频精品视频这里| 中文字幕,综合,91| av国产精品| 久久的爱大香蕉| 丁香5月激情网| 色色色综合色| 五月婷婷色男女| 丁香五月激情在线| 九九色婷婷| 丁香狠狠操| 婷婷激情五月天激情在线| 人妻操逼视频| 激情久久久| 欧美激情伊人| 四色 爱 婷婷 精品 亚洲 五月天| 日本天天色| 图片区 小说区 区 亚洲五月| 四季AV综合网| 六月丁香成人| 另类小说色婷婷| 免费视频WWW在线观看网站| 日本久久超碰| 精久久色| 日日夜夜婷婷| 99久高清视频| 天天狠狠插| 九热视频在线精品15| 久久久天堂国产精品女人| 99操逼视频| 国产一二三四五六七八视频| 久久九九国产精品怡红院| 一级性感毛片| 婷婷激情六月综合| 9l视频自拍九色9l视频自拍九色9l社区| 五月J香蕉婷婷| 激情婷婷五月在线合集| 日本本土色网第一区| 5五月综合网亚洲| 超碰v| 91色噜噜狠狠狠狠色综合| 五月网网站| 日本三级日本三级99| 色色婷婷丁香五月天| 亚洲五月丁| 丁香五月激情婷婷| se色综合网| 五月丁香综合啪啪対白| 久草性爱| 婷婷干六月综合旧址| 草美女在线观看视频在线播放| 99啪99| 大香蕉久久视频久久视频 | 99成人网站| 中文字幕AV网址| 免费色婷婷| 无码一区二区日韩| 在线观看中文字幕亚洲| 丁香五月久久社区| 激情五月丁香在线观看直播| 五月激情啪啪| 大香蕉75线| 国产26uuu视频| 色色色色综合网| 亚州激情九月| WWW.桔色成人.COM| 婷婷五月激情综合| 96精品久久久久久久久| 六月丁香VA| 图片区 小说区 区 亚洲五月| 99久精品视频| 久草五月天| 国产在线激情视频| 九九热这里只有精品7| 激情五月天色播| 久久婷婷原创视频| 丁香狠狠| 26UUU精品一区二区| 狼友超碰| 亚洲婷婷免费| 91干网站| 丁香八月综合激情| 亚洲无码色| 久草热8精品视频在线观看| 99国产er热视频| 色婷操逼| 99五月婷| 天天夜夜爽| 六月色婷婷| 丁香 婷婷 激情 综合 五月| 色色五月天丁香| 婷婷五月天综合AV| 五月婷婷激情综合网| 五月婷婷 婷婷五月 一区二区 久久久 | 久re在线| 米奇影视五月天| 青草视频在线观看视频| 久碰视频| 色婷婷色99国产综合精品| 3p久久| 五月丁香六月婷婷网| 色五月美女| 国产精品国产VA片国产| 九九热超碰| 永久思思热在线| 久9视频| 91九色小视频| 国产精品色色| 色婷婷久久视屏| 操一操插一插| 99无码精品| 美女天天久久| 色色色热热热| 91精品久久久久久综合五月天| 五月丁香成人| 日本97在线视频| 99热免费观看| 一区二区传媒视频| 狠狠狠狠狠狠狠狠| 中文字幕av久久爽| 日韩精品二三区| 色激情网| 久热网在线视频| 欧美久久久中文字幕| 99国产性感视频| 婷婷五月,综合伊人| 亚洲久久婷婷| 91麻豆国产三级精品福利在线观看 | A久久| 综合激情伊人影视在线| 五月综合无码| 丁香 婷婷 激情 综合 五月| 直接看的av| 婷婷放心五日爱| 99热激情| 99re思思| 99热在线观看| 国产阿姨日皮艹逼内射视频| 国产亚洲精品久久久久久牛牛| A一级操| 日日干夜夜干| 丁香婷婷人妻综合网| 欧美顶级少妇做爰HD| 视色网在线播放| 8090在线影视少妇| 亚洲女婷婷五月基地综合久久久| 日韩黄色影院| 另类综合网| 婷婷激情五月天桃花网| 五月天综合在线观看| 日韩精品电影| 中文av网| 美欧成人视频| 日韩精品一区二区亚洲AV观看| 日本色色网站| 久操福利| 五月婷婷无码| 99久久9| 亚洲99激情| 人妻内射一区二区在线视频| 久久99这里只有精品视频| 成人五月天综合网| 五月天婷婷丁香社区| 色 噜噜 九月 婷婷| 久久这里只精品| 黄色片精品| 丁香五月性| 99er这里只有精品| 色99视频| 五月丁香六月婷婷a v| 日韩成人无码| 开心五月婷婷在线| 日韩不卡123| 怡红院一二三| 操逼巨乳91| 婷婷五月天黄色| 天天草人人摸| 天天干天天干天天干| 婷婷五月综合激情小说| 色八戒操婷婷| 色五月婷婷小说亚洲中文字幕组| AV动漫不卡无码免费| 色婷婷偷拍| 色婷婷久久| 99在线免费视频| 色婷五月| 2013AV天堂| 欧美人人操| 丁香六月色香蕉视频| 国产亚洲精品久久久久苍井松| www狠狠| 六月婷婷AV| 9色在线视频| 天天搞夜夜叫| 天天躁日日躁狠狠躁日日躁2022年5月9日| 天天爽天天摸| 久久精品综合色| 久机视频这只有精品| 美女要搞搞天天搞搞搞网站| 91九九九九九九| 免费观看大片视频 丁香婷婷 六月欧美| 中文字幕婷婷| 免费看欧美成人A片无码| 青青草原99热| 婷婷成人AV| 色丁香五月天| 精品国产人人爱人人| 在线播放成人网站| 操一操| 天堂综合久| 狠狠草狠狠草| 99re思思热这里| 国产精品成人网站| 色婷婷久久久| 久久er九九| 久久久久久9热不雅视频| 超碰91人人操| 99热国产国产| 五月婷婷综合天天操| 碰97久久| 99rewww| 最新婷婷五月丁香| 五月激情影院| 激情网第九色| 丁香五月狠狠在线观看| 免费视频无码| 五月天开心激情网色欲无码| 天堂久久丁香| 日本婷婷五月天| 国产片天天爽夜夜爽| 蜜桃婷婷丁香综合久久开心亚洲| 丁香婷婷深情五月亚洲| 日本久久99| 久草丁香婷婷1024| AV国产有码| 人妻九九九九| 婷婷五月丁香综合激情| 婷婷五月色网| 影音先锋女人av鲁色资源网小说免费 | 射琪琪| 亚洲色99综合天堂| 色色色com| 少妇人妻人伦A片| 99热综合在线观看| 99热在线99| 九月av在线| 精品色色| 丁香五月综合| PORNY九色9l自拍视频成人| 日韩成人电影AV| www.ppypp| 丁香婷婷六月天| 久久久久亚洲AV综合| 天堂综合久| 99热久久这里只有精品| 久艹久| 91婷色| 色青青视频| 大香蕉婷婷丁香| 国产成人精品一区二三区熟女在线 | 51XX午夜影福利| 成人网在线观看视频| 26.uuu丁香五月婷婷| 婷婷色香六月综合激情| 99精品超在线播放| 少妇性BBB搡BBB爽爽爽视頻| 26uuu国产| www.日本久久videos| 伊人网色婷婷五月天| 人人摸人人操人人爽| 亚洲噜色| 亚洲欧洲另类| 4399精品一区二区| 色五月婷婷网| 深爱综合网| 成人婷婷色五月天| 五月天激情啪啪| 777米奇影视第四色| 97色在线观看视频| 亚洲久久婷婷丁香五月天| 小泽玛利亚视频一区二区| 337p大胆噜噜噜噜噜91Av| 五月天桃色深爱网| 开心五月婷婷六月丁香| 非洲一级AV| 激情玖玖sh| 久久9视频欧美| 天天色综合网吨吧| 久这里只有精品99| 色 五月 天 婷婷 丁香 九月| 亚洲日韩一页精品发布| 激情四射婷婷| 久久欧洲综合网| 桃色Av色哟哟| 99九九热视频免费| 国产亚洲精品久久久久苍井松| 亚洲热久久| 青青操avbb| 五月婷婷色播| 99热在线极品极品| www.婷婷| 久热69| 婷婷五月天a| 五月天无码| 99热久97| 久久大香蕉丁香| 五月天狠狠| 色噜噜狠噜噜视频| 甈你aaaaa| 亚洲国产婷婷色五月| 91人无码久久久久久| 色噜噜狠狠色综无码久久合欧美| 任你爽精品免费视频6| 思思精品热在线| www.夜夜夜| 亚州色婷婷| 91综合色噜噜| 久久综合久色欧美综合狠狠| 91五月天| 可以免费观看的AV| 另类图片婷婷五月天| 色婷婷五月天天天天天| 婷婷网影院| 丁香狠狠色婷婷久久无码视频| 国产成人综合网| 欧美色色色色色色| 五月婷婷丁香狠狠撸久久| 色色日韩| 91要啪| 欧美六月婷婷| 国产日产亚洲系列最新| 五月天桃色深爱网| 婷婷婷久久久| 婷婷五月丁香伊人| 白天AV月月| 另类激情五月天。| 久久在线大香蕉| 在线综合亚洲欧美65| 六月色婷婷| 狠狠色噜噜狠狠狠狠综合| 久久婷婷综合五月趴| 婷婷五月天亚洲激情戏精品| 99国产er热视频| 亚洲午夜视频| 99热全是精品| 六月婷婷天堂| 精品一二三区久久AAA片| 激情综合五| 99久.| 无人精品在线视频| 五月丁香婷庭在线| 日本激情ⅩXX免费视频| 亚洲网视屏| 久久色五月天| 免费啪啪啪网站| 久久精品凹凸分类| 久久性爱视频| 久久激情网| 91欧美日韩综合| 激情五月婷婷在线观看| 天天谢天天操| 五月天激情婷婷丁香| 激情综合网,婷婷| 秋霞电影一级黄| 丁香五月天天| 99re久热| 久久久宗合视频88| 国产精品第一国产精品| 综合色播| 在线99热| 97色在线观看视频| 色99色| 91婷婷五月天嫩女| 久久免费婷婷视频| 婷婷五月天成人基地| 成人网站免费sxj| 激情婷婷五月女| 免费观看亚洲AV片| 182TV亚洲| 1区2区视频| 91视频久久久| 五月婷婷狠狠久久| 婷婷干| 香蕉影院色| 91夫妻视频| 大伊香蕉精品视频在线| 欧洲第一无人区观看| 女人天堂AV| 99热这里只有精品9| 久久久www| 五月精品| 99热综合网| 天天干天天干天天操| 99热费观看| 久久人妻视步| 五月天色婷婷网| 国产资源91在线| 丁香婷婷十月| 亚洲综合狠狠艹| 五月婷婷激情中心| 丁香婷婷伊人| 五月婷婷啪啪网| 欧美日本一区二区三区| 99爱免费在线视频| 色天天综合成人网| 亚洲五月天婷婷综合| 热99视频精品| 免费精品66| 亚洲丁香五月深爱五月| 激情六月五月婷婷综合网| 婷婷色五月天第7色| 狠狠久久婷五月综合色| 日日爽日日操| 6080av| 激情综合网亚洲色图| 亚洲综合婷婷五月天| 五月WWW| 亚洲日韩26uuu| 五月天婷婷影院影院| 思思精品久久艹| 亚洲AAAA网| 婷婷五月天深爱| 夜夜夜叫天天天做| 日本激情五月天‘| 开心五月天激情网站| 婷婷五月天黄色小说| 日韩无码色色| 色婷婷六月| 五月丁香六月婷婷色情| 激情綜合網址| 婷婷五月天基地| 久9久成人精品视频| 丁香六月激情| 91丨九色丨国产打屁股| 伊人婷婷五月天| 丁香五月av| 思思9久久| 五月婷护士| 色五月婷婷影视| 色播五月综合网| 婷婷五月中文字幕| 婷婷五月丁香91| 婷婷月综合| 97操在线视频| 99热只有精品在线播放| 操操操www.com| www.十八禁不禁AV.com| 丁香五月天天高清在线| 日韩AAAAAAAAAAA片| 91操在线视频| 开心五月深爱五月| 国产成人精品一区二三区熟女在线 | 久久久人妻| 97在线观看| 国产特黄色精品一区二区三区精品无广告| 蜜臀99久久精品久久久久| 色区域网站视频| 大香蕉精品视频| 久久永久网址| AV五月丁香| A一级操| 丁香花五月天| 久色五月婷婷综合| 丁香色五月婷婷91桃色| 色狠狠色噜噜AV天堂五区消防| 婷婷五月天天爽| 91操操| 亚洲精品无码一区二区| 婷婷综合九色伊人| 狠狠色九月| 97操碰视频| 丁香亭亭久久| 婷婷六月丁香激情综合| 精品少妇蜜臀91| 午夜丁香五月天综合| 亚洲成人中心| 天天插天天爽| 99re热视频这里只精品| 九九色黄色| 99久精品视频| 99色在线视频观看| 五月天伊人日日噜影片AV| 热99只有里视频| 这里只有精品免费视频| 超碰大香蕉网| 五月丁香综合| 婷婷香蕉香| 激情爱爱网站| 激情 五月 婷婷 丁香| 丁香五月久久综合| 99热这里只有精品在线观看| 97碰超级人人看| 婷婷久久五月天| 丁香五月婷婷操逼| 98色花堂98t.R| 五月天婷婷一起草| 久久机热这里只有精品| 天天干天天拍| av在线资源| 久久婷婷一级片| 99.N在线视频| 五月婷久久| 日批在线看| 深爱五月婷婷| 日日.c| 98国产精品综合一区二区三区 | 蜜臀综合久草| 色婷婷激情四射视频| 天天爽爽日日做做| 婷婷久久六月天| 日日夜夜久| 丁香九月综合| 五月天婷婷基地| 美女被肏网站在线看| 99日本黄站| caopeng97日韩| 天天操婷婷| 秋霞性爱AV| 伊人五月天| 久久99日本精品视频免费观看| 色婷婷色99国产综合精品| 中文aV网| 日本爆乳片手机在线播放| 超碰人妻在线| 久久性都花花世界成人免费视频| 激情AV在线| 激情婷婷丁香五月| www.色婷婷.com| 97干在线视频| 操b视频在线观看一区二区| 五月天色图| 五月丁香婷婷爱激情综合网| 丁香婷婷成人在线播放| 网色99| 欧美婷婷色| 99视频35精品视频在线观看| 丁香五月婷婷六月婷| 久机视频这只有精品| 五月丁香六月激情在线| 丁香五月婷婷国产在线| 操人无码| 五月婷导航| 99在线观看| 操日本99| 99爱爱| 五婷婷综合网| 丁香五月婷婷亚洲激情四射| 婷婷激情小说网| 激情亚洲网| 九九人人操| 青青草五月天| 99热这里只有精品手机在线观看| 狠狠干婷婷| 亚洲日韩乱码一区二区三区四区 | 激情五月婷婷免费视频| 99精品在这里| 六月丁香啪啪| 婷婷五月天中文字幕| 精品九九视频在线观看| 欧美色色色色色| 欧美日韩成人综合9| 婷婷丁香五月综合| 亚洲精品午夜国产va久久成人| 色播五月天激情| 99久久五月丁香野外| 国产丁香五月天婷婷| 粉嫩av蜜桃av蜜臀av| 九色成人AV在线| 五月丁香六月综合情在线观看| 婷婷五月天第三页| 欧美丰满熟妇BBB久久久| 五月婷婷深深爱| 日日做夜夜爱| 狠狠干,狠狠操| 99视频在线啪| 婷婷五月天视频在线观看| 美日韩成人| 人碰91| 日韩五月天婷婷| 婷婷久久亚洲| 99热观看| 伊人超碰| 亚洲中文字幕AV| 牛牛色av| 色五月婷婷开心| 五月婷激情| www.AV在线| 俺也去综合| 色色a| 色色热日| 99激情视频热| 色婷婷欧美| 五月丁香婷婷综合网色欲| 综合久色五月| 色啪网| 99内射视频| 五月WWW| 亚洲操人| 8区视频在线| 五月天激情婷婷久久| 人妻熟人中文字幕一区二区 | 激情伊人网| 这里只有精品久| 久久激情五月| 色伊人婷婷| 色五月AV|