Przenoszenie plików do prawdziwego folderu w Xcode

Kiedy zaczynałem mój projekt, byłem szczęśliwy, że mogę używać grup w Xcode, a nie dosłownych folderów: ponieważ używam przeglądarki w Xcode, aby uzyskać dostęp do wszystkiego, rzeczy były ładnie zorganizowane i byłem szczęśliwy.

Jednak teraz, gdy projekt ma być udostępniony do kontroli wersji, sam folder projektu jest horrorem dla tych, którzy próbują go zeskanować za pomocą terminala, około 300 plików, z których ponad połowa to Grafiki.

Próbuję teraz przeorganizować rzeczy, stworzyć prawdziwe foldery i importowanie ich do Xcode. Niestety Xcode nie pozwala mi pracować z nimi tak, jak to robi z grupami. Na przykład, jeśli kliknę prawym przyciskiem myszy na rzeczywiście dodany folder (niebieski, a nie żółty) i zdecyduję się dodać istniejące pliki, to w rzeczywistości nie umieszcza ich w tym folderze, ale umieszcza je w swoim katalogu głównym.

Podobnie, nie mogę przenieść pliku ze sztucznego folderu (grupy) do prawdziwego folderu: Xcode nie uważa prawdziwych folderów za ważne miejsca do przenoszenia rzeczy.

Co mi umyka? Jak mogę przekonać Xcode, aby pozwolił mi używać folderów w sposób, w jaki używam grup? Jest tu odpowiedź na nieco podobne pytanie , ale to nie rozwiązuje mojego problemu, ponieważ pracuję z istniejącymi plikami.

Author: Community, 2010-12-11

11 answers

