3 คะแนน โดย GN⁺ 2023-09-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เพราะ ความขัดแย้งของไฟล์ที่ซ่อนอยู่ ใน iCloud Drive ทำให้ย่อหน้าที่เพิ่งเขียนหรือการเปลี่ยนแปลงโค้ดล่าสุดหายไป และเกิดการสูญหายก่อนที่ข้อมูลสำรองจะถูกบันทึก
  • ความขัดแย้งเกิดขึ้นจากการที่ระบบตัดสินว่ามีไฟล์เดียวกันคนละเวอร์ชันอยู่บน Mac และ iPhone แต่ไฟล์ที่มีปัญหา ไม่เคยถูกเปิดบน iPhone มาก่อน
  • Dropbox จะเก็บไฟล์ที่ขัดแย้งกันแยกไว้ แต่ iCloud Drive ไม่แสดงสิ่งนี้ในระบบไฟล์ ทำให้เห็นหน้าต่างเลือกได้เฉพาะใน เอดิเตอร์ที่รองรับการจัดการความขัดแย้ง เท่านั้น
  • ในเอดิเตอร์ที่ไม่มีการจัดการความขัดแย้ง เช่น Textifier, Xcode, Obsidian นั้น iCloud จะเป็นฝ่ายเลือกว่าจะเก็บเวอร์ชันไหน และเมื่อเวลาผ่านไปเวอร์ชันที่ถูกต้องอาจถูก เขียนทับจากข้อมูลสำรอง ได้
  • ข้อมูลสำคัญควรเก็บไว้นอก iCloud Drive และควรเฝ้าติดตามการเปลี่ยนแปลงของไฟล์หลักด้วย Git repository เพื่อความปลอดภัย อีกทั้งกำลังพัฒนา Cloud Cub สำหรับไฟล์ที่จำเป็นต้องเก็บไว้ใน iCloud

ความขัดแย้งของไฟล์ที่ซ่อนอยู่ใน iCloud Drive

  • ระหว่างเขียนเอกสาร ย่อหน้าที่เพิ่งพิมพ์หายไป และระหว่างพัฒนาแอป Xcode ก็แสดงข้อผิดพลาดหลายจุดในโค้ดที่ก่อนหน้านี้ไม่มีปัญหา
    • การเปลี่ยนแปลงล่าสุดของหลายไฟล์ถูกลบหายไป
    • ความเสียหายเกิดขึ้นก่อนที่ Time Machine หรือ Backblaze จะบันทึกสำรองไว้
  • สาเหตุมาจาก ความขัดแย้งของไฟล์ ที่ iCloud Drive ตรวจพบ
    • iCloud Drive ตัดสินว่ามีไฟล์เดียวกันคนละเวอร์ชันอยู่บน Mac และ iPhone และไม่สามารถรวมโดยอัตโนมัติได้
    • แต่ไฟล์ที่ได้รับผลกระทบไม่เคยถูกเปิดบน iPhone มาก่อน
    • เนื่องจากย้ายโฟลเดอร์ Documents ของ Mac ไปไว้บน iCloud แล้ว ไฟล์เหล่านั้นจึงอยู่ใน iCloud
  • หาก Dropbox เจอ version conflict ก็จะบันทึกไฟล์ที่ขัดแย้งกันไว้ด้วยชื่ออย่าง “(John Doe’s conflicted copy)”
  • iCloud Drive ไม่ได้ แสดงความขัดแย้งนั้นในระบบไฟล์
    • หากเปิดไฟล์ด้วยเอดิเตอร์ที่รองรับการจัดการความขัดแย้ง จะมีป๊อปอัปถามว่าต้องการเก็บเวอร์ชันใดไว้
    • ในเอดิเตอร์ที่ไม่มีการจัดการความขัดแย้ง เช่น Textifier, Xcode, Obsidian นั้น iCloud จะเป็นผู้ตัดสินว่าจะบันทึกเวอร์ชันใดลงดิสก์และข้อมูลสำรอง

เงื่อนไขการกู้คืนและวิธีรับมือ

  • เมื่อเวลาผ่านไป หากข้อมูลสำรองใหม่ไปเขียนทับข้อมูลสำรองเก่าที่มีเวอร์ชันถูกต้องอยู่ คอนเทนต์อาจ สูญหายถาวร ได้
  • หากต้องการกู้คืน ต้องเปิดไฟล์นั้นด้วยเอดิเตอร์ที่รองรับการแก้ไขความขัดแย้ง
    • เอดิเตอร์ที่ใช้เป็นตัวอย่างคือ iA Writer
    • หลังจากย้ายไฟล์ออกจาก iCloud Drive แล้ว วิธีนี้ก็อาจช่วยไม่ได้
    • ในการทดสอบ หากย้ายไฟล์ที่ไม่ได้แก้ไขกลับเข้า iCloud อีกครั้ง ป๊อปอัปเวอร์ชันที่ขัดแย้งกันจะปรากฏขึ้นอีก แต่หากไฟล์ถูกแก้ไขไปแล้ว หรือทำงานต่อบนสำเนาไฟล์ ก็อาจไม่เป็นเช่นนั้น
  • วิธีการซ่อน version conflict อาจดูเป็นมิตรต่อผู้ใช้ แต่ก็อาจทำให้ไม่รู้ตัวว่าเกิด การสูญหายของข้อมูล จนกว่าจะกลับมาเปิดเอกสารสำคัญนั้นอีกหลายปีให้หลัง
  • จนกว่า iCloud Drive จะเปิดเผย version conflict ในระบบไฟล์ หรือในตำแหน่งศูนย์กลางที่เข้าถึงได้ง่าย การย้ายข้อมูลสำคัญออกจาก iCloud Drive ถือว่าปลอดภัยกว่า
  • สำหรับไฟล์ที่จำเป็นต้องเก็บไว้ใน iCloud Drive กำลังพัฒนา Cloud Cub เพื่อช่วยตรวจจับและแก้ไขความขัดแย้งของการซิงก์ที่ซ่อนอยู่

1 ความคิดเห็น

 
GN⁺ 2023-09-24
ความคิดเห็นจาก Hacker News
  • เคยเจอเรื่องคล้ายกัน: ใน Notes บน iPhone ของภรรยาเปิด การซิงก์กับคลาวด์ ไว้ แล้วผมคิดว่าคงไม่จำเป็นเลยปิดไป จากนั้นภรรยาก็ถามว่า “โน้ตของฉันหายไปไหนหมด? คุณทำอะไรลงไป?”
    เหงื่อตกเลย แต่ก็นึกขึ้นได้ว่ามี iPad ที่มีแอป Notes ซึ่งซิงก์ไว้ เลยรีบเปิดแล้วปิด WiFi เพื่อ “เก็บรักษา” โน้ตไว้
    โทรหา Apple แล้วเจ้าหน้าที่ซัพพอร์ตหาวิธีให้ได้ว่า ถ้าคัดลอกแต่ละโน้ตไปวางในโฟลเดอร์ใหม่ ก็จะทำให้ไม่ถูกลบ
    เป็นช่วงเวลาหลายชั่วโมงที่ค่อนข้างเครียด และผมคิดว่า Apple ควรมี คำเตือนหรือป๊อปอัป เพิ่มเติมเกี่ยวกับผลกระทบทั้งหมดของการกระทำแบบนี้
    เพิ่มเติมคือผมยังได้รู้ด้วยว่า Apple technical support สามารถเข้ามาดูและเปลี่ยนการตั้งค่าในโทรศัพท์ได้แทบจะเหมือน “VNC” จริง ๆ น่าจะมีการขอสิทธิ์และผมกด “อนุมัติ” ไป แต่ก่อนจะได้เห็นกับตา ก็ไม่เคยรู้เลยว่ามีฟีเจอร์แบบนี้อยู่

    • ไม่ได้จะหาข้อแก้ตัวให้ปัญหานี้ แต่ผมทึ่งที่เจ้าหน้าที่ Apple ช่วยแก้ปัญหา การซิงก์ Notes ทางโทรศัพท์และกู้คืนให้ได้ด้วย
      แถมยังช่วยทั้งที่สาเหตุดูเหมือนเป็นความผิดพลาดของผู้ใช้เองด้วย บริษัทผมจ่ายเงินให้ผลิตภัณฑ์ Google เยอะมาก แต่ Google แทบไม่มีทางช่วยเรื่องแบบนี้ทางโทรศัพท์
      เมื่อก่อนเคยคุยกับเจ้าหน้าที่เรื่องพวก access control อยู่บ้าง แต่ถ้าขอให้ช่วยตอนโน้ตใน Keep หาย คงได้คำตอบสุภาพ ๆ ประมาณว่าไปให้พ้น และจริง ๆ โน้ตใน Keep ก็หายเป็นครั้งคราวเหมือนกัน
    • ถ้าเป็นสถานการณ์ที่ผมคิดไว้จริง ๆ แค่ เปิดการซิงก์กลับมาใหม่ โน้ตทั้งหมดก็น่าจะกลับมาแล้ว
    • เท่าที่จำได้ ตอนปิดการซิงก์จะมีคำถามขึ้นมาว่า “ต้องการดำเนินการต่อหรือไม่? โน้ต iCloud ทั้งหมดจะถูกลบออกจาก iPhone”
      ปัญหาของภรรยาน่าจะอยู่ที่ คนที่จัดการอุปกรณ์ iOS มากกว่า Apple
    • การที่ Apple technical support สามารถเข้ามาในโทรศัพท์เหมือน “VNC” เพื่อดูเนื้อหาและเปลี่ยนการตั้งค่าได้ ดูเหมือนเป็น ช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นได้ อยากรู้ว่ามีวิธีปิดถาวรไหม
    • อยากรู้รายละเอียดเพิ่มเติมเกี่ยวกับฟีเจอร์ “VNC” นั้น ว่าใช้ได้เฉพาะ iPad หรือ iOS ก็ได้ด้วย คำขออนุมัติเป็นป๊อปอัปของระบบหรือเปล่า มีแอปที่มีชื่อเปิดขึ้นมาหรือไม่ เห็นไหมว่าเขาทำอะไรบนหน้าจอจริง ๆ และเคยมีเอกสารอธิบายไว้ที่ไหนหรือเปล่า
  • เห็นด้วยแบบล้านครั้งเลย แต่เรื่องนี้ไม่ใช่ปัญหาเฉพาะ iCloud เท่านั้น ดูเหมือนเป็น แนวโน้มพื้นฐาน ของซอฟต์แวร์ Apple โดยรวม
    ผมเจอซ้ำ ๆ ตอนไฮไลต์ PDF ใน Books ด้วย บางครั้งพอกลับมาเปิด PDF อีกที หน้าหลายหน้าที่เพิ่งไฮไลต์ไว้ก็หายไป
    ระหว่างทำงานมันเหมือนจะบันทึกอยู่ตลอด แต่ด้วยเหตุผลที่ไม่รู้ มันตัดสินว่าเวอร์ชัน 11:35 เป็นเวอร์ชันหลักล่าสุด แทนที่จะเป็นเวอร์ชัน 11:45
    ปัญหาที่ Apple เงียบ ๆ เขียนทับเนื้อหาใหม่ด้วยเวอร์ชันเก่านั้นมีมาอย่างน้อย 10 ปีแล้ว
    ผมไม่เข้าใจว่า ข้อบกพร่องร้ายแรง แบบนี้หลุดเข้าไปในระบบตั้งแต่แรกได้อย่างไร และทำไมจนถึงตอนนี้ยังไม่ถูกแก้

    • ปัญหาที่ยากที่สุดสองอย่างในซอฟต์แวร์คือ การทำให้แคชหมดอายุ, การตั้งชื่อ, off-by-one error, และ buffer overflow จากการไม่มีการบังคับใช้ดัชนีอาร์เรย์
    • ผมก็เจอเรื่องแปลก ๆ หลายอย่างเวลาไฮไลต์หรือใส่คอมเมนต์ด้วยซอฟต์แวร์พื้นฐานของ macOS และ Skim ก็เป็นทางเลือกที่ค่อนข้างดี
      ฟรีและใช้ไลเซนส์ BSD แต่ต้องจำไว้ว่าถ้าอยากเห็นการเปลี่ยนแปลงในแอปอื่น ต้อง export เป็น PDF ที่ฝังคอมเมนต์ไว้แล้ว
      ถ้าเบื่อพื้นหลังสีส้มของ Apple ที่ทำให้คอนทราสต์แย่ลง หรือไม่มีปากกาไฮไลต์สีเหลืองจริง ๆ ก็น่าลองใช้ดู ผมไม่มีส่วนเกี่ยวข้อง แค่ขอบคุณที่มันมีอยู่
      https://skim-app.sourceforge.io/
    • เป็นประเด็นที่น่าสนใจ ผมใช้คอมพิวเตอร์ Apple สลับไปมา และล่าสุดใช้ตั้งแต่ปี 2015 ถึงต้นปีนี้ คำว่าเป็น ปัญหาเชิงปรัชญา ดูมีเหตุผล
      ฝั่งฮาร์ดแวร์ก็จำได้ว่าตัดฟลอปปีดิสก์, ออปติคัลไดรฟ์, และสถาปัตยกรรม CPU ทั้งชุดไปถึงสามครั้งค่อนข้างโหด
      ใน iCloud ท่าทีแบบนั้นดูเหมือนจะถูกนำมาใช้กับไฟล์ด้วย คงไม่ได้บอกว่าแย่ไปหมด แต่ยิ่งอายุมากขึ้น มันก็ยิ่งห่างจากรสนิยมของผม
    • โครงสร้างพื้นฐานส่วนใหญ่ของ iCloud สร้างอยู่บน อินสแตนซ์ Cassandra มีเปเปอร์ที่เกี่ยวข้องดีอยู่ฉบับหนึ่ง แต่ตอนนี้หาไม่เจอ
    • ถ้ามันตัดสินว่าเวอร์ชัน 11:35 เป็นเวอร์ชันล่าสุด เป็นไปได้ไหมว่า นาฬิกาของเซิร์ฟเวอร์บางตัวผิด?
  • ผู้เขียนเสนอให้ใช้ git แต่ git เข้ากับ iCloud Drive ได้ไม่ดี
    เมื่อก่อนผมเคยวาง git repository หลายร้อยอันไว้ใน iCloud Drive แล้วพอมี commit ใหญ่ ๆ iCloud Drive ขนาดหลายร้อย GB ทั้งหมดจะถูกซิงก์กับเซิร์ฟเวอร์ Apple ใหม่ และใช้เวลาหนึ่งวัน
    พยายามให้ Apple Support ยกระดับขึ้นไปค่อนข้างสูงเพื่อแก้ปัญหา แต่สุดท้ายก็แก้ไม่ได้ ตอนนี้ผมวาง git repository ไว้นอก iCloud Drive
    ดูเหมือนปรากฏการณ์นี้จะถูกกระตุ้นเมื่อเปลี่ยนไฟล์หลายร้อยไฟล์อย่างรวดเร็วพร้อมกัน ก่อนที่การซิงก์การเปลี่ยนแปลงครั้งใหญ่ก่อนหน้าจะเสร็จ

    • ผมคิดว่ามันเกือบจะเป็นสามัญสำนึกว่าไม่ควรผสม ระบบควบคุมเวอร์ชัน อย่าง git เข้ากับการจัดการเวอร์ชันบนคลาวด์ของ cloud drive อย่าง iCloud, OneDrive, Google Drive
      ทั้งสองอย่างเข้ากันไม่ดี และโดยเฉพาะเมื่อมีหลายอุปกรณ์ซิงก์กับ cloud drive เดียวกัน ก็มีโอกาสเกิดพฤติกรรมแปลก ๆ และคาดไม่ถึงได้สารพัด
    • ผมคือผู้เขียนต้นฉบับ ขอบคุณที่แชร์
      ปัญหาคือแอปที่จำเป็นต้องใช้ไม่รองรับวิธีซิงก์แบบอื่น ดังนั้นไฟล์สำคัญบางส่วนจึงต้องใช้ iCloud Drive
      ถ้าไม่มี git ก็คงไม่รู้ด้วยซ้ำว่าไฟล์ไหนถูกเปลี่ยนไปบ้าง ถึงมี git ก็ยังไม่มั่นใจว่าจับได้ครบทั้งหมด ดูเหมือนความขัดแย้งในการซิงก์ของ iCloud ก็อาจเปลี่ยนเนื้อหาใน git ได้เหมือนกัน
    • ตั้งแต่แรก git ก็ไม่ค่อยเข้ากับ ออบเจ็กต์ไบนารีขนาดใหญ่ อยู่แล้ว
    • สำหรับโฟลเดอร์ iCloud Drive ที่สำคัญ ผมมักใช้โปรเซสอัตโนมัติ rsync ไปไว้ที่ไหนสักแห่ง แล้วให้ฝั่งนั้นทำ การจัดการเวอร์ชันอัตโนมัติ ด้วย Git หรือ Dropbox เป็นต้น
      คงไม่เหมาะกับข้อมูลขนาดใหญ่มาก แต่สิ่งที่อยู่ใน iCloud Drive และอยากทำ versioning อย่างเข้มข้น ส่วนใหญ่เป็นข้อความหรือไฟล์ขนาดเล็ก จึงแทบไม่มีภาระจากการเก็บสองชุด
    • สำหรับข้อมูลเพิ่มเติม แม้ใน Dropbox เอง git ก็อาจล้มเหลวได้อย่างค่อนข้างแปลกประหลาดด้วยเหตุผลคล้ายกัน เมื่อก่อนผมเคยใช้ git-remote-dropbox เพื่อพยายามใช้ Dropbox เหมือนเป็นเซิร์ฟเวอร์ git
      [1] https://github.com/anishathalye/git-remote-dropbox
  • เหตุผลที่ใหญ่กว่าว่าทำไมไม่ควรใช้ iCloud Drive คือ การเข้ารหัสแบบต้นทางถึงปลายทาง ไม่ได้เปิดเป็นค่าเริ่มต้น
    ทุกอย่างที่เก็บไว้ที่นั่น ผู้ดูแลระบบของ Apple, เจ้าหน้าที่ซัพพอร์ต และคนที่สามารถเรียกร้องจาก Apple ได้ เช่น รัฐบาลสหรัฐฯ ซึ่งตอนนี้ทำได้แม้ไม่มีหมายค้น ก็สามารถอ่านได้
    บริการที่ไม่ใช่การเข้ารหัสแบบต้นทางถึงปลายทางไม่ควรใช้
    ตอนนี้ iCloud มีการเข้ารหัสแบบต้นทางถึงปลายทางแบบเลือกเปิดได้ก็จริง แต่ค่าเริ่มต้นปิดอยู่และถูกฝังลึกในเมนูตั้งค่า จนแทบไม่มีใครใช้
    ผมใช้ Syncthing เพื่อเก็บไฟล์ไว้บนอุปกรณ์ทุกเครื่อง มันเข้ารหัสแบบต้นทางถึงปลายทาง เป็นซอฟต์แวร์เสรี และการจัดการ conflict กับการสำรองเวอร์ชันก็สมเหตุสมผล
    ยังรองรับอุปกรณ์สำหรับซิงก์อย่างเดียวที่ไม่ต้องเชื่อถือ ซึ่งจะไม่เห็น plaintext เลย ทำให้วาง node ไว้บน VPS หรือสถานที่ภายนอกได้อย่างปลอดภัย

    • การพูดว่า “อย่าใช้บริการที่ไม่ใช่การเข้ารหัสแบบต้นทางถึงปลายทาง” พร้อมกับบอกว่า “iCloud ก็มีการเข้ารหัสแบบต้นทางถึงปลายทางแบบเลือกเปิดได้” นั้นขัดแย้งกันเอง iCloud ก็ทำ การเข้ารหัสแบบต้นทางถึงปลายทาง ได้
      การโน้มน้าวเพื่อนหรือครอบครัวให้กดเมนูสองครั้งเพื่อเปิดใช้งานนั้นง่าย แต่การโน้มน้าวให้ติดตั้งและตั้งค่า Syncthing บนอุปกรณ์หลายเครื่องไม่ง่าย
      การเชียร์ Syncthing เป็นเรื่องดี แต่การบอกว่า iCloud Drive แย่เพราะไม่เปิดค่าเริ่มต้นของการตั้งค่าที่ผู้ใช้ทั่วไปอาจเสียข้อมูลทั้งหมดหากทำกุญแจหายนั้นก็ดูตลกอยู่บ้าง
      ถ้าเป็นคุณย่า ผมกล้าพนันว่าเธออยากโทรหา Apple เพื่อกู้รูปหนูน้อย Johnny ตอนลืมรหัสผ่าน มากกว่าจะได้ค่าเริ่มต้นที่ปลอดภัยกว่า
    • ก็มีข้อโต้แย้งที่เป็นจริงเกี่ยวกับการเข้ารหัสแบบต้นทางถึงปลายทางอยู่เหมือนกัน คนส่วนใหญ่มีโอกาส ลืมหรือทำกุญแจเข้ารหัสหาย จนเสียข้อมูลทั้งหมด มากกว่าที่ข้อมูลจะรั่วไหลไปถึงผู้ดูแลระบบหรือรัฐบาลมาก
      ผมเองก็อยากเปิดการเข้ารหัสแบบต้นทางถึงปลายทาง แต่ไม่ไว้ใจตัวเองพอว่าจะไม่ทำกุญแจหาย
    • ผมไม่เห็นว่าการเปิดการเข้ารหัสแบบต้นทางถึงปลายทางของ iCloud ด้วยมือ ต่างจากการไปหาผู้ให้บริการที่รองรับการเข้ารหัสแบบต้นทางถึงปลายทางเป็นค่าเริ่มต้นมาใช้เองอย่างไร
      มันไม่ใช่สถานการณ์แบบ messaging ที่อีกฝ่ายก็ต้องเปิดการเข้ารหัสแบบต้นทางถึงปลายทางด้วย
    • แน่นอนว่าการกดปุ่มเดียวใน iCloud เพื่อเปิด การเข้ารหัสแบบต้นทางถึงปลายทาง ดูง่ายกว่าการเปลี่ยนผู้ให้บริการ cloud storage ทั้งเจ้า
    • สามารถเปิดการเข้ารหัสแบบต้นทางถึงปลายทางได้จาก Advanced Data Protection ในการตั้งค่าบัญชี iCloud
      https://support.apple.com/en-ca/HT212520
  • ผมก็หัวเสียกับเรื่องนี้พอสมควรเหมือนกัน เคยวางไลบรารี Calibre ไว้ในโฟลเดอร์ Documents จะให้วางไว้ที่ไหนอีกล่ะ ในเมื่อมีแบ็กอัปฟรีรวมมาด้วย
    แต่ไม่นานมานี้พบว่าโฟลเดอร์หนังสือบางโฟลเดอร์ในไลบรารี ซึ่งควรมีไฟล์ epub จริง ๆ กลับว่างเปล่า
    โครงสร้างไดเรกทอรีและรายการในฐานข้อมูลยังอยู่ แต่มีแค่ ไฟล์หนังสือ ที่หายไป ไม่ใช่ทั้งหมด แต่สุ่มหายไปประมาณ 40%
    สรุปคืออย่าเก็บของที่คุณรักไว้ใน iCloud Drive โดยเฉพาะหนังสือยิ่งไม่ควร

    • ทิปแบบขำ ๆ แต่คงไปหาใหม่ได้จาก Libgen
  • ในส่วนที่ว่า “ถ้าเปิดไฟล์ด้วย editor ที่รองรับการจัดการ conflict จะมีป็อปอัปถามว่าจะเก็บเวอร์ชันไหนไว้ editor ที่ไม่มีการจัดการ conflict เช่น Textifier, Xcode, Obsidian จะปล่อยให้ iCloud ตัดสินใจเองว่าจะเก็บเวอร์ชันไหนไว้บนดิสก์และในแบ็กอัป” ผมมองว่านักพัฒนาแอปที่ใส่การรองรับ iCloud แต่ไม่ได้เพิ่ม กลไกการจัดการ conflict ก็มีส่วนรับผิดชอบอยู่บ้าง
    แต่ทำไม Xcode ซึ่งเป็นแอปของ Apple เองถึงไม่รองรับการจัดการ conflict? ซอฟต์แวร์ของ Apple ควรเป็นตัวกำหนดมาตรฐานให้กับนักพัฒนาภายนอก
    ถ้า Apple เองยังไม่จัดการ conflict ของเวอร์ชัน ก็แน่นอนว่านักพัฒนาคนอื่น ๆ ก็จะไม่ทำ

    • ผู้เขียนต้นฉบับเอง ผมคงเขียนให้เข้าใจผิดไปหน่อย ประเด็นหลักคือมัน ไม่เกี่ยวกับ editor
      แม้จะใช้ editor ที่รองรับการจัดการ conflict ก็ยังเสียเนื้อหาได้
      สมมติว่าคุณเขียนอะไรบางอย่างแล้วบันทึก จากนั้นปิด editor และไม่เปิดใหม่ iCloud ก็อาจสลับเนื้อหาไฟล์นั้นทับได้ และผู้ใช้ไม่มีทางรู้
      วิธีเดียวที่จะไม่เสียข้อมูลคือสร้าง Git repository หรือเปิดไฟล์สำคัญทั้งหมดเป็นประจำใน editor ที่รองรับการจัดการ conflict
    • การที่แอปไม่ได้ implement ฟีเจอร์ ไม่ได้แปลว่า system API ควรลบ ข้อมูลสำคัญ อย่างเงียบ ๆ ได้
      นี่ไม่ใช่บั๊กของ Xcode แต่เป็นบั๊กของ iCloud
  • ถ้าวางไฟล์ไว้ใน iCloud Drive, iPhone สามารถลบ สำเนาในเครื่อง ได้ทุกเมื่อ
    ถ้าต้องการซิงก์ไฟล์และยังมั่นใจ 100% ว่ามีสำเนาในเครื่องอยู่ ต้องวางไฟล์เดียวกันไว้ทั้งใน iCloud Drive และโฟลเดอร์ “On My iPhone”
    นี่คือเหตุผลที่ Apple Books, Numbers และแอปทั้งหมดที่ใช้ iCloud Drive คอยลบสำเนาในเครื่องอยู่เรื่อย ๆ
    ผมเคยทำแอปจดบันทึกง่าย ๆ ที่ใช้ iCloud Drive พอปิดแอป iCloud ก็ลบแม้แต่ไฟล์ txt ขนาด 2KB อย่างตะกละตะกลาม บางครั้งก็ไม่ลบ เลยค่อนข้างสุ่ม
    ต่อให้มีพื้นที่เก็บข้อมูลเหลือเยอะก็ไม่เกี่ยว และ iCloud ก็สามารถลบเวอร์ชันในเครื่องของไฟล์ที่ใช้อยู่เรื่อย ๆ ได้
    Apple Developer Support บอกว่าไม่มีอะไรทำได้ นักพัฒนาก็ไม่มีวิธีทำเครื่องหมายว่าอย่าลบไฟล์เด็ดขาด
    ในเอกสารทางการ Apple แนะนำจริง ๆ ให้เก็บไฟล์ทั้งหมดของผู้ใช้ไว้ใน iCloud Drive และไม่ต้องมีสำเนาใน “On My iPhone”

  • เคยเจอปัญหาคล้ายกันที่ Contacts หาย เกิดอยู่พักหนึ่ง แต่ตอนแรกคิดว่าเป็นความผิดของผมเอง
    เช้าวันหนึ่ง พอเห็นว่ารายชื่อติดต่อของเพื่อนที่คุยข้อความกันเมื่อคืนก่อนหายไป จึงรู้ว่าปัญหาคือ iCloud
    ติดต่อ Apple Support และหลังจากลองทำตามคำแนะนำพื้นฐานทั้งหมดแล้ว เจ้าหน้าที่ก็ยอมรับว่านี่เป็นปัญหาที่รู้กันอยู่ แต่ยังหาสาเหตุหลักไม่ได้และไม่มีวิธีแก้
    เขาบอกให้ผมมอนิเตอร์รายชื่อเพื่อให้รู้ว่าการลบเกิดขึ้นเมื่อไร โดยต้องบอกช่วงเวลาในระดับไม่กี่นาที
    เหตุผลคือ “iPhone สร้าง log เยอะมาก ถ้าระบุไม่ได้ว่าเกิดขึ้นเมื่อไรอย่างแม่นยำ วิศวกรก็ตรวจดูไม่ได้”
    ผมคิดว่าการไล่บั๊กจนเหลือช่วงเวลา 8 ชั่วโมงก็น่าจะพอใช้ได้แล้ว แต่เจ้าหน้าที่บอกว่าวิศวกรว่าอย่างนั้นและต้องการความแม่นระดับไม่กี่นาที
    สุดท้ายก็เหมือนทุกครั้งที่ส่งปัญหายาก ๆ ให้ Apple Support เจ้าหน้าที่บอกว่าจะติดต่อกลับ แต่ก็ไม่เคยโทรกลับมา และไม่มีอะไรเกิดขึ้น
    ผมย้ายรายชื่อติดต่อไป Google แล้วก็ปล่อยผ่านไป

  • ลองตรวจสอบปัญหานี้แล้ว Apple เลือก กลยุทธ์การซิงค์ที่ทำให้ข้อมูลผู้ใช้สูญหาย ภายใต้เงื่อนไขบางอย่าง เพราะไม่อยากรบกวนผู้ใช้ด้วย conflict มากเกินไป
    นั่นคือเลือกไม่ใช้เทคนิคที่เก่ากว่ามาก ซึ่งสามารถเก็บ revision ที่ขัดแย้งกันไว้ได้
    สรุปอยู่ที่นี่
    https://www.youtube.com/watch?v=q8k1q6kf1W0

    • ถ้าต้องการไม่รบกวนผู้ใช้ ก็อาจเอาไฟล์ซ้ำไปไว้ในที่อย่าง โฟลเดอร์ conflict ได้
      แบบนั้นผู้คนก็จะค้นหา “Apple ทำอะไรกับไฟล์ของฉัน?” แล้วหาวิธีกู้คืนได้
      พูดถึงเรื่องไม่รบกวนแล้ว iOS เคยแอบเปลี่ยนการตั้งค่าการโทรของฉันในการอัปเดตบางครั้ง ทำให้สายจากผู้โทรบางคนไม่ดัง
      มันเป็นฟีเจอร์ไร้สาระแบบช่วยให้จิตใจสงบอะไรสักอย่าง แต่ทำให้ฉันกังวลมาก เพราะพลาดสายจากศัลยแพทย์มะเร็ง ซึ่งด้วยธรรมชาติของ NHS แล้วโทรกลับไปได้ยาก
  • ในกรณีของฉัน บางครั้ง iCloud Drive ก็ไม่ซิงค์เฉย ๆ และค้างอยู่กับอะไรบางอย่าง สามารถดู สถานะการซิงค์ ได้จากไอคอน iCloud Drive ใน Finder
    ถ้าปิดแอปทั้งหมดบน macOS และ iOS แล้วรัน killall bird บางครั้งก็แก้ได้ bird คือบริการซิงค์ของ iCloud