การแก้จุดบกพร่องระยะไกล iOS


199

ด้วย Chrome รุ่นล่าสุดสำหรับ iOS ฉันสงสัยว่าคุณจะเปิดใช้งานการดีบักแบบรีโมทสำหรับ Chrome iOS ได้อย่างไร

ปรับปรุง: ด้วยการเปิดตัว iOS 6, การแก้จุดบกพร่องระยะไกลขณะนี้คุณสามารถทำได้ด้วยSafari


2
การดีบักแบบรีโมทสามารถทำได้ด้วย Safari บน Mac แต่ถ้าคุณพัฒนาบน Linux หรือ Windows คุณยังคงต้องใช้ weinre (ตามที่ระบุไว้ในคำตอบ gregers)
Dehalion

3
การดีบักแบบรีโมทด้วย Safari รองรับเฉพาะ Safari บนมือถือไม่ใช่ iOS Chrome
Matt Jensen

คำตอบ:


111

ปรับปรุง:

นี่ไม่ใช่คำตอบที่ดีที่สุดอีกต่อไปโปรดทำตามคำแนะนำของgregers

คำตอบใหม่:

ใช้Weinre

คำตอบเก่า:

ตอนนี้คุณสามารถใช้ Safari สำหรับการดีบักแบบรีโมทได้แล้ว แต่ต้องใช้ iOS 6

นี่คือการแปลอย่างรวดเร็วของhttp://html5-mobile.de/blog/ios6-remote-debugging-web-inspector

  1. เชื่อมต่อ iDevice ของคุณผ่าน USB ด้วย Mac ของคุณ
  2. เปิด Safari บน Mac ของคุณและเปิดใช้งานเครื่องมือ dev
  3. บน iDevice ของคุณ: ไปที่การตั้งค่า> ซาฟารี> ขั้นสูงและเปิดใช้งานตัวตรวจสอบเว็บ
  4. ไปที่เว็บไซต์ใด ๆ ด้วย iDevice ของคุณ
  5. บน Mac ของคุณ: เปิดเมนูนักพัฒนาซอฟต์แวร์และเลือกไซต์จาก iDevice ของคุณ (ที่ด้านบนเมนู Safari)

ดังที่Simons ตอบไว้เราจำเป็นต้องปิดการเรียกดูแบบส่วนตัวเพื่อให้การดีบักแบบรีโมททำงานได้

การตั้งค่า> Safari> การดูเว็บส่วนตัว> ปิด


11
ใช่ฉันใช้อันนี้อยู่แล้ว ที่สุด! มันแย่ที่ Safari เวอร์ชัน windows ไม่มีอยู่
Hyangelo

5
ฉันหวังว่า Chrome จะเปิดใช้งานคุณลักษณะเดียวกันนี้ในไม่ช้าเพื่อให้สามารถใช้งานได้กับทุกระบบปฏิบัติการ
F Lekschas

49
ใช่ - แน่นอนว่าจะดีถ้าตอบคำถามที่ถาม!
Irene Knapp

4
การปิดการเรียกดูแบบส่วนตัวไม่ได้เป็นข้อกำหนดอีกต่อไป
ไมล์

3
เหตุผลที่ต้องทำการลง: คำถามขอChromeไม่ใช่ Safari
NickG

230

คำตอบที่เลือกไว้สำหรับ Safari เท่านั้น ในขณะนี้ไม่สามารถทำการดีบักแบบรีโมทจริงใน Chrome บน iOS ได้ แต่เช่นเดียวกับเบราว์เซอร์มือถือส่วนใหญ่คุณสามารถใช้WeInReสำหรับการดีบักแบบง่าย ๆ การตั้งค่าเป็นเรื่องเล็กน้อย แต่ให้คุณตรวจสอบ DOM ดูสไตล์เปลี่ยน DOM และเล่นกับคอนโซล

ป้อนคำอธิบายรูปภาพที่นี่