A modern (and dead simple! w 2017 roku (Xcode 6, 7, 8, a czasami 9, ponieważ robi to automagicznie przez pewien czas):

Jeśli przenosisz kilka plików do nowego folderu i utrzymujesz hierarchię podrzędną, jest to o wiele łatwiejsze niż przenoszenie KAŻDEGO pliku osobno:

  1. twórz nowe grupy w drzewie folderów Xcode i organizuj pliki w nich, jak chcesz.
  2. Utwórz pasujące fizyczne drzewo folderów w Finderze i uporządkuj swoje fizyczne pliki do nich pasują do tego, co zrobiłeś w kroku 1.
  3. Wszystkie odniesienia w Xcode powinny być teraz czerwone (to jest OK!).
  4. Z Menedżera tożsamości i typów wybierz grupę w Xcode, którą chcesz przenieść, a następnie kliknij ikonę folderu w okienku informacji:

  5. W oknie dialogowym wyboru programu Finder Znajdź odpowiedni Nowy folder utworzony dla tej grupy w Kroku 2. wszystkie pliki wewnątrz tej grupy będą teraz automatycznie odkryte na nowo!

Czy to nie miłe? Co najwyżej będziesz musiał powtórzyć te 5 kroków raz dla każdej nowej grupy, którą utworzyłeś (co bije na głowę przenoszenie KAŻDEGO pliku z osobna!)

Punkty Bonusowe!

Powiedz, że przypadkowo spieprzyłeś ruch, a teraz kilka Twoich plików jest czerwonych i nie można ich znaleźć: wybierz wiele plików, które są uszkodzone, i używając ikony tego samego folderu na zrzucie ekranu z kroku 4, znajdź właściwy folder, który zawiera te pliki i automatycznie rozwiążą brakujące ścieżki.

 168
Author: brandonscript,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-19 14:07:40

Dalsze edytowane czerwiec 2017: Xcode 9 robi to automatycznie, nie wymaga specjalnego wysiłku. Ta odpowiedź i Brandona dotyczą tylko Xcode 8 i wcześniejszych.

Edytowane grudzień 2016: odpowiedź Brandona poniżej jest teraz lepszym rozwiązaniem. Kiedy ta odpowiedź powstała w 2010 roku, była to jedyna opcja, jaką mogłem znaleźć. Teraz proponuję odpowiedź Brandona , poniżej.


Okazuje się, że przenoszenie plików do prawdziwych folderów jest z pewnością możliwe, choć nie tak proste, jak powinno być.

Dostałem podstawowe informacje z pytania tutaj, Xcode organizowanie plików i folderów (podstawowe obiekty modelu danych-iPhone), ale nauczyłem się ważnych rzeczy po drodze.

Proces

Przenoszenie plików jest procesem dwuetapowym z wieloma podetapami:

  1. Powiedz Xcode, gdzie mają być Pliki :

    • kliknij prawym przyciskiem myszy plik lub grupę plików, które chcesz przenieść i wybierz Pobierz informacje z menu kontekstowego, które się pojawi. Zostanie wyświetlone okno Group Info lub File Info .

    • kliknij przycisk Wybierz po prawej stronie okna w obszarze ścieżka . Zostanie wyświetlone okno dialogowe.

    • przejdź do folderu, do którego chcesz przenieść pliki. Utwórz Nowy Folder w razie potrzeby. Kliknij przycisk Wybierz w prawym dolnym rogu okna dialogowego, a następnie zamknij informacja o grupie/informacja o pliku okno.

    • nazwy plików / plików w grupie zmieni kolor na czerwony, aby wskazać, że Xcode nie może ich znaleźć w określonym miejscu.

  2. Przenieś rzeczywiste pliki

    • w Finderze (lub Git) Przenieś pliki wybrane w kroku 1 do folderów, w których chcesz je umieścić.

    • Przełącz z powrotem na Xcode. Wszystkie pliki / grupy powinny być ponownie Czarne. Jeśli są nadal czerwony, to przegapiłeś przeniesienie czegoś do odpowiedniego folderu.

Porady

Nauczyłem się kilku ważnych rzeczy dostosowując ~300 plików w tym projekcie:

  • niektóre pliki odmawiają przeniesienia się w ten sposób; to znaczy, gdy przejdziesz do nowego miejsca docelowego, przycisk Wybierz jest wyłączony, podobnie jak przycisk Nowy Folder . Rozwiązaniem, choć Nie wiem dlaczego to robi różnicę, jest najpierw użyć Xcode, aby umieścić te pliki w Grupa (kliknij prawym przyciskiem myszy pliki i wybierz Grupa i nadaj grupie nazwę), a następnie przenieś grupę do nowej lokalizacji. Po przeniesieniu plików w Finderze możesz je usunąć z grupy (przeciągając je do nowej grupy nadrzędnej / folderu i usuwając grupę).

  • Zatrzymaj i buduj co kilka minut, po wykonaniu kroku 2 dla kilku plików. Budowa powie Ci, czy coś spieprzyłeś do tej pory, dzięki czemu łatwiej będzie wrócić i napraw to, zanim narobisz za dużo szkód.

  • jeśli pliki nie przeniosą się tam, gdzie chcesz - miałem diabła czasu przenoszenie niektórych plików, które zostały utworzone na początku-w folderze Classes - możesz po prostu przeciągnąć je ze starego miejsca w Finderze do miejsca poręcznego, takiego jak pulpit, usunąć odniesienia do nich w Xcode, a następnie ponownie zaimportować je za pomocą prawego/control-click Dodaj istniejące pliki opcja.

  • jeśli w przeszłości używałeś Xcode, aby usunąć odniesienia do plików bez również przenoszenia ich do kosza w tym projekcie, znajdziesz pliki, które nie muszą być przenoszone, ale po prostu siedzi tam. Uważaj, że nie robisz tego, co zrobiłem, myląc nazwy bieżącej grupy plików, które przenosiłem i starszych, już nie połączonych plików, nalegając, że Xcode importuje je, ponieważ myślałeś, że jest gęsty.

Mam nadzieję, że to pomoże jakiejś przyszłej osobie. Dziwię się, że było to tak trudne i czasami trudne, jak było.

 118
Author: Matthew Frederick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-07 23:40:30

W Xcode 5 lub Xcode 6:

  1. Utwórz foldery mapujące grupy w Finderze
  2. Przenieś pliki do tych folderów w Finderze
  3. Wybierz każdy plik, który jest czerwony na pasku bocznym Xcode po lewej stronie
  4. Kliknij przycisk "Pokaż / Ukryj narzędzia", aby wyświetlić prawy pasek boczny (patrz rysunek)
  5. w polu "tożsamość i typ" kliknij mały przycisk i wybierz lokalizację pliku (patrz rysunek)

Tutaj wpisz opis obrazka

Zdrówko.

 104
Author: reinaldoluckman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-23 11:49:19

Znalazłem najbardziej niezawodnym sposobem obejścia przerażającego projektu XCode jest uporządkowanie wszystkich plików w Finderze, z dwóch powodów:

    Finder nie popełnia "błędów", w przeciwieństwie do interfejsu graficznego XCode.]}
  1. gdy rzeczy są zorganizowane w Finderze, można przeciągnąć / upuścić całe foldery Finder do XCode, i ... robi dokładnie to, co chciałeś, bez wysiłku

Nawet przy przenoszeniu istniejących plików XCode jest to szybsze:

  1. Wybierz pliki w Finder
  2. Utwórz dla nich folder w Finderze
  3. Przeciągnij/upuść je do folderu (automatycznie je przenosi)
  4. Przeciągnij / Upuść folder Findera do Xcode (automatycznie: tworzy folder Xcode, dodaje każdy plik w folderze Findera)
  5. cmd-wybierz każdy "czerwony" plik, który widzisz w Xcode (ponieważ je przesunąłeś) i naciśnij klawisz delete

NB: nigdy nie używam opcji "Utwórz przeciągnięte foldery z podgrupami", ponieważ w XCode 3 często był beznadziejnie buggy i może zepsuć projekty. Apple najwyraźniej (IMHO) nie używa tej funkcji wewnętrznie, w przeciwnym razie nigdy nie byłoby dozwolone być tak buggy; jeśli Apple nie używa czegoś, to generalnie nie jest bezpiecznie z niego korzystać - nie są dobrzy w testowaniu:)

 22
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-07 22:53:11

Istnieje proste w konfiguracji i użyciu narzędzie linii poleceń - "synx" dostępne w GitHubie, które robią dokładnie to, co jest potrzebne tutaj.

Reorganizuje folder projektu Xcode w Finderze, aby dopasować grupy Xcode w projekcie.

Znajdziesz go tutaj: https://github.com/venmo/synx

UPDATE: XCode 9 domyślnie obsługuje tę funkcję. Nie musisz już używać innych narzędzi!

 20
Author: Nitesh Borad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-16 09:20:33

Xcode 9

Wygląda na to, że Xcode 9 domyślnie go obsługuje. Gdy przenosisz pliki z grupy do innej, plik zostanie również przeniesiony ze starego folderu do nowego folderu. Zostało to ogłoszone w WWDC 2017.

 5
Author: Guy Daher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-23 12:35:24

Użyłem następującego narzędzia, aby to osiągnąć.porządkowanie folderów w grupach Xcode

--no-default-exclusions
 3
Author: Mike.R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-09 12:24:58

Zazwyczaj przenoszę pliki do katalogu bezpośrednio w Finderze, a następnie naprawiam pliki z nazwami koloru czerwonego w XCode w oknie dialogowym "Pobierz informacje": kliknij " Wybierz..."przycisk i wybierz nowy locatoin pliku. To pierwsza odpowiedź, gdy chcę przenieść pliki w XCode, i to działa.

 2
Author: Xie Yanbo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-28 15:20:50

Od wersji Xcode 4.5 po przeciągnięciu struktury folderów jest ona automatycznie przekształcana w zagnieżdżone grupy w Nawigatorze projektu. Następnie, jeśli spojrzysz na dysk (np. kliknij prawym przyciskiem myszy i wybierz Pokaż w Finderze), struktura folderów została zachowana.

Okazało się, że próba naprawienia rzeczy ze starszego projektu była tylko bólem. Znacznie łatwiej było po prostu usunąć te pliki i przeciągnąć je ponownie.

 1
Author: Snowcrash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-27 08:35:29

Aby przenieść folder w xcode 4.5 po prostu...

  1. Usuń pliki / grupy z xcode i wybierz "Usuń odniesienie".
  2. Przejdź do Findera i przenieś folder / pliki w razie potrzeby.
  3. Po zakończeniu wracam do Xcode i wybieram File - >Add Files to {ProjectName}.
  4. Upewnij się, że zaznaczono opcję "Kopiuj elementy do folderu grupy docelowej (w razie potrzeby)"
  5. Upewnij się, że zaznaczono opcję "Utwórz grupę dla każdego dodanego folderu"
  6. Upewnij się, że "Dodaj do celu" jest zaznaczone dla Twojego projekt
 1
Author: Shannon Cole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-13 11:32:51

Najprostsza technika dla XCode 8....

Zakładając, że masz pliki A, B,C w grupie logicznej, ale chcesz je przenieść do folderu na dysku twardym.

  1. Utwórz folder docelowy za pomocą Findera
  2. Dodaj folder w XCode (Plik -> Dodaj pliki ) za pomocą panelu Opcje, aby wybrać odniesienie do folderu (Nie grupę)
  3. przeciągnij pliki A, B,C z (starej) grupy do (nowej) referencji folderu w Nawigatorze projektu. XCode przeniesie pliki do folderu, zarówno w projektu i na dysku.

Zrobione.

 0
Author: software evolved,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-27 17:49:44