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.
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:
- twórz nowe grupy w drzewie folderów Xcode i organizuj pliki w nich, jak chcesz.
- 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.
- Wszystkie odniesienia w Xcode powinny być teraz czerwone (to jest OK!).
-
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:
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!
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.
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:
-
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.
- 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 .
-
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.
- w Finderze (lub Git) Przenieś pliki wybrane w kroku 1 do folderów, w których chcesz je umieścić.
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.
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:
- Utwórz foldery mapujące grupy w Finderze
- Przenieś pliki do tych folderów w Finderze
- Wybierz każdy plik, który jest czerwony na pasku bocznym Xcode po lewej stronie
- Kliknij przycisk "Pokaż / Ukryj narzędzia", aby wyświetlić prawy pasek boczny (patrz rysunek)
- w polu "tożsamość i typ" kliknij mały przycisk i wybierz lokalizację pliku (patrz rysunek)
Zdrówko.
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.]}
- 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:
- Wybierz pliki w Finder
- Utwórz dla nich folder w Finderze
- Przeciągnij/upuść je do folderu (automatycznie je przenosi)
- Przeciągnij / Upuść folder Findera do Xcode (automatycznie: tworzy folder Xcode, dodaje każdy plik w folderze Findera)
- 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:)
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!
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.
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
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.
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.
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...
- Usuń pliki / grupy z xcode i wybierz "Usuń odniesienie".
- Przejdź do Findera i przenieś folder / pliki w razie potrzeby.
- Po zakończeniu wracam do Xcode i wybieram File - >Add Files to {ProjectName}.
- Upewnij się, że zaznaczono opcję "Kopiuj elementy do folderu grupy docelowej (w razie potrzeby)"
- Upewnij się, że zaznaczono opcję "Utwórz grupę dla każdego dodanego folderu"
- Upewnij się, że "Dodaj do celu" jest zaznaczone dla Twojego projekt
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.
- Utwórz folder docelowy za pomocą Findera
- Dodaj folder w XCode (Plik -> Dodaj pliki ) za pomocą panelu Opcje, aby wybrać odniesienie do folderu (Nie grupę)
- 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.
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