เพื่อติดตั้ง:

  • ติดตั้งnodejs
  • npm install -g weinre
  • weinre --boundHost -all-
  • เปิด http: // {wifi-ip-address}: 8080 / และคัดลอกรหัสสคริปต์เป้าหมาย
  • วางแท็กสคริปต์ลงในหน้าของคุณ (หรือใช้ bookmarklet)
  • คลิกที่ลิงก์ไปยังอินเทอร์เฟซผู้ใช้ของดีบักไคลเอ็นต์ (http: // {wifi-ip-address}: 8080 / client / # ไม่ระบุชื่อ)
  • เมื่อคุณได้รับสายสีเขียวใต้ไคลเอนต์เบราว์เซอร์จะเชื่อมต่อ

bookmarklet เป็นเรื่องยุ่งยากในการติดตั้งอีกเล็กน้อย เป็นเรื่องที่ง่ายที่สุดหากคุณเปิดการซิงค์บุ๊กมาร์กไว้สำหรับทั้งเดสก์ท็อปและมือถือ Chrome คัดลอก URLlet bookmarklet จากเซิร์ฟเวอร์ weinre ท้องถิ่น (เหมือนข้างบน) น่าเสียดายที่มันใช้งานไม่ได้เพราะมันเข้ารหัส URL ไม่ถูกต้อง ดังนั้นเปิดคอนโซล JavaScript และพิมพ์ใน:

copy(encodeURI('')); // paste bookmarklet inside quotes

ตอนนี้คุณควรมี bookmarklet ที่เข้ารหัส url ในคลิปบอร์ดของคุณ วางลงในบุ๊คมาร์คใหม่ภายใต้บุ๊กมือถือ เรียกมันว่า weinre หรืออะไรที่ง่าย ๆ ควรซิงค์กับมือถือของคุณอย่างรวดเร็วดังนั้นโหลดหน้าเว็บที่คุณต้องการตรวจสอบ จากนั้นพิมพ์ชื่อบุ๊กมาร์กใน url-bar และคุณควรเห็น bookmarklet เป็นการแนะนำอัตโนมัติ คลิกเพื่อเรียกใช้รหัส bookmarklet :)

ป้อนคำอธิบายรูปภาพที่นี่


27
นี่เป็นเพียงคำตอบที่ถูกต้องเท่านั้นส่วนอื่น ๆ ทั้งหมดเกี่ยวข้องกับ Safari (เดินในสวนสาธารณะ)
Mars Robertson

2
คำแนะนำที่เป็นประโยชน์มาก! ฉันจะเพิ่มลงไปเพื่อติดตั้ง bookmarklet แทนที่จะทำการคัดลอกคุณสามารถลากลิงก์ "bookmarklet debug" weinre target debug ไปยังแถบเครื่องมือบุ๊กมาร์กของคุณ (ทำให้มองไม่เห็นแถบเครื่องมือCtrl-Shift-B)
Kai Carver

ฉันต้องการรีเฟรชเบราว์เซอร์หลังจากติดตั้ง bookmarklet เพื่อให้มันใช้งานได้
ooolala

npm install -g weinreไม่ทำงานสำหรับฉัน npm install -g weinre@2.0.0-pre-I0Z7U9OVดังนั้นผมจึงต้องทำงานกับรุ่น ตรวจสอบรุ่นล่าสุดที่นี่npmjs.com/package/weinre
vinesh

1
FWIW, weinre ไม่สนับสนุน shadow dom ในปัจจุบัน - มันแสดงเฉพาะองค์ประกอบระดับบนสุดและโดมแสงของพวกเขาเท่านั้น มันก็ไม่ได้ผลสำหรับ dom ที่ร่มรื่นนอกจากองค์ประกอบระดับบนสุดและ shady-dom ของพวกเขา (และ dom ที่เบาเกินไป)
Max Waterman

52

คุณไม่สามารถดีบัก Chrome ระยะไกลโดยตรงบน iOS ในขณะนี้ มันใช้ uiWebView ที่อาจทำหน้าที่แตกต่างจาก Mobile Safari อย่างละเอียด

คุณมีตัวเลือกน้อย

ตัวเลือก 1: Remote-debug Mobile Safari โดยใช้ตัวตรวจสอบของ Safari หากปัญหาของคุณเกิดขึ้นอีกครั้งใน Mobile Safari นี่เป็นวิธีที่ดีที่สุดในการไป ในความเป็นจริงการผ่านตัวจำลอง iOS ง่ายยิ่งขึ้น

ตัวเลือกที่ 2: ใช้ Weinre สำหรับ slimmed ลงประสบการณ์การแก้จุดบกพร่อง Weinre มีคุณสมบัติไม่มากนัก แต่บางครั้งก็ดีพอ

ตัวเลือก 3: ดีบักแบบรีโมท uiWebView ที่เหมาะสมซึ่งทำหน้าที่เหมือนกัน

นี่คือวิธีที่ดีที่สุดในการทำเช่นนี้ คุณจะต้องติดตั้ง XCode

  1. ไปที่github.com/paulirish/iOS-WebView-Appและ "ดาวน์โหลด Zip" หรือโคลน
  2. เปิด XCode เปิดโครงการที่มีอยู่และเลือกโครงการที่คุณเพิ่งดาวน์โหลด
  3. เปิด WebViewAppDelegate.m และเปลี่ยนurlStringเป็น URL ที่คุณต้องการทดสอบ
  4. เรียกใช้แอพใน iOS Simulator
  5. เปิด Safari เปิดเมนูพัฒนาเลือกiOS Simulatorและเลือกมุมมองเว็บของคุณ
  6. Safari Inspector จะทำการตรวจสอบ uiWebView ของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


7
วิธีตรวจสอบ iOS (iPhone / iPad) บน Windows ด้วย chrome มีวิธีการอะไรบ้าง?
Surjith SM

@SurjithSM คำตอบนี้จะไม่ช่วย Windows ในขณะที่คุณไม่สามารถติดตั้ง XCode บน windows และสร้างแอป iOS ได้ ลองใช้แทนstackoverflow.com/a/22047495/1737158
Lukas Liesis

ฉันเคยมีประสบการณ์กับgithub.com/google/ios-webkit-debug-proxyซึ่งเป็นเครื่องมือที่ยอดเยี่ยมและเมื่อวานนี้ได้ลองดีบัก Google Chrome ด้วย iOS Emulator - มันเป็นประสบการณ์ที่ยอดเยี่ยมที่สุด ขอบคุณสำหรับ # 3
Oleg Andreyev

10

จากความเข้าใจของฉัน Google Chrome ใช้ UIWebView ของ iOS แทนการใช้ Chrome อย่างเต็มรูปแบบเหมือนกับอุปกรณ์ Android


1
ใช่พบว่าหลังจากที่ฉันตอบคำถามนี้ นั่นเป็นความอัปยศสำหรับแอปเปิ้ลจริงๆ ฉันปล่อยให้คำถามนี้เปิดในโอกาสที่มีคนคิดหาวิธีที่จะทำ
Hyangelo

4

คอนโซลระยะไกลจำนวนมากทำงานได้ดี http://farjs.comเป็นโครงการของฉันและฉันสามารถแก้ไขปัญหาที่เฉพาะเจาะจงสำหรับ Crome iOS และไม่ประสบความสำเร็จในการใช้ซาฟารี (และอาจเป็นเบราว์เซอร์มือถืออื่น ๆ ทั้งหมด)

ปัญหาคือการฉีดรหัสการแก้จุดบกพร่องนั้นยุ่งยากเล็กน้อยเนื่องจาก Chrome ไม่อนุญาตให้คุณติดตั้ง bookmarklet

แต่คุณสามารถเปิดหนึ่งแท็บบนหน้าเว็บที่คุณจะทำการดีบักและอีกแท็บหนึ่งใน farjs.com จากนั้นคลิก "bookmarklet"

คัดลอกโค้ด JS ของ bookmarklet กลับไปที่แท็บแรกพร้อมกับหน้าเว็บที่ควรจะดีบั๊กและวางโค้ด bookmarklet ในแถบที่ตั้ง

ขั้นตอนสุดท้ายคือเลื่อนไปที่จุดเริ่มต้นของแถบตำแหน่งและเพิ่ม "javascript:" เนื่องจาก Chrome จะลบออก


4

ฉันแนะนำVorlonทำงานเหมือน weinre ฉันชอบ UI ของ Vorlon และรองรับSSLแอปพลิเคชันของฉันอยู่ใน HTTPS ฉันลอง weinre ด้วย ngrok, ghostlab และ vorlon เพียง vorlon ก็ใช้ได้ดี


3

ฉันไม่ได้ลอง แต่พร็อกซีดีบักiOS WebKit (ios_webkit_debug_proxy / iwdp) ควรจะช่วยให้คุณดีบัก UIWebView จากระยะไกล จาก README.md

ios_webkit_debug_proxy (aka iwdp) ช่วยให้นักพัฒนาสามารถตรวจสอบ MobileSafari และUIWebViewsบนอุปกรณ์ iOS จริงและจำลองผ่าน Chrome DevTools UI และ Chrome Remote Debugging Protocol คำขอ DevTools ได้รับการแปลเป็นการโทรบริการ Remote Web Inspector ของ Apple


1
การสนับสนุนสำหรับ Chrome webview นั้นได้ถูกนำไปใช้ในทางทฤษฎีผ่านทาง: github.com/RemoteDebug/remotedebug-ios-webkit-adapterซึ่งถูกสร้างขึ้นบน iOS debug proxy webkit ฉันประสบความสำเร็จอย่าง จำกัด กับโปรเจ็กต์นั้น แต่ฉันคาดว่ามันจะดีขึ้น
Matt Jensen

3

Vorlon.JSสามารถใช้สำหรับการดีบักแบบรีโมทของ iOS หรือไคลเอนต์อื่น ๆ

  1. เพียงแค่ติดตั้งทั่วโลกโดยใช้ npm i -g vorlon
  2. เริ่มต้นเซิร์ฟเวอร์โดยใช้ vorlon
  3. ขณะที่เซิร์ฟเวอร์กำลังทำงานอยู่ให้เปิดhttp: // localhost: 1337ในเบราว์เซอร์ของคุณเพื่อดูแผงควบคุม Vorlon.JS
  4. ขั้นตอนสุดท้ายคือการเปิดใช้งาน Vorlon.JS โดยเพิ่มแท็กสคริปต์นี้ในแอปของคุณ:
    <script src="http://<yourExternalIP>:1337/vorlon.js"></script>
  5. ลูกค้าที่เชื่อมต่อทั้งหมดเช่น iPhone, Android จะพร้อมใช้งานในรายชื่อลูกค้าใน Vorlon.JS ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุว่าวิธีนี้ยังสามารถนำมาใช้เพื่อแก้ปัญหาปพลิเคชันไม่ได้ทำงานใน localhost ใช้ngrok ดูhttps://stackoverflow.com/a/45443203/2073920เพื่อดูรายละเอียด

คำปฏิเสธ

ฉันเป็นแค่ผู้ใช้และฉันไม่ได้มีส่วนเกี่ยวข้องกับ Vorlon.JS และ ngrok


ฉันทำตามทุกขั้นตอน แต่มุมมองของ iPhone ของฉันไม่ได้รับการตรวจพบใน VorlonJS ที่ทำงานใน Mac
Amarjit Singh

2

คุณต้องปิดการใช้งาน 'การดูเว็บส่วนตัว'

การตั้งค่า> Safari> การดูเว็บส่วนตัว> ปิด


ไม่แน่ใจว่าทำไม ppl downvote คำตอบนี้ ต้องปิดการท่องเว็บแบบส่วนตัวเพื่อให้สามารถดีบักแบบรีโมทได้
basecode

14
@ พื้นฐานรหัสเพราะมันเป็นคำตอบที่สมบูรณ์ซึ่งควรจะอยู่ในความคิดเห็น
GusDeCooL

2
@GusDeCooL ฉันเห็นขอบคุณ! ความคิดเห็นโดย downvoter ที่อธิบายสิ่งนี้จะเป็นประโยชน์
basecode

0

แม้ฉันกำลังมองหาคุณสมบัติเดียวกันและ ณ วันนี้มันยังไม่ได้ใช้งาน ฉันคิดได้สองทางเลือก

  1. ฉันสังเกตเห็นว่าพฤติกรรมของ Chrome และ Safari ค่อนข้างเหมือนกัน Chrome ยังรองรับ Gyroscope และกิจกรรมอื่น ๆ ที่เกี่ยวข้องซึ่งสนับสนุนโดย Safari ขณะนี้ฉันกำลังดีบักเว็บแอปของฉันโดยเปิดใช้งานคอนโซลการดีบักบน Safari (ผ่านการตั้งค่า -> Safari)

  2. ลองใช้ Adobe Shadow ซึ่งอนุญาตการดีบัก / ตรวจสอบและซิงค์จากระยะไกล

HTH


0

Adobe Edge Inspect ( https://creative.adobe.com/products/inspect ) เป็นอีกวิธีหนึ่งในการดีบักอุปกรณ์เคลื่อนที่ IOS และ Android ของคุณทั้งหมด (ไม่มี Windows Phone) มันใช้ weinre สำหรับการตรวจสอบ / เปลี่ยน DOM ระยะไกล มันไม่ใช่วิธีที่เร็วที่สุด แต่ใช้ได้กับ Windows


Adobe Edge Inspect ไม่มีอยู่ใน Adobe Creative Cloud อีกต่อไป ดูadobe.com/products/edge-inspect.html
Ron Inbar

จริง แต่คุณยังคงสามารถดาวน์โหลดได้ด้วยการสมัครสมาชิกปัจจุบันแม้ว่าจะไม่ได้อยู่ระหว่างการพัฒนาอีกต่อไป ดูวิธีการทำที่นี่: helpx.adobe.com/creative-cloud/kb/…
HumbleBeginnings

อย่างไรก็ตามแอพ iOS ไม่มีให้บริการอีกต่อไป ยังคงทำงานบน Android แต่ไม่มี iOS อีกต่อไป: itunes.apple.com/app/id498621426
bg17aw


0

ฉันใช้ remotedebug-ios-webkit-adapter ทำงานได้ดีสำหรับฉันด้วย IOS และดีบักเกอร์ที่เปิดใน Chrome บน Windows 10

จะดีใจถ้ามันช่วยลิงค์ได้บ้าง


0

หมายเหตุ: ฉันไม่มีส่วนเกี่ยวข้องกับผู้สร้าง Ghostlab Vanamco แต่อย่างใด

เป็นสิ่งสำคัญสำหรับฉันที่จะสามารถแก้ไขปัญหาเฉพาะ Chrome ได้ดังนั้นฉันจึงออกเดินทางเพื่อค้นหาสิ่งที่สามารถช่วยฉันได้ ผมจบลงอย่างมีความสุขโยนเงินของฉันที่Ghostlab 3 ฉันสามารถทดสอบเบราว์เซอร์มือถือ Chrome และ Safari ราวกับว่าฉันกำลังดูพวกเขาบนเดสก์ท็อปของฉัน มันให้ที่อยู่ LAN แก่ฉันเพื่อใช้สำหรับอุปกรณ์ใด ๆ ที่ฉันต้องการดีบัก แต่ละแอปพลิเคชันที่ใช้ที่อยู่นั้นจะปรากฏในรายการใน Ghostlab

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

แนะนำเป็นอย่างยิ่ง


-2

เปิด Safari Desktop iOS

พัฒนา -> โหมดตอบสนองต่อการออกแบบ

คลิก "อื่น ๆ " ภายใต้อุปกรณ์

วางสิ่งนี้: Mozilla / 5.0 (iPad; CPU OS 10_2_1 เช่น Mac OS X) AppleWebKit / 602.1.50 (KHTML เช่น Gecko) CriOS / 56.0.2924.79 มือถือ / 14D27 Safari / 602.1

ใช้เครื่องมือตรวจสอบ Safari


-3

คำเตือน: ฉันทำงานที่ BrowserStack [ยืนยันแล้ว] ว่าอนุญาตให้โพสต์สิ่งนี้ได้หรือไม่ ( ฉันสามารถแนะนำผลิตภัณฑ์ของ บริษัท ที่กำลังทำงานอยู่ได้หรือไม่ )


แก้ไขข้อผิดพลาด Safari บน iOS (ไม่ใช่สำหรับ Chrome ณ ตอนนี้อ่านรายละเอียดเพิ่มเติมล่วงหน้า)

มันทำงานอย่างไร

  • คุณต้องเริ่มเซสชันบนอุปกรณ์จริง ๆ (มีอีมูเลเตอร์ แต่คุณต้องเริ่มเซสชันบนอุปกรณ์จริง) บน BrowserStack พูด iPhone 6S - Safari / Chrome (ไม่มี devtools สำหรับ Chrome แต่อยู่ใน Roadmap ของเรา)
  • พิมพ์ URL
  • คุณสามารถเรียกใช้ DevTools เพื่อตรวจสอบเว็บเพจที่เปิดบนอุปกรณ์ระยะไกลของ BrowserStacks ฉันได้แชร์หน้าจอในแบบเดียวกันด้านล่าง

การใช้ DevTools กับโทรศัพท์จริง

เลื่อนเมาส์ไปที่องค์ประกอบแล้วแก้ไข HTML และ CSS เหมือนกับที่เบราว์เซอร์เดสก์ท็อป devtools ทำงาน

DevTools บนโทรศัพท์จริงตรวจแก้จุดบกพร่องเว็บไซต์ตอบสนอง


ดำเนินการจาวาสคริปต์ในโทรศัพท์จริงโดยใช้ DevTools

สลับไปที่Consoleแท็บเรียกใช้โค้ด JavaScript ตรวจสอบconsole.log()ผลลัพธ์และอื่น ๆ ...

รัน JavaScript ในโทรศัพท์จริงโดยใช้ devtools


แท็บเครือข่ายตรวจสอบส่วนหัวคำขอการตอบสนองและอื่น ๆ ...

แท็บเครือข่ายเพื่อตรวจสอบคำขอ


สนับสนุน DevTools บน BrowserStack หรือไม่

  • DevTools มีอยู่ใน:

    • อุปกรณ์จริง - iOS - Safari (DevTools สำหรับ iOS Chrome อยู่ใน Roadmap ของเรา)
    • อุปกรณ์จริง - Android - Chrome (Chrome เท่านั้นที่มีให้บริการบนอุปกรณ์ Android ในตอนนี้)
  • เบราว์เซอร์ไคลเอ็นต์จำเป็นต้องเป็น Chrome หรือ Firefox นั่นหมายความว่าคุณต้องใช้เบราว์เซอร์ Chrome หรือ Firefox บน MacOSX หรือ Windows เพื่อใช้ BrowserStack Real Device DevTools

หมายเหตุ: คุณต้องซื้อแผนเพื่อทดสอบอุปกรณ์จริงทั้งหมดในฐานะผู้ใช้ฟรีคุณจะได้รับอุปกรณ์ Real Android สองตัว (รวมถึงแท็บเล็ต) และอุปกรณ์ Real iOS สองตัว (รวมถึงแท็บเล็ต) นอกจากนี้ยังให้ความสำคัญกับคำว่าReal Devicesเนื่องจากมีการเลียนแบบเช่นกัน

รายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้โปรดดูที่DevToolsส่วนที่เกี่ยวกับโทรศัพท์มือถือหน้าคุณลักษณะ


3
เขาขอให้ทำการดีบักโครมบน iOS ฉันเป็นลูกค้าเบราว์เซอร์และเป็นเจ้าของ Mac ดังนั้นการดีบัก Safari บน iOS จึงเป็นไปได้ แต่โครเมี่ยมจะช้ากว่าที่จะสามารถดีบักได้จากระยะไกล
fabs

@ fabs เรามีสิ่งนั้นอยู่ในแผนงานของเรา นอกจากนี้ฉันได้กล่าวว่ามันใช้งานได้กับ Safari - อุปกรณ์ iOS และ Chrome สำหรับอุปกรณ์ Android เท่านั้น :)
Mr. Alien

สำหรับปัญหาของเลย์เอาต์สิ่งนี้ไม่น่าจะมีปัญหาเพราะเอ็นจิ้นเลย์เอาต์ของทั้งสองเบราว์เซอร์นั้นเป็น webkit เมื่อรวมกับคุณสมบัติLocal Server Testingนี่ไม่จำเป็นต้องมีการตั้งค่าเพิ่มเติมใด ๆ ในการดีบัก localhost
ทิม Vermaelen

1
คำตอบไม่ได้ตอบคำถามด้วย แม้ว่า Browserstack จะให้บริการที่ยอดเยี่ยม แต่คำตอบนี้เป็นหัวข้อที่สมบูรณ์
Matt Jensen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.