Przypadkowo usunięto plik xcassets z projektu Xcode

81

Chciałem usunąć pojedynczy folder z kolekcji obrazów, jednak w jakiś sposób udało mi się wyrzucić cały plik xcassets do kosza.

Normalna metoda „Odłóż” nie jest dostępna, a zwykłe przeciągnięcie usuniętego folderu do Xcode powoduje błąd:

Nie można skopiować pliku „Images.xcassets” do „ProjectPear”, ponieważ element o tej samej nazwie już istnieje.
Aby zapisać plik, podaj inną nazwę lub odsuń lub usuń istniejący plik i spróbuj ponownie.

Nie jestem pewien, gdzie znajduje się ta kolekcja w moim projekcie Xcode, ponieważ nawigator nie wydaje się niczego pokazywać, a wiersz polecenia również nie zawiera żadnych wskazówek. Boję się majstrować przy project.pbxprojpliku, ponieważ może on pomieszać dużo więcej niż tylko moją kolekcję obrazów.

Edycja: Przeciągnięcie plików z powrotem do Findera z Kosza powiodło się, jednak nawigator Xcode nie rozpoznaje już - lub w tym przypadku nadal nie rozpoznaje - pliku .xcassets. Nie jestem pewien, czy coś dodać w pliku .pbxproj.

Aeveus
źródło
Po prostu wykonaj jedno polecenie + Z (Cofnij). Zaoszczędziło mi to dużo czasu :)
Gokul

Odpowiedzi:

216

Po prostu zrobiłem to sam i wymyśliłem, jak szybko rozwiązać problem.

  1. Przejdź do folderu projektu w Finderze . Powinieneś zauważyć, że folder Images.xcassets nadal tam jest.

  2. Przenieś go w inne miejsce, na przykład na pulpit lub coś w tym stylu. Nadal zawiera wszystkie obrazy i pliki json.

  3. Wróć do Xcode i utwórz nowy katalog zasobów dla obrazów.

    File > New > File... > Resource > Asset Catalog

    Nazwij to Obrazy .

  4. Zamknij Xcode i wróć do Findera.

  5. Skopiuj foldery ze starego katalogu Images.xcassets do nowego katalogu Images.xcassets w projekcie.

  6. Uruchom Xcode i wróć do biznesu!

Jason Barker
źródło
Wow, właśnie przypadkowo usunąłem w moich Assets.xcassets i nadal działa, ale to nie działa, więc nie mogę dodać nowych zdjęć ... Szukałem folderu wszędzie bez powodzenia
Jesus Rodriguez
@JesusAdolfoRodriguez, Jeśli wybrałeś opcję „Przenieś do kosza” po przypadkowym usunięciu katalogu zasobów, powinieneś być w stanie znaleźć folder w koszu, chyba że oczywiście kosz został już opróżniony.
Sean Blaney
1
Miło, pracowało dla mnie. Do Twojej wiadomości dla każdego, kto przypadkowo to usunął, myślę, że to dlatego, że próbowaliśmy Cmd + Usuń plik w folderze Zasoby. Zamiast tego po prostu naciśnij Usuń, aby usunąć plik
Merricat
23

Jeśli nie usunąłeś go całkowicie, możesz po prostu przeciągnąć go z powrotem z Findera. (Kliknij prawym przyciskiem myszy swój projekt i wybierz „Pokaż w Finderze”, aby sprawdzić)

Jeśli zniknął całkowicie, po prostu przejdź do Cmd + N -> Zasób i wybierz Katalog zasobów. Następnie ponownie dodajesz swoje obrazy za pomocą przeciągania i upuszczania lub kliknięcia prawym przyciskiem myszy i „Dodaj pliki do ...” i powinno być gotowe.

Mam nadzieję, że to pomoże.

Finn Gaida
źródło
1
Dzięki, udało mi się przeciągnąć wszystko z powrotem do folderu, ale nawigator nie pokazuje pliku. Czy istnieje sposób na odświeżenie nawigatora (lub coś podobnego)?
Aeveus,
Cmd + W i ponowne otwarcie zawsze pomogło, ale warto spróbować. Jeśli jednak znalazłeś pliki w Finderze, po prostu przeciągnij je z powrotem i to powinno być to
Finn Gaida
Cóż, przeciąganie plików z powrotem poszło dobrze, po prostu nawigator nie rozpoznaje już pliku .xcassets, ponieważ jest po prostu niewidoczny. Mogę znaleźć to dobrze w Finderze, ale nawigator XCode mi nie wierzy.
Aeveus,
Może to zabrzmieć głupio, ale dla mnie ponowne uruchomienie XCode i czyszczenie projektu często wykonywało tę pracę przerażająco
Finn Gaida,
W tej chwili jestem trochę sfrustrowany, więc z zadowoleniem przyjmuję wszystkie odpowiedzi. Próbowałem już odbudować i wyczyścić projekt oprócz ponownego uruchomienia XCode; nie pomogło. :(
Aeveus,
3

Miałem dziś ten sam problem z Xcode Beta, nie mogłem też z jakiegoś powodu utworzyć nowego katalogu zasobów. To było w projekcie rozszerzenia Watchkit Oto, co zrobiłem, aby to rozwiązać:

  1. W Finderze skopiowałem istniejący plik images.xcassets z innego folderu w mojej aplikacji na pulpit.
  2. Usunięto zawartość tego folderu.
  3. Skopiowałem usunięty (pojedynczy) zasób obrazu z kosza do folderu (na moim komputerze).
  4. Przeciągnąłem cały folder do mojego projektu w XCode.

To naprawiło problem i wszystko wróciło do normy.

Shachar
źródło
3

Jeśli usunąłeś go całkowicie, oto kroki, aby uzyskać nowy plik Images.xcassets:

  1. W Nawigatorze kliknij projekt.
  2. Przejdź do: Plik> Nowy> Plik> Dodaj katalog zasobów> Nazwij go.
  3. Aby dodać do niego AppIcon i LaunchImage:

Przejdź do ustawienia projektu:

  1. Na karcie Ogólne przejdź w dół do ikon aplikacji i uruchom obrazy
  2. Kliknij opcję obok źródła ikon aplikacji i wybierz opcję Użyj katalogów zasobów
  3. Pojawi się okno - wybierz nazwę nowego pliku Images.xcassets i kliknij Migrate.
  4. Wybierz także dodaj LaunchImage. Teraz możesz zobaczyć nowe Images.xcassets w swoim projekcie :).
Nupur Sharma
źródło
3

Przypadkowo usunąłem odniesienie do folderu zasobów, więc nie było już widoczne w Xcode. Ale kiedy sprawdzałem z wyszukiwarki, folder zasobów nadal znajdował się w folderze projektu.

Jeśli to zrobiłeś, po prostu otwórz menu plików w Xcode (z bieżącego projektu) i na samej górze możesz dodać (istniejące) pliki do tego samego projektu (z powrotem) - jest napisane „Dodaj pliki do ...”

Bella
źródło
lub po prostu przeciągnij i upuść z Findera
djdance
2

Zwykle odwołanie do pliku jest usuwane z Xcode, oryginalny folder nadal istnieje w katalogu projektu.

Kliknij prawym przyciskiem myszy folder projektu, kliknij „Dodaj pliki do„ swojego projektu ””, znajdź zasoby w swoim projekcie i kliknij Dodaj i gotowe

wprowadź opis obrazu tutaj

Ajji
źródło
1

Kliknij prawym przyciskiem myszy cokolwiek w swoim projekcie i kliknij „Pokaż w Finderze”. Poszukaj trochę w folderze projektu w wyszukiwarce, a znajdziesz go. Nie korzystam teraz z komputera Mac lub dałbym ci bardziej bezpośrednią ścieżkę prosto do domyślnej .xcassetslokalizacji folderu.

Zresztą, jeśli nie możesz skopiować / utworzyć „nowego” folderu w tej lokalizacji, ponieważ „element o tej samej nazwie już istnieje”, oznacza to, że w rzeczywistości folder nie został usunięty. Właśnie usunąłeś odwołania projektu do tego folderu w XCode. Folder na dysku twardym nigdzie się nie przenosił.

nhgrif
źródło
Ach, dzięki, znalazłem ten folder, ale wydaje się, że brakuje w nim większości plików. Czy zdarzyło Ci się wiedzieć, czy resztę można odzyskać?
Aeveus
Nie jestem pewny. Jeśli jest to coś, co było w twoim projekcie, ale teraz nie jest, oznacza to, że znajduje się w folderze projektu w Finderze lub mogło zostać przeniesione do kosza.
nhgrif
1

[Zdaję sobie sprawę, że to bardzo stare pytanie od ciebie @ Aeveus] Wszystkie odpowiedzi mówią o ponownym dodaniu zasobów. Biorąc pod uwagę, że nie można było tego cofnąć, jedyny krok, którego brakuje w oryginalnym opisie, to:

W pliku project.pbxproj byłyby odniesienia do zasobów, jak poniżej:

45AE4E781C183FBA0051674F /* Assets.xcassets in Resources */ = {... 

Zakładając, że masz system kontroli kodu źródłowego (git itp.), Możesz przywrócić oryginalną zawartość pliku project.pbxproj lub ręcznie po prostu ponownie dodać usunięte wiersze i ponownie otworzyć plik projektu w xcode. Wszystko gotowe.

Jey
źródło
0

Miałem ten sam problem i wykonałem powyższe kroki od Jasona, ale w końcu otrzymałem Image.xassets w kolorze czerwonym, więc aby znaleźć moje obrazy, musiałem kliknąć Image.xassets, a następnie w prawym górnym rogu umieścić bezwzględna ścieżka do mojego folderu image.xassets i rozwiązało mój problem. Mam nadzieję, że to pomoże!

Albeis
źródło