免费国产精品自在自线-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
返回資訊列表
色婷婷六月开心中文字| 丁香五月欧美激情| 色 免费网站视频| 日本精品人妻无码77777| SESE无码AV| 激情五月综合网| 大香蕉久久视频久久视频| 一级性爱视频| 婷婷五月天成人基地| 丁香九月婷婷综合| 激情九月天天天天婷婷| 欧美碰碰碰| 高清无码入口| 亚洲操人| 99热婷婷| 五月丁香激情四射| 婷婷五月,偷窥偷拍网| 5月婷婷六月丁香| 色婷婷影| 久Se视频在线观看| 色情婷婷。| 91人无码久久久久久| 99热99色| 99热综合| 屁股翘好撅高迎合跪趴| 亚洲妇女熟BBW| 色婷婷九月| 狠狠高潮精品亚洲1| 蜘蛛女免费观看完整版高清电影| 99re最新地址视频| 久久久久er热| 婷婷综合亚洲| 婷婷综合久久| 亚洲精品视频在线播放| 五月综亚洲| 九九激情网| www.久久爱.com| 玖玖玖婷婷婷| 99在线视频免费| 任你弄在线视频免费| 欧美交换配乱吟粗大25P| 五月丁香啪啪婷婷| 激情五月婷婷网| 久久香蕉丁香| 综合婷婷| 国自产拍偷拍精品啪啪一区二区| 激情五月天婷婷播播久久综合91 | 亚洲色婷婷久久99精品91| 久久R激情| 免费做A爰片77777| 五月丁香六月停停停| 99久| 色欧美日| 激情六| 婷婷六月色| 五月婷婷天| 综合网啪| 五月天婷婷基地| 天天草天天爽| jiujiuxiangjiaowang| 中文字幕精品无码一区二区| 久久九九经典| 婷久久| 色综合久久久久| 五月婷婷影院| 青娱乐美女福利视频美臀| 亚洲人人96@| 开心五月激情| 综合一本道| 国产精品VA在线| 九色无码| 在线看的免费网站| 秋霞日本免费毛片A片| 激情文学第四色婷婷丁香五月| 亚洲成人av在线| 嫩草AV久久伊人妇女超级A| 国产视频久色| 婷婷六月色| 久久机热/这里只有精品| 成人视频网| ady狠狠入| 99激情在线| 成人久久天天x资源站| 五月天婷婷激情春色小说| 日韩精品二三区| 五月婷婷偷拍| 99网址在线观看| 久一网站| 一本综合丁香日日狠狠色| 在线可以看的av网址| 色无码| 色婷婷久久| 欧洲色| 一区操| 久久婷五月| 天天操夜夜爽| 婷婷色婷婷| 九九色黄色| 91精品久久久久久久| 狠狠色丁婷婷日日,伊人激情综合网| 欧洲激情精品婷婷| 日日艹思思热| www.99视频| 黄色片avv| 色狠狠色综合久久久绯色AⅤ影视| 人人干人人干骚美女| 天天日天天干天天插天天射| 亚洲精品色| 99久久天堂婷婷| 人妻22p| 五月婷六月天| 狠狠操天天干| 久久这里只有精彩| 99热网站| 婷婷五月情| 欧美激情-区二区三区| 丁香婷婷基地| 九月av| 五月婷婷六月激情网| 99九九在线| 九九综合网| 五月婷婷久久综合| 久久久亚洲精品一区二区三区浴池| 日本99视频精品免费播放| 伍月激情天| 亚洲精品国产setv| 久久伦乱| www激情| 小骚穴电影| 亚洲色综合性| 波多婷婷久久| 99热久久这里只有精品2010| 色欲五月丁香| 99热成人在线观看| 91综合网| 亚洲天天| 第四色网婷婷| 五月天婷婷綜合院| WWW久久久| 五月天开心婷婷激情网站| 色色欧美。| 激情5月婷婷狠狠干| 开心激情综合| 中文不卡一二三区| 99热草草| 婷婷五月无码| 婷婷色吧| 亚洲天堂色色| 婷婷五六日| 国产成人片| 久热2025无码| 九久久九精品视频| 人人色婷婷| 亚洲AV日韩AV永久无码网站| 欧美影院| 2014天天爽| 思思热精品在线| 人人爱操| 少妇出轨做爰高潮A片| 97激情五月天| 欧美超碰亚洲| 色色射| 五月6香色婷婷视频| 91超碰人人操| 激情网五月婷婷| 99操网站| 久久五月综合| 丁香五月天无码| 伊人久久丁香狠狠婷婷综合香蕉| 狠狠色综合精品视频在线| 97在线天堂| 丁香五月亚洲| 激情五月婷婷| 91碰免费视频| 四色永久成人网站| 五月婷婷婷自由综合| 乱乱av| 久久人妻www| 超碰在线超碰| 亚洲情综合五月天| 性天堂久久| 色综合久久天天综合网| 99久久婷婷国产综合精品| 26uuu亚洲欧美日本| 性色av大香综合| 婷婷99狠狠躁天天| 狠狠色综合网站| 蜜桃婷婷狠狠久久综合| 丁香六月婷| 欧洲综合色| 综合玖玖偷拍| 香蕉久久国产AV一区二区| 日本社区五月天激情| 中文字幕成| 婷婷五月天综合在线| 日韩婷婷五月天| 97丁香视频| 六月丁香激情网| 激情5月天天天| 久久9精品视频| 天天爽天天爽| 亚洲无线视频| 夜丁香综合| 99色色热| 特黄三级片| 琪琪布丁香社区激情五月天| 人人干av| 五月丁香婷草| 99这里| 欧美噜噜久久久XXX| 玖玖玖婷婷婷| WWW色五月| 综激情网| 激情欧美五月丁香| 天天天摸夜夜夜玩| 五月婷婷激情色情网| 中文字幕av在线播放| 无码人妻精品一区二区蜜桃色欲| 99热在线播放| www.婷婷五月天.com| 久久视频九九视频| 五月天天天开心激情网| 99开心五月五月丁香激情| 五月天色软件| 九九日伊人| 五月丁香香蕉| 色色射| 五月婷婷第四色| 色婷婷综合五月| 婷婷丁香宗合888| 五月婷视频| 九九热在线精品| 婷婷五月六月丁香| 五月婷婷在线视频观看| 色色九九五月天| 无码AV久久久久久久久| 97福利视频| 丁香五月首页| 久久亚洲婷婷| 色吧五月婷婷| 99热这里| 亚洲V国产V欧美V久久久久久| 丁香五月网址| 9色在线| 久久色亭亭五月天| 成人av在线网址| WWW,五月| 亚洲午夜一区二区| 成人av在线网站| 色婷婷综合久久久久| 香港九九六区八区99| 亚洲情综合五月天| 久久久精品婷婷五月天| 91碰操| www久久久久久久久久久久久久久久久| 色婷婷综合网站| 丁香五月大香蕉| 99热日韩| 色色色综合网| 综合av在线| 青柠影视免费高清电视剧| 91操人视频| 99热综合网| 天天色天天日| 99婷婷狠狠成为人免费视频| 极品少妇婷婷五月| 色欧美影院| 婷婷九月狠狠色| 夜夜爱影院| 97色婷婷在线观看| 婷婷色激情网| 婷婷涩五月天综合| 九九热免费视频| 婷婷永久在线| 色婷婷丁香五月在线| 97色五月天| 激情激情激情网| 夜丁香五月婷婷| 天天草比天天爽| 五月天成人综合| 综合AV在线| 六月丁香啪啪| 亚州男人天堂婷婷五月| 一起草无码| 九九人妻福利| 天天久综合| 久9无码视频| 色色色综合网| 俺去婷婷 丁香| 91成人视频| 毛片网站谁有| 亚洲日韩欧美综合VA| 99视频在线播放大全| 性色五月天| 久久婷婷丁香花综合网| 久久人人超| 婷婷五月欧美综合| 色婷婷五月在线| 欧美大肥婆大肥BBBBB| 在线免费观看激情视频| 青草性爱视频| 黄网在线观看免费| avh片在线观看| 玖玖爱资源站| 丁香婷婷视频| 99热这里| 欧美一级色| 五月婷婷婷婷婷| 成人网站免费在线播放| 五月激情综合网婷婷| 欧美 日韩 成人 在线| 婷婷五月天少妇| 五月激情天| 日韩av一区二区在线/日产精品久久久| 婷久久综合| 国产色色在线| 婷婷九月激情| 五月天婷婷久草丁香| 2050人人操免费工开爱| 婷婷色丁香五月| 玖玖色综合色| 色播播之激情五月婷婷| 精品久久99码| 99啪啪网| 色色com| 粉嫩AV久久一区二区三区| 伊人9在线| 天天情色五月天| 99热九九热| 丁香 亚洲 久久| 六月丁香婷婷开心综合基地| 91五月天| 狠狠干天天内射| 久热亚洲| WWW.久久久久久久| 国产九九一区二区三区| 亚洲无码www| 亚洲色vA| 九九九激情网| 色婷婷视频综合| 熟妇内谢69XXXXXA片| 久久新地址| 深爱激情五月天| 依人大香蕉在钱1| 天天做天天爰天天爽天天无遮挡| www.99热| 色播五月丁香婷婷| 国产AV熟妇人震精品一品二区| 色噜噜综合网| 亚洲激情综合| 色婷婷五月天激情久久| 欧美大片免费播放器| 婷婷五月天激情四射| 久99视频在线观看| 开心五月婷婷激情| 激情综合五月| 九九热视频免费观看| 婷婷五月天福利| 丁香五月网站| 五月综合视频| 五月丁香久久激情网| 国产日韩欧美| 五月好婷婷| 五月天婷婷网站| 丁香5月婷婷| 热日韩欧美| 亚洲婷婷激情888精品久| 日韩AV免费电影在线播放| 丁香八月综合激情| 色噜噜狠狠狠狠色综合久欧美| 色婷婷激情五月天在线观看| 色色九区| 久久色婷婷| 99色天堂| 婷婷五月花| 综合热无码| 色婷婷丁香AV综合| 91超碰九色| 五月丁香美女视频| 亚洲精品一二三| 五月婷婷丁香在线视频| 大香蕉伊人爱在线| 激情五月天婷婷| 五月婷婷丁香五月婷婷| 国产精品视频免费看| 99视频久久| 婷婷久久五月| 亚洲欧洲一二| 激情五月天色色网| 五月婷婷色激情| 丁香五月停停基地| 蜜桃人妻无码AV天堂三区 | 一区二区中文字幕| AV操一操| 激情久久久| 五月天婷婷自拍图片在线观看| 国产伦亲子伦亲子视频观看| 色五月激情网| 丁香开心深爱| 亚洲婷婷婷| 狠狠综合网| 99热这里只有精品无码| 色色色综合网| 69久热| 伊人久久99| 伊人丁香婷婷东京| 97碰啪啪| 婷婷丁香五月天大香蕉| 99这里只有精品| 六月丁香激情综合| 丁香五月网站| 丁香色影院| 色婷婷成人做爰A片免费看网站| 日韩在线五月天婷婷| 久久综合爱| 超碰在线50| 99久久婷婷五月综合| www.国产亚洲69ty.久久久久久久久久久久| 久久9情免费| 性爱网五月天| 婷婷五月天激情文学| 99热这里只有精品26| 婷婷五月成人社区| 亚洲无AV在线中文字幕| 99热在线只有精品| 九色啦蜜臀| 黄色99网| 五月天婷综合网站| 91超级碰| 99ri久久| 99re免费在线视频| 97AV人人插人人操| 色呦呦在线| 涩综合婷婷| 五月婷婷综合丁香视频| 五月天社区狠狠| 婷婷第六色| 99热免费精品| 久久综合婷婷五月| 操久久精| 久久嘟嘟丁香| 亚洲综合成人网站| 婷婷久久在线| 婷婷色一二三区波多野结衣| 五月丁香 狠狠爱| 无码人妻少妇色欲AV一区二区| 欧美激情综合色综合啪啪五月| 国产玖玖资源| 99性视频| 天天干夜夜想| 日韩色色视频| 91丨九色丨熟女丰满| 精品人妻一区二区三区四区不卡在| 综合激情网| 五月天丁香啪啪综合| 99热主页日本| 亚洲综合在线视频| 九九家庭影院| 丁香五月婷婷色五月| 婷婷丁香六月五月天| 国产韩日亚洲美州欧亚综合在线| 伊人五月天综合网| 婷婷五月天在线综合导航| 第四色婷婷日本| 日韩成人网址| 婷婷五月在线综合| 久久久婷丁香五月| 免费视频这里只有精品| 这里只有精品在线观看视频| 色噜噜狠狠色综合日日| 久久婷婷五月综合色奶水99啪| 天天综合精品| 色五月婷婷久久| 久久99网站| 亚洲欧洲另类| 在线观看国产高清视频免费网站| WW婷婷五月天com| 亚洲中文字幕AV在线| 九月婷婷在线视频| 爱狠射| 国产AV不卡福利| 五月丁香激情综合啪啪| 六月丁香啪啪| 日日射天天射| 天天干天天做| 激情综合一| www.婷婷五月.com| 天天操B| 成人av在线网址| 五月天婷婷成人网| 婷婷导航| 国产国产乱老熟女视频网站97| 天天色情站| 国产性av| 亚洲午夜电影| 色久婷婷网| 五月丁香久久丝袜啪啪| 久热99热| 无码日本精品XXXXXXXXX| 天天碰夜夜操| 久久艹99| 亚洲日韩26uuu| 久久ab| 五月丁香香蕉| 高清免费在线视频| 婷婷久久综合| 婷婷激情五月综合| 99九九精品| 伊人天堂婷婷| 中文字幕丰满乱孑伦无码专区| 狠狠五月天婷婷激情网。| 五月天天天天天天天天天天天婷婷婷| 天天日天天色| 日本一级大片| 国产26uuu视频| 美国十月色婷婷在线观看| 激情丁香五月婷婷| 亚洲色婷婷五月天| 色五月天成人在线| 日本91在线| 久久中文网| 日韩色五月| 五月涩涩网| 人妻久久婷婷| 韩国97天堂| WWW.天天日| 丁香五月区| 99ri精品| 91人人爽狠狠狠| 成人精品99| 色99色| www.99热在线| 丁香九月婷婷色| 久久怕怕视频| 欧美在线看| 天天爽日日爽夜夜爽| 能看的av网站| 超碰二区| 91精品久久久久、久五月天| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 久久国产精品乱子伦_靑青草…| 五月天桃色深爱网| 久久性都花花世界成人免费视频 | 五月丁香六月婷综合成人综合| 9热久久| 人人操人av| 97人人超| 色五月大香蕉| 色情五月婷婷| 日本色图综合| www.五月天色色.com| ww超碰在线| 五月天婷婷色播在线网| 99精品偷自拍| 五月丁香WWW| 色婷网| 日本三级中国三级99人妇网站| 五月综合在线| 亚洲熟女乱色综合亚洲网站| 狠狠插狠狠操| 色色婷婷色色| 国产午夜精品一区二区| 99九九玖玖| 99综合网| 黄网免费观看| 九九热超碰| 六月激情婷婷| 婷婷久久五月| 风流少妇A片一区二区蜜桃| 五夜婷婷| 五月丁香在线观看| 这里只有精品,日韩视频| 色色色网站| 五月天天天操天天爽夜夜操| 99热色精品| 99热 在线观看| 亚洲人人操| 少妇激情五月婷婷| 色综合久久久无码中文字幕999| 天天操天天操| 色综合99色| 天天噜噜| 亚洲成人一区| 疯狂做受XXXX高潮A片动画| 91久女| 天堂草在线观看| 色 五月 天 婷婷 丁香 九月| 五月婷婷之婷婷| 丁香五月婷婷偷拍| 精品人妻伦一二三区久| 天天色综合色| 一区无码| 91色婷婷综合久久中文字幕二区| 色婷婷婷av| 国产精品第一国产精品| 99日韩网站| 99小视频在线观看| 五月天.com| 丁香五月婷婷姐| 日本三级99人妇网站| 五月丁香六月婷婷激情视频在线观看免费| 碰碰女| 人妻AV中文系列| 天天摸人人摸| 久久五月视频| 亚洲免费综合一区| 天天操加勒比| 777精品成人a v久久| 久久网址99热| 激情综合久久| 五月天啪啪啪| 思思热99er在线视频| 亚洲九九99精品视频在线播放| 五月丁香六月婷婷激情网| 可以免费观看的av网址| 香蕉曰比| 99热九九热| 日日夜夜综合| 深爱婷婷基地| 国内久久亭亭| 国自产拍偷拍精品啪啪一区二区| 色五月婷婷大香蕉| 日本熟女一区二区| 婷婷丁香社区网| 碰人人97| 成AV人片一区二区三区久久| 婷婷在线播放| 这里只有精品视频在线看| 成人在线精品| 9999热精品| 大香蕉伊人久久| 亚洲色另类| 婷婷成人五月天一区| 99日本在线| 久9热在线免费观看| 99精品网| 五月天激情久久| 婷婷综合在线观看视频| 婷婷五月激情的图片| 久热伊人9| 伊人香大香蕉视频| 激情丁香五月婷婷| 五月色网| 亚洲午夜电影| 色婷婷丁香五月天在线观看| 久久这里有精品99| 丁香五月瑟瑟| 久久久人妻久久久| 五月婷婷啪啪啪| 日本三级片片| 变态另类色图 | www色婷婷| 亚洲av成人在线| 综合图片色色| 久久六月综合| 五月丁六月香| 日日狠狠久久偷偷四色综合免费| 深爱激情小说五月婷婷| 天天爽天天爽天天爽天天爽天天爽| 五月丁香自拍| 超碰在线超碰| www.sebowuyue| 五月天丁香花婷婷| 狠狠 久久| 国产九月婷婷| 抽插特写| 五月天大香蕉视频| 月丁香久久久| 色色丁香色五月| 婷婷五月欧美| 丁香五月WWW| 亚州精品成人片| 国产综合A片| 9色小视频在线观看| 色狠狠婷婷| 影音 五月 婷婷 久久| 国产偷人爽久久久久久老妇APP| 五月天婷婷小说| 日本欧美成人片AAAA| 亚洲乱码日产精品BD在线观看| AV九九| 99网| 九九热内射| 欧美激情-区二区三区| 岛国午夜视频| 99热在线观看精品| 久久网站免费亚洲| 色婷婷五月天天天做| 亚洲十月婷婷综合| 婷婷五月天成人小说| 久久这里只精品| 91免费看片| 九九热视频精品| www.婷婷六月天| 99视频| 久久综合香蕉国产国产蜜臀AV| 久久婷婷五| 精品99在线| 久去色色| 五月丁香六月激情啪| 色久综合| 久99久视频| 婷婷五月天 丁香五月天 裸体| 青青999| 99ri国产| 思思热热久久| enecarbon-materials.com污K127封锁请涟系@wip1688 | 99精品视频在线观看| 日本人人超碰| 色欲久久久久久综合网综合网| 色婷婷丁香五月天| 99热这里有精品2| 激情婷婷五月天| 五月丁香激情综合网| 日韩欧美成人一区二区三区| 综合一区二区三区| 天天干狠狠操| 五月婷婷丁香五月婷婷丁香| 97五月天| 99丁香五月婷婷在线| 伊人婷婷青青cao| 九九机热| 人人干人人看| 九九热99精品| 插插插丁香五月婷婷| 丁香五月婷中字幕| 操91| 99狠狠| 亚洲99在线| 67194成I人在线观看线路1| 91精品激情9| 色欲色天天香综合| 婷婷五月天激情在线| 99视频只有精品| 92久久久| 婷婷丁香五另类网站| 欧美性猛交99久久久99| 婷婷欠久少妇| 开心久久五月天| 99激情| 久久九九思思| 国产日韩欧美性生活| 91凹凸在线| 香蕉久久五月| 亚洲综合丁香婷婷六月天| 国产综合色婷婷精品久久| 九九精品9| 五月天色婷婷激情综合| 久久久大香蕉| 久久99精品久久久| 丁香五月,激情五月,深爱五月| 亚洲国产99| 热久国产| 激情五月婷婷在线观看| 1024欧美看片| 热99这里只有精品视频| 深爱激情五月天| 丁香啪啪| 五月丁香婷中文| 97人妻碰碰碰久久| 五月天最新网| 丁香五月天亚洲综合| 日逼免费视频 | 国产婷婷五月| 五月婷婷婷婷| 亚洲中文AV网站| 久久九九99亚洲国产久精综合| 九月婷婷久久| 丁香五月婷婷六月婷婷| www.婷婷五月| 影音先锋噜一噜| 婷婷五月电影| 人人97碰| 五月停亭六月,六月停亭的英语 | 婷婷激情社区| 日本三级中国三级99人妇网站| 久久看婷婷| 99热99美国在线观看| www.激情五月| 久操97| 激情性爱五月| 97在线精品视频| 欧洲毛片基地c区| 97碰碰视频在线观看| 五月丁香成人| 久久五月综合| 精品人妻伦一二三区久久| 亚洲综合在线伊人婷| 久久精品这里只有精品免费首页| 丁香久久| 第九色区av天堂| 五月丁香色五月| 亚洲午夜成人av电影网| 久久久久久丁香五月| 日本道久久91| 五月丁香亭亭| 99啪啪视频| 色色婷婷丁香| 先锋av性爱成人电影| 日本道久久91| 噜噜操操| 亚洲综合激情五月天婷婷| 色99在线| 久久成人天| 一起草aV| 99精在线| 丁香五月天激情综合网| 激情性爱婷婷| 五月婷网| 激情综合色五月六月婷婷| 精品9久| 五月激情天| 色婷婷五月天中文字幕| 夜夜操加勒比| 久久这里有精品| 狠狠色综合网| av免费在线看不卡无毒| 五月丁香婷婷综合网| 九月婷婷久久久| 大地资源色婷婷视频在线| 人妻久久久久久久久久久| 激情人妻综合| 欧美性色A片免费免费观看的| 俺也去在线视频| 丁香大香蕉| 97干干干丁香| 4399亚洲视频| 五月丁香色播| 91人人爽狠狠狠| 色色网站毛片| 欧美 日韩 成人 在线| 狠狠va| 亚洲AV第二区国产精品| 免费精品99| 久久国产色| 日韩 欧美 国产 一区 二区| 九色porny在线观看激情四射| www.久久爱| 九九热视频思思| 五月天婷婷色色| 操碰99在线视频观看| 思思热在线播放| 深夜激情网| 婷婷基地成人五月天| 成人人操| 亚洲三A| 色婷婷影院| 色亚洲欧洲| 亚洲色激婷| 久久色五月| 香蕉曰比| 欧美三级A做爰在线观看| 99久超碰| 亚美欧色影院| 久久午夜理论| 婷婷五月天最新综合你懂的| 久久激情五月网| 九九九激情网| 婷婷在线播放| 五月天婷婷在线AN| 影音先锋天天日| 亚洲丁香五月| 婷婷五六日| 97在线视频观看| 激情五月色婷婷| 五月丁香六月停停停| 成人做爰高潮A片免费视频| 97精品在线| 五月天综合视频网| 久久免费视频62| 婷婷丁香五月激情图片| 六月婷婷深深爱| 久久婷婷网站| 色五月婷婷综合在线| 婷婷丁香综合在线| 国产性爱大片久久| 色色婷婷综合| 高潮毛片又色又爽免费| 97婷婷色| www.色五月| 97色色综合| 超碰成人免费| 亚洲精品视频在线播放| 任你爽精品免费视频6| 亚洲五月天另类小说图片| 天天色,天天日,天天做| 99性爱精品| 日日夜夜爽爽| 五月婷婷九月婷婷九月婷婷| 99re思思精品在线观看| 丁香五月天激情小说| 激情纯色婷婷五月天在线不卡视频| 婷婷激情五月天网站| AV激情五月| 美女天天久久| 亚洲激情淫网| 五月亭亭六月激情| 插插五月天| 99re思思精品在线观看| 五月激情丁香| 99精品视频免费| 婷婷综合激情| 97色在线观看视频| 99自拍视频在线| 人妻久久久久久| 91久久久久久| 91夫妻视频| 天天日P天天射P| 人人操 色| 五月天婷婷香蕉狠狠超碰综合| 日本啪啪网| 影音先锋色色色资源色资源色| 天天开心婷婷丁香五月| 亚洲激情五月婷婷日日| 五月WWW| 人人爽天天爽| 亚洲中文字幕AV| AA丁香综合激情| 中字幕视频在线永久在线观看免费| 亚洲乱码日产精品BD| 婷婷九月久久| 色呦呦美女| 丁香婷婷精品视频| 操嫩逼电影| 国产在这里只有精品| 九九热99视频| 色婷婷小说| 亚洲激情六月| 五月天激情图片| 国产视频久色| 色五婷婷开心缴| 色综合久久久久| http:色情日本com| 亚洲综合成人网站| 99免费视频久久| 射久久丁香五月| 激情六月天婷婷| 最近韩国日本免费高清观看| 狠狠色婷婷色| 亚洲小视频免费观看| 综合激情深爱| 婷婷丁香色五月| 色欲色欲久久宗合网| 玖玖午夜视频| 婷婷五月激情片| 亚洲激情综合| 少妇被躁爽到高潮无码文| 狠狠色噜噜色狠狠狠综合色| 色婷婷av在线观看| 婷婷五点亚洲| 狠狠操天天干| 激情婷婷五月天丁香| 99热这里只有99| 五月天综合影院| 久久狠狠干| 91九色成人原创视频| 玖月婷婷爱丁香| 99精品热| 第四色在线观看| 久久九九@| 婷婷亚洲在线| 久久精品人妻| 久9精品| 婷婷五月色网| 婷婷五月激情小说| 五月婷婷九九热| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 婷婷国产五月天17c| 色五月xxx| 欧美日本黄色| 丁香五月婷婷国产在线| 九九视频这里只有精品在线播放 | 色屌丝中文字幕| 日韩精品电影| 色五月天在线| 91久久久久久久| 玖玖婷婷综合| 欧美人妻一区二区| 亚洲精品无码99热| 天天婷婷综合| 国産精品| 欧美啪啪五月天| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 中文AV网站| 久久99人人| 亚洲激情五月婷婷日日| 久久综合婷婷| 亚洲无码yw| 久久久久人妻精选| 日本欧美成人片AAAA| 婷婷五月丁香av网站| A片一曲| 丁香六月婷婷综合欧美| 五月激情婷婷在线| OYIWbGcPu8H| 婷婷五月天激情综合深爱| 国产亚洲色婷婷久久99精品91| 91精品无码| 99操免费视频| 91chinese 在线| 五月综合婷婷五月| 97sese婷婷| 激情五月丁香六月| 色婷婷亚洲综合天堂| 九九久久综合网站| 91久久日日| 亚洲中文乱字字幕线在永久| 538在线精品| 午夜爱爱爱成人| 成人午夜天| 六月丁香婷婷开心综合基地| 色五月激情五月| 亚洲五月天综合| 96精品成人无码A片观看金桔| 婷婷丁香五| 亚洲成av人影院| 五月丁香久久综合精品| 国产精产国品一二三在观看| 91精品熟女| 欧美激情性做爰免费视频| 五月久久噜噜| 桃色成人网| 俺去啦综合网| 婷婷久久在线| 人妻aV在线| 色激情综合| 99爱爱| 噜噜噜色噜噜| 久久五月婷综合网| 97欧美在线| 九九香蕉网| 五月天婷婷综合网| 丁香五月 六月婷婷首页| 婷婷五月综合社区在线| 色五月婷婷亚洲最大| 日本色图综合| 天天天天干| 九九爱看亚洲| 伊人久久大香线蕉AV最新午夜| 五月天激情四射网站| 色婷婷综合网| 最新无毒无码AV| 亚洲精品永久久久久久| 久久99婷婷| 97色吧| 丁香六月激情国产| 97精品在线| 性一交一乱一交A片久| 99热这里只有在线| 日本97在线视频| 九九黄色网| 99热这里只有精品18| 婷婷情色五月天| 大地9中文在线观看免费高清| 激情五月天激情综合网| 97资源欧美日韩大香蕉超碰一区| 99欧美| 婷婷六月丁香五月| 久久色在线视频| 婷婷丁香精品视频在线观看| 婷婷五月激情欧美| 丁香五月激情站| 国产午夜精品一区二区| 99久热| 四色五月婷婷| 色色99色色| 五月花激情网| 婷婷五月天福利| 停婷丁五月在线| 国产欧美日韩综合精品一区二区| 真实亲子乱子伦高清在线观看| 九九精品网站| 一级无码作爱片| 丁香久久| 五月天婷婷色色网| 亚洲国产精品成人va在线观看| 六月久久婷婷| 五月婷婷丁香日韩在线| 日本在线视频www色| 久色五月| 亚洲激情亚洲激情 | 人人摸人人摸| 亚洲热综合| 美女要搞搞天天搞搞搞网站| 9热精品| 婷婷丁香大香蕉| 婷婷中文字幕| www.婷婷| av性爱在线| 亚洲在线激情婷婷五月| 久久看婷婷| 婷婷综合玖玖五月| 国产精自产拍久久久久久蜜| 狼人狠狠操| 天天插天天插天天插| 99热精品10| 久久99婷婷| 色蜜婷婷| 99re久热| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 五月天色色网站| 五月天婷婷久久视频| 婷婷丁香五月,狠狠综合| 狠色狠色狠狠色综合网| 97操碰视频| 婷婷成人在线| 日韩av在线播放综合网| 9久久网| 丁香八月综合激情| 亚洲成人综合在线| 99精品一二三四视频| 日日噜噜久久婷婷五月天| 伊人久久婷婷五月综合97色| 狠狠操狠狠爱| 五月天婷婷丁香| 大香蕉久| 久久久91| 婷婷久久五月天丁香| 人人播| 日韩三级高清无码| 99爱在线观看视频| 久久久人妻系列| 五月婷婷九月婷婷九月婷婷| 夜夜爽日日躁| 久久A热| 色色婷五月天| 丁香五月第九色| 久久这有这里精品| 婷婷五月天激情文学小说| 99久久亚洲精品视频| 婷婷精品免费久久| 99色在线视频| 激情深爱五月婷婷| 4399在线观看免费高清电视剧| 99er这里只有精品| 丁香六月婷婷开心| 六月婷婷狠狠| 开心五激情网| 婷婷丁香五月欧美人| 天天肏天天爽夜夜爽| 亚洲精品国产精品乱码不99| 五月天精品综合在线| 综合五月激情| 五月婷婷激情久久| 另类小说色婷婷| 碰超99| 开心激情网在线| 久操热| 国产视频色色色色色色色| 天天干人人奸97| 亚洲色区17| 99啪啪网| 日本久久网| 亚洲色婷婷99一9|| 思思热久久爱| 久久久噜噜噜久久人妻| 婷婷激情性爱| 99这里有精品视频| 色色三级视频| 久久久噜噜噜www成人| 伊人9在线| 激情色色| 激情综合网激情五月网| 丁香五月中文字幕久色| 老司机日日夜夜青草| 99自拍视频网站| 婷婷五月综合在线| 九色综合网| 久久 中文 日本| 成人精品在线观看| 婷婷色日本| 欧美综合激情丁香五月六月婷| 色五月天丁香婷婷| 狠狠综合| 91 久热| 婷婷四色五月| 色五月婷婷五月丁香五月激情五月视频| 美妞av| 99色精品| 99精品视频在线观看| 任你搞免费视频观看| 伊人婷婷色| 久久6这里只有精品| 激情伊人五月天| 大香蕉伊人久久| 综合五月丁香六月婷婷| 91一起操| 色色色五月天婷婷| 日本成人综合| 人人色性网| 婷婷va| 人人操AV| 国产女人十八水真多1| 欧洲毛片基地c区| 思思热在线视频99| www..999热久| 天天干人人奸97| 97操操操| 五月婷婷自拍视频| 久操人妻| 中文字幕久久婷九女同| 色五月婷婷 成人| 99热都是精品| 国外亚洲成AV人片在线观看| 热五月婷婷| 久久A区B区| 九九黄色网| 久久综合影院| 丁香六月天婷婷开心综合| 国产激情久久| 婷婷丁香先锋资源网站| 亚洲激情高潮| 91一起操| 色婷婷五月成人网| 激情五月五月五月婷婷| 五月婷在线| 久久免费试看120秒| 日日操日日干| 五月婷婷五月| 久久99精品久久久久久噜噜| 丁香婷婷五月六月天| 天天爽人人综合免费7799| 五月婷狠狠| 九月婷婷综合八月丁香在线观看 | 中文字幕在线免费观看视频| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 色 噜噜 九月 婷婷| 五月天婷婷激情小说| 色婷视频| 色99在线看| 思思热AV| 丁香六月天婷婷色| 五月天婷婷午夜丁香| 8区视频在线| 丁香玖玖视频大全| 婷婷五月图片小说网| 亚洲亚洲人成综合网络| 婷婷丁香五月天综合AV| 五月综合激情| 色欲婷婷五月天丁香| 婷婷激情社区| 久久婷婷艹| 亚洲狠狠操| 日本一级黄色片。| 狠狠狠狠狠狠草| 99热只有| 日韩人妻无码一区二区| 99成人在线观看| 丁香五月天啪啪| 岛国AV网| 久操婷婷| 欧美婷婷五月丁香| 久久色情| 六月丁香啪啪| 国产成人+综合亚洲+天堂| 色综合大香蕉| 天天日夜夜欢| 丁香五月区| 影音先锋一区| 五月天婷婷基地| 欧美日韩91| 久色激情| 欧美激情五月天在线观看| 婷婷五月影院| 另类激情五月| 日逼影音先锋男人资源站|