Xcode: ปัญหา“ ไฟล์ xxx.png ขาดหายไปจากสำเนาการทำงาน” ที่การสร้างโครงการ


265

หลังจากลบ / เพิ่มไฟล์ png บางไฟล์ลงในโปรเจคฉันได้รับข้อความเมื่อสร้างโปรเจ็กต์

"ไฟล์ ProjectPath \ aaa \ xxx.png ไม่มีสำเนาทำงาน"

ไฟล์ทั้งหมดนี้อยู่ในโครงการและแอปพลิเคชันทำงานอยู่ อย่างไรก็ตามข้อความเหล่านี้น่ารำคาญ ค้นหาไฟล์. plist แล้ว แต่ไม่มีการกล่าวถึงไฟล์เหล่านี้ ฉันควรทำอย่างไรเพื่อลบข้อความเหล่านี้


สามารถอ้างถึงstackoverflow.com/questions/39711061/…
Shrawan

คำตอบ:


495

คำเตือนจะหายไปทันทีที่คุณส่งการเปลี่ยนแปลง (Xcode 8)


2
พบว่าฉันต้องยอมรับการเปลี่ยนแปลงของฉันภายใต้คอมไพล์หลังจากย้ายไฟล์บางไฟล์ไปยังไดเรกทอรีอื่น
Chris Livdahl

@LearnSwift Clean Cmd + Shift + K, ลบ ~ / Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin

2
@AlexanderVasenin ไม่
เรียนรู้ Swift

7
สำหรับฉันเพียงแค่การแสดงละครการเปลี่ยนแปลงก็เพียงพอแล้ว ดีแล้วที่รู้.
charmingToad

13
อย่างที่คุณพูดไปแล้วฉันแน่ใจว่าจะยอมรับและผลักดันการเปลี่ยนแปลงล่าสุดของฉัน แต่การทำเช่นนั้นไม่ได้ลบข้อผิดพลาด ดังนั้นฉันจึงทำ Xcode> การควบคุมแหล่งที่มา> ยกเลิกการเปลี่ยนแปลงทั้งหมดและจะแก้ไขข้อผิดพลาดทั้งหมดให้ฉัน
EdwardM

97

ดูเหมือนว่าปัญหานี้อาจมีสาเหตุที่แตกต่างกัน แต่มักจะเกี่ยวข้องกับซอฟต์แวร์ควบคุมแหล่งที่มา

ในกรณีของฉันฉันแก้ไขมันโดยไปที่ Git และเพิ่มไฟล์อีกครั้ง ฉันหมายถึงการรันคำสั่งต่อไปนี้:

git add .

หลังจากติดตั้ง Xcode 8 และอัปเกรดรหัสเป็น swift 3 ฉันสิ้นสุดด้วยปัญหามากกว่า 300 ฉบับที่ต้องการการแก้ไขไวยากรณ์ (โครงการขนาดใหญ่) แต่ฉันคืนค่าจากการสำรองข้อมูลและอัปเกรดเป็น 2.3 รวดเร็ว ... ทุกอย่างเป็นไปด้วยดียกเว้นข้อความที่หายไปจำนวนมาก คำสั่งนี้ทำงานเหมือนมีเสน่ห์ฉันกลับมาทำธุรกิจแล้ว!
Dan Ross

นี่คือสิ่งที่ได้ผลสำหรับฉัน ปัญหาเริ่มต้นเมื่อฉันลบสิ่งที่ฉันเคยมีใน Pods ในความโปรดปรานของ Carthage
Sebastian Sastre

1
มันก็ใช้ได้กับฉันเช่นกัน ดูเหมือนว่าไฟล์นั้นอยู่ภายใต้การควบคุมของแหล่งและ git ต้องได้รับการปรับปรุงด้วย
Shardon

หลังจากคอมไพล์คอมมิชชันการเตือนหายไป
carmen_munich

3
สำหรับคนอื่น ๆ : คุณต้องอยู่ในโฟลเดอร์รูทของโครงการ Xcode ของคุณด้วยการดำเนินการ 'git add' คำสั่ง: / MyXcodeProjects / AwesomeApp /
Philip Borges

59

คุณยังสามารถปิดใช้งานการควบคุมแหล่งที่มาได้โดยยกเลิกการเลือก

Xcode -> การตั้งค่า -> การควบคุมแหล่งที่มา -> เปิดใช้งานการควบคุมแหล่งที่มา

หากคุณจัดการผ่านทางบรรทัดคำสั่งหรือแอปอื่น ๆ


นี้ไม่ได้สำหรับผมชนิดที่น่ารำคาญที่เห็นนี้ใน IDE พวกเขาก็ควรจะสนับสนุนการควบคุมแหล่งเดียวหรือไม่มีเลย
samiq

1
ฉันได้กระทำสองอย่าง: 1) "ไม่เลือก", 2) "ตรวจสอบ" เพื่อเปิดใช้งานการควบคุมแหล่งที่มา คำเตือนหายไป
Viktor

58

ใน XCode -> SoureControl:

Update+ Refresh Statusทำเพื่อฉัน


ฉันคิดว่าอาจเป็นเพราะภาพที่มี "@" อยู่ในชื่อไฟล์เช่นการประชุม "@ 2x" และ "@ 3x" SVN ใช้สัญลักษณ์นั้นสำหรับไวยากรณ์การแก้ไข (เพื่อหนีออกมาเมื่อทำงานกับ SVN ในบรรทัดคำสั่งคุณเพียงแค่เพิ่ม "@" ที่ท้ายที่สุดเพราะการเกิดครั้งสุดท้ายเป็นสิ่งที่มันใช้ในการลองและตรวจสอบข้อมูลการแก้ไข) เพียงแค่เรียกใช้ Update ทำงานสำหรับฉัน เมื่อฉันเพิ่มรูปภาพใหม่บางอันฉันต้องเลือก "เพิ่ม" ด้วยตนเองในตัวแปร 2x / 3x ในบานหน้าต่างตัวตรวจสอบไฟล์เช่นกัน แปลก.
Android3000

1
นี้! สำคัญมาก ปัญหานี้เกิดขึ้นหากคุณเปลี่ยนชื่อโฟลเดอร์ที่มีไฟล์ กล่าวอีกนัยหนึ่ง xcode ให้คำเตือนแก่เราเพราะเรายังไม่ได้ส่งมอบรหัสของเรา! clap clap clap
Warpzit

4
สิ่งนี้ใช้ได้สำหรับฉัน ฉันต้องปิด Xcode และเปิดโครงการอีกครั้งและทำงาน
jaytrixz

44

ในกรณีของฉันไฟล์หายไปจากตัวควบคุมแหล่งที่มา
ในการแก้ไขฉันต้องทิ้งไฟล์นี้ (โปรดระมัดระวังเฉพาะไฟล์ที่หายไปไม่ใช่ทุกโครงการของคุณ):

  1. Xcode-> Source Control-> commit
  2. คลิกขวาที่ไฟล์ที่หายไป
  3. เลือกยกเลิกการเปลี่ยนแปลง

มันใช้งานได้สำหรับฉันฉันได้ลบโฟลเดอร์ DerivedData และคำเตือนนั้นมีไว้สำหรับไฟล์ในฐานะ "db.xcindexdb"
tontonCD

1
ก่อนอื่นฉันต้องแน่ใจว่ายอมรับและผลักดันการเปลี่ยนแปลงล่าสุดของฉัน จากนั้นฉันก็ทำ Xcode> การควบคุมแหล่งที่มา> ยกเลิกการเปลี่ยนแปลงทั้งหมดและจะแก้ไขข้อผิดพลาดทั้งหมดให้ฉัน
EdwardM

19

ปิดการใช้งานการควบคุมแหล่งข้อมูลล้างโฟลเดอร์สร้าง ( Alt+Shift+Cmd+K) แล้วเปิดใช้งานการควบคุมแหล่งที่มาอีกครั้ง

Xcode -> การตั้งค่า -> การควบคุมแหล่งที่มา -> เปิดใช้งานการควบคุมแหล่งที่มา


1
คำตอบที่ถูกต้อง ... แต่คำตอบที่ถูกต้อง @emrekyv โพสต์เมื่อ 3 เดือนก่อน ... เขาได้รับการโหวต
eric

@eric เขาแนะนำเพียงแค่ปิดการใช้งานการควบคุมแหล่งที่มาฉันแสดงวิธีการทำงานอย่างถูกต้อง
จอร์จ

18

ในกรณีของฉัน Xcode พบบาง.svnไดเรกทอรีเก่าที่อ้างอิงไฟล์ที่หายไป ฉันต้องขึ้นไปบนโฟลเดอร์โครงการเพื่อหาไฟล์. svn เมื่อลบไปแล้วฉันรีสตาร์ท Xcode และทุกอย่างเรียบร้อยดี


ใช่สิ่งนี้เกิดขึ้นเมื่อคุณลบบางสิ่งออกจากโครงการภายใต้การควบคุมเวอร์ชันเมื่อยังคงถูกอ้างอิงโดยการควบคุมเวอร์ชัน (ในกรณีของฉัน svn) การใช้ "การปรับปรุง svn" เพื่อกู้คืนไฟล์ที่หายไปจากนั้นลบวิธีที่เหมาะสมโดยใช้ "svn delete" ทำให้ปัญหาหายไปสำหรับฉัน
ChrisB

12

ฉันมีปัญหาคล้ายกันกับไฟล์จำนวนหนึ่งที่ถูกลบไปนานนับตั้งแต่โปรเจ็กต์ Xcode ของฉันในขณะที่ฉันยังใช้ Xcode 7 อยู่

ทางออกของฉันคือ:

  1. สร้างไฟล์ที่มีชื่อ Xcode กำลังบ่นเกี่ยวกับ (พวกเขาไม่ต้องการเนื้อหาใด ๆ )
  2. เพิ่มไฟล์ลงในโครงการ Xcode ของฉัน (ใน Xcode คลิกขวาที่ไดเรกทอรีโครงการหลักของฉันคลิกเพิ่มไฟล์ไปยัง my_project_nameและเลือกไฟล์ที่เพิ่งสร้างขึ้น
  3. เลือกไฟล์ที่เพิ่มใหม่และลบ - เลือกย้ายไปที่ถังขยะ

นี่เป็นการกำจัดคำเตือนสำหรับฉัน


สิ่งนี้ได้ผลกับฉันเช่นกัน ฉันมีปัญหาหลังจากคัดลอกโครงการที่มีอยู่เพื่อสร้างอนุพันธ์ แต่ด้วยฟังก์ชันการทำงานที่ลดลง source ไฟล์ต้นฉบับน้อยลง
สเตฟาน

9

หากต้องการเพิ่มคำตอบของ Alexander Vasenin ...

ก่อนอื่นฉันยอมรับและผลักดันการเปลี่ยนแปลงของฉัน

เมนูหลัก Xcode> การควบคุมแหล่งที่มา> กระทำ

จากนั้นฉันจะยกเลิกการเปลี่ยนแปลงทั้งหมดเพื่อกำจัดข้อผิดพลาด

เมนูหลัก Xcode> การควบคุมแหล่งที่มา> ยกเลิกการเปลี่ยนแปลงทั้งหมด

หลังจากนั้นข้อผิดพลาดที่ระบุว่า "ไฟล์ xxx.png หายไปจากการคัดลอกการทำงาน" หายไป


จะทำอย่างไรถ้าโครงการไม่ใช้การควบคุมเวอร์ชันหรือระบบควบคุมเวอร์ชันไม่ได้รับการสนับสนุนจาก XCode
Martin

8

สิ่งนี้เกิดขึ้นเมื่อคุณลบไฟล์บน Xcode แต่ไม่ได้บอกเซิร์ฟเวอร์ svn เกี่ยวกับมัน

ไปที่เครื่องมือบรรทัดคำสั่งและลบไฟล์โดยตรง

svn delete missingFile.m 

และกระทำมัน

svn commit -m "Deleting file"

โปรดทราบว่าหากคุณลบโฟลเดอร์. svn คำเตือนจะหายไป แต่คุณจะสูญเสียการสื่อสารกับเซิร์ฟเวอร์ svn


5

ฉันทำงานออกมา

เพียงเปิดเครื่องมือ SVN บุคคลที่สามค้นหาไฟล์ miss, Revert; นั่นคือทั้งหมดที่


5

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยเพิ่มคอมไพล์ เปิดเครื่องมือบรรทัดคำสั่ง

cd "project folder path"
git add .

ในภายหลังรีสตาร์ทโครงการ Xcode และเปิดโครงการของคุณอีกครั้ง


ถ้าคุณไม่ใช้ git ล่ะ
Martin

4

แสดงที่เป้าหมาย -> สร้างเฟส -> คัดลอกทรัพยากรบันเดิล และคำสั่ง build โฟลเดอร์ clean + shift + alt + k


3
ขอบคุณ แต่พวกเขาไม่ได้อยู่ใน Build Phases และโฟลเดอร์ build build การทำความสะอาดก็ไม่ได้ช่วยอะไรเช่นกัน
Iban

4

ฉันต้องไปที่เทอร์มินัลด้วยตนเองแล้วลบไฟล์ด้วยgit rm ProjectPath\aaa\xxx.pngแล้วคอมมิท หลังจากนั้นทุกอย่างทำงานได้ดี


3

รับสิ่งนี้สำหรับทุกโครงการหลังจากย้ายไปยัง XCode 8 วิธีนี้แก้ไขได้:

เมื่อกดคีย์ตัวเลือกผลิตภัณฑ์ (ในเมนูชื่อเรื่อง) -> โฟลเดอร์ Clean Build


2

ในกรณีของฉันฉันมีข้อมูลที่ไม่ถูกต้องจากโครงการเก่าของฉันในโปรแกรมจำลอง แก้ไขโดยรีเซ็ตเนื้อหาและการตั้งค่าในเครื่องจำลอง:

เครื่องมือจำลอง -> รีเซ็ตเนื้อหาและการตั้งค่า ...


1

สำหรับฉันทำงานต่อไปนี้:

เนื่องจากฉันไม่ได้และไม่เคยใช้ Git ฉันจึงสร้างโครงการใหม่ (XCode 8 ฉันไม่เห็น "ใช้ Git" ตามปกติหรือมีเครื่องหมายถูก) จากนั้นฉันก็ลบไฟล์ทั้งหมดในโครงการใหม่นี้อย่างตรงไปตรงมา ไปที่โครงการที่ยุ่งเหยิงเก่าคัดลอกทุกอย่างในโฟลเดอร์โครงการกลับมาที่โครงการที่สร้างขึ้นใหม่วางสิ่งของเก่าเปิดที่ - คำเตือนทั้งหมดเกี่ยวกับไฟล์ที่ไม่ได้มีอยู่เป็นเวลาหลายเดือนจะหายไป ไขว้นิ้วเอาไว้.


1

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยเพียงแค่ลากไฟล์ที่ระบุจากตัวค้นหาลงในเนวิเกเตอร์โครงการ (ตรวจสอบให้แน่ใจว่าได้เลือก "คัดลอกไฟล์" ในกล่องโต้ตอบ) และยืนยันไฟล์


1

คำเตือนเหล่านี้ไม่ได้สร้างคำเตือนพวกเขาเกี่ยวกับที่เก็บ SVN ของคุณ

ถูกต้องแล้วที่ไดเรกทอรีที่แสดงไม่มีอยู่อีกต่อไป CocoaPods จัดเก็บส่วนหัวไว้ในPods/Headers/{Private,Public}ขณะนี้ คุณต้องอัปเดตสำเนาการทำงานของคุณเพื่อให้สอดคล้องกับการเปลี่ยนแปลงเหล่านั้น


ฉันไม่ได้ใช้การควบคุมเวอร์ชันภายใน XCode และทำให้เกิดปัญหา
มาร์ติน

1

ในกรณีของฉันฉันลากและวางไฟล์จำนวนหนึ่งในหน้าต่างโครงการ Xcode ของฉันเพื่อเพิ่ม มันทำสำเนาไว้ในไดเรกทอรีต้นทางของฉัน แต่ไม่ได้วางไว้ในตำแหน่งที่ฉันต้องการให้มันไป (วางไว้ที่รากของไดเรกทอรีของฉันฉันต้องการให้อยู่ในไดเรกทอรีย่อย) โดยไม่คิดว่าฉันเพิ่งคว้าพวกมันใน Finder และย้ายไปยังไดเรกทอรีที่ฉันต้องการพวกเขาหลังจากกลับไปที่หน้าต่างโครงการแน่นอนว่าไม่สามารถหาพวกเขาได้ดังนั้นฉันจึงลบพวกเขาในหน้าต่างและเพิ่มพวกเขาอีกครั้ง หลังจากรวบรวมฉันเริ่มรับข้อผิดพลาดเหล่านี้

ฉันคิดว่าดังกล่าวข้างต้นว่าเป็นปัญหาคอมไพล์ แต่เมื่อฉันวิ่ง "gs ls-tree - เต็ม - ต้นไม้ - r - หัวหน้า" ฉันไม่เห็นไฟล์เลย?

อย่างไรก็ตามเพื่อแก้ไขทั้งหมดที่ฉันทำคือใช้คำสั่งเมนู "เพิ่มไฟล์ ... " เพื่อเพิ่มไฟล์แต่ละไฟล์ไปยังตำแหน่งเริ่มต้นสร้างบิลด์ใหม่แล้วลบออกจากหน้าต่างโครงการ (โดยใช้การย้ายไปที่ถังขยะ) และ มันกำจัดข้อผิดพลาดทั้งหมด


1

ฉันมีคำเตือนและไม่สามารถเปลี่ยนแปลงการเปลี่ยนแปลงภายใต้ XCode (โดยใช้ svn) สิ่งที่ฉันต้องทำก็คือรีสตาร์ท XCode และปัญหาก็หายไป


1

สิ่งนี้ใช้ได้กับฉัน: Xcode -> ("ตัวเลือก + คลิก") ผลิตภัณฑ์ -> Clean Build Folder ...
กว่ารีสตาร์ท xCode


0

ในกรณีของฉันมันเป็นปัญหากับระบบคอมไพล์และระบบไฟล์

ฉันส่งไฟล์เดียวกันสองครั้งโดยไม่ได้ตั้งใจโดยใช้พา ธ ไฟล์ที่แตกต่างกันเฉพาะในกรณี:

MyProject/Resources/foo.png
MyProject/resources/foo.png

Xcode กำลังบ่นเกี่ยวกับหนึ่งในไฟล์ที่หายไป

แก้ไขโดยการลบไฟล์ที่ละเมิดและเพิ่มอีกครั้ง

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit

0

นี่เกี่ยวข้องกับการควบคุมแหล่งแน่นอน ฉันเปลี่ยนชื่อและย้ายไฟล์ plist สองไฟล์ที่ไม่ได้คอมมิตและได้รับข้อผิดพลาดนี้ ฉันใช้ svn ฉันสามารถแก้ไขได้Source Control - Commitด้วยการลบไฟล์อ้างอิงเก่าออก


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