Otrzymuję taki błąd:
[WARN] Ostrzeżenie: wiele poleceń kompilacji dla pliku wyjściowego /Developer/B/Be/build/Release-iphonesimulator/BB.app/no.png
[WARN] Ostrzeżenie: wiele poleceń kompilacji dla pliku wyjściowego /Developer/B/Be/build/Release-iphonesimulator/BB.app/d.png
[WARN] Ostrzeżenie: wiele poleceń kompilacji dla pliku wyjściowego /Developer/B/Be/build/Release-iphonesimulator/BB.app/n.png
Ale sprawdziłem Xcode i nie widzę żadnych duplikatów takich plików. Jak mówi ten post na listach mailingowych Apple, nie ma duplikatów.
Jest to łatwo spowodowane po dodaniu podprojektów opartych na git. Xcode nie jest wystarczająco inteligentny, aby zignorować podfolder .git, nawet jeśli nie widzisz go z wyszukiwarki, więc bardzo się pomyli, że istnieje wiele plików o nazwie „master” lub „exclude” (standardowe pliki git repo). Z Xcode4 przejdź do projektu (root lewego drzewa), następnie kliknij cel aplikacji i rozwiń „Kopiuj zasoby pakietu”, a następnie usuń wszystkie odniesienia do .git, nie powinieneś ich upieczone w aplikacji.
źródło
W rzeczywistości odpowiedź na to pytanie jest dość prosta.
W projekcie Xcode wyszukaj pliki, które powodują ostrzeżenie, i po prostu usuń jeden z nich.
Xcode wyświetli tylko jedno odniesienie do tego pliku w wynikach wyszukiwania, ale nie przestawaj, kontynuuj i usuń go. (lepiej jest wykonać kopię zapasową pliku projektu przed usunięciem)
Teraz zbuduj projekt ponownie. Ostrzeżenie powinno teraz zniknąć. (ta odpowiedź dotyczy poprzedniej wersji xcode)
źródło
To nie jest błąd Xcode, chociaż komunikat ostrzegawczy nie jest wystarczająco pomocny, aby opisać prawdziwą przyczynę.
Ten komunikat o błędzie pojawia się, gdy w projekcie jest kilka plików o tej samej nazwie. Wystarczy usunąć lub zmienić nazwy plików ze zduplikowanymi nazwami, a problem zostanie rozwiązany.
źródło
find . | grep -v \.git | rev | cut -d/ -f1 | rev | sort | uniq -c | sort
jednak to nie rozwiązało mojego problemuDzieje się tak, jeśli masz 2 pliki o tej samej nazwie w projekcie. Mimo że pliki są w grupach w XCode podczas kompilacji projektu, wszystkie pliki trafiają do tego samego katalogu. Innymi słowy, jeśli masz /group1/image.jpg i /group2/image.jpg, skompilowany projekt będzie miał tylko jeden z dwóch plików image.jpg.
źródło
Jak wspomniano wcześniej, ten problem można zobaczyć, jeśli masz wiele plików o tej samej nazwie, ale w różnych grupach (żółte foldery) w nawigatorze projektu. W moim przypadku było to celowe, ponieważ miałem wiele podkatalogów z „Preview.jpg”, które chciałem skopiować do pakietu aplikacji:
W tej sytuacji musisz upewnić się, że Xcode rozpoznaje odniesienie do katalogu (niebieska ikona folderu), a nie tylko grupy.
Usuń niepoprawne pliki i wybierz „Usuń odniesienie” (więc nie usuwamy ich całkowicie):
Ponownie dodaj je do projektu, przeciągając je z powrotem do nawigatora projektu. W wyświetlonym oknie dialogowym wybierz „Utwórz odwołania do folderów dla dowolnych dodanych folderów”:
Zauważ, że pliki mają teraz niebieską ikonę folderu w nawigatorze projektu:
Jeśli spojrzysz teraz na sekcję „Kopiuj zasoby pakietu” faz kompilacji celu, zauważysz, że istnieje jeden wpis dla całego folderu, a nie wpisy dla każdego elementu zawartego w katalogu. Kompilator nie będzie narzekał na wiele poleceń kompilacji dla tych plików.
źródło
To nie jest błąd. Xcode Assist może Ci pomóc. Wybierz cel po lewej stronie w Nawigatorze projektu. Kliknij „Zatwierdź ustawienia” na dole ustawień. Xcode sprawdzi ustawienia i usunie duplikaty, jeśli to możliwe.
źródło
inna wersja tej sytuacji może wystąpić, gdy w fazie kompilacji nagłówków występują duplikaty .
naprawić to…
Build Phases
Headers
fazę kompilacji+|-
pola w lewym dolnym rogu-
przyciskźródło
W moim przypadku przyczyną problemu była ta sama nazwa celu i folderu w grupie.
Po prostu zmień nazwę konfliktu pliku lub folderu, aby rozwiązać problem.
źródło
Znalazłem całkiem proste rozwiązanie tego:
Ostrzeżenie zniknęło! Sprawdź to zdjęcie w celach informacyjnych.
źródło
Jestem prawie pewien, że może to być spowodowane błędem XCode 4, przynajmniej w przypadkach, w których go spotkałem.
Dzieje się tak, jeśli do projektu dodaje się jednocześnie wiele plików zależnych od języka. Dowiedziałem się tego, przeglądając różnice git. Nic nie zrobiłem w zatwierdzeniu, ale dodałem kilka nowych zlokalizowanych plików stalówki. Ale patrząc wstecz na różnicę pliku project.pbxproj, pokazał on kilka nowych zduplikowanych odniesień dodanych do plików, które były już wcześniej w projekcie. Pliki, które to zrobiła, również wydawały mi się przypadkowe.
Wielokrotnie odtworzyłem to samo dokładne zachowanie.
Usunięcie tych plików z projektu nie rozwiązuje problemu, ponieważ usuwa tylko oryginalne odniesienie i pozostawia duplikaty. Jedynym sposobem, aby to naprawić, jest cofnięcie zatwierdzenia i rozpoczęcie od nowa lub ręczna edycja pliku projektu, co jest naprawdę dobrym sposobem, aby go jeszcze bardziej zepsuć, ponieważ trudno jest powiedzieć, które duplikaty usunąć i musisz to zrobić w tonach różnych miejsc.
Xcode 4 to dla mnie ogromne rozczarowanie.
źródło
Dzieje się tak, ponieważ twoje „no.png” „d.png” i „n.png” są zduplikowane w zasobach. Po prostu usuń zdublowane pliki i usuń.
źródło
Błąd pojawia się, gdy masz więcej niż jedno odwołanie do tego samego pliku. Miałem 2 pliki o tej samej nazwie i otrzymałem ten błąd. Po usunięciu jednego z nich błąd zniknie.
źródło
Kolejna odmiana w tej kwestii. Pojawił się ten sam komunikat, żadne z wcześniej sugerowanych rozwiązań nie rozwiązało problemu (zdecydowanie miałem na przykład tylko jedną kopię szkodliwego pliku).
Moje rozwiązanie polegało na edycji pliku project.pbxproj w edytorze tekstów (po zamknięciu XCode i oczywiście utworzeniu kopii zapasowej pliku) i usunięciu wszystkich odniesień do szkodliwego pliku. Następnie, po ponownym uruchomieniu XCode, ręcznie dodałem plik z powrotem do projektu i wszystko było w porządku.
(Podejrzewam, że ten problem przytrafił mi się z powodu instrukcji, tj .: non-XCode, scalenie pliku projektu.)
źródło
Otwórz folder Frameworks w swoim projekcie i upewnij się, że wewnątrz są tylko frameworki. Przez pomyłkę dodałem cały folder programisty!
źródło
Miałem ten sam problem kilka minut temu. Wspomniałem, że zmiana „celu wdrożenia” rozwiązała mój problem.
źródło
Dla mnie Cel> Ustawienia kompilacji> Opakowanie> Nazwa produktu został ustawiony na to samo, co inna wartość wymieniona w pliku .plist, który był niestandardowy dla mojej aplikacji. Ostatecznie z powodu naszego procesu kompilacji tworzy to zduplikowane pliki.
źródło
Swift 3 : (ale także starsze wersje) dzieje się tak, gdy mam zasoby z duplikatami. Po prostu zmień nazwę plików z tym problemem i wszystko idzie dobrze.
Może się to zdarzyć również po utworzeniu
Assets.xcassets
i zmianie nazwy duplikatów na nowe nazwy, więc po pewnym czasie zapomniałeś go i usunąłeś, aby dodać odniesienia do folderów, ale ten powraca do problemu duplikatów plików.źródło
Jednym z prostych sposobów jest
źródło
Kluczem było zrobić
pod deintegrate
irm *.workspace
złożyć! Co za strata czasu !źródło
Użytkownicy React-Native. plik goto -> ustawienia obszaru roboczego -> system budowania -> zmień go na starszy system budowania. i powinno się teraz dobrze budować. React-Native nie jest jeszcze kompatybilny z nowym systemem plików.
źródło
Komentowanie use_frameworks! w PodFile pracował dla mnie.
Uwaga: Czy to zrobiono na XCode 10.1, wersja pod 1.8.4
źródło
Chociaż jestem pewien, że jest lepszy sposób, nukowanie zajęło mi mniej niż 60 sekund i było to jedyne, co mogłem znaleźć, które zadziałało.
git remote add <url.git>
lubgit remote set-url <url.git>
źródło