błąd: wiele poleceń tworzy „/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist”: 1) Docelowa „kopia optymalna” ma „OptimalLive” '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' do '/ Users / uesr / Library / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptimalLive .app / Info.plist '2) Miejsce docelowe' OptimalLive 'posiada polecenie kopiowania z' /Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist 'do' / Users / uesr / Biblioteka / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptimalLive.app / Info.plist '3) Target' OptimalLive 'ma komendę procesową z wejściem „/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist”
Uruchomienie kodu w Xcode9 działa, ale w Xcode10 wystąpił błąd.
źródło
Odpowiedzi:
Problem może występować z powodu wielu plików Plist lub innych plików w aplikacji
Rozwiązanie -> Otwórz cel -> Fazy kompilacji> Skopiuj zasoby pakietu i usuń
info.plist
stamtąd.Uwaga: jeśli również opracowałeś aplikację do zegarków, musisz również usunąć plist z zegarka i rozszerzenie zegarka.
źródło
info.plist
plik w jednej z moich prywatnych zależności CocoaPods, który był coraz bardziej zgarnięty, ponieważ pasowała do niegosource_files
właściwość podspec . Nie potrzebowałeminfo.plist
pliku w moim module, więc właśnie go usunąłem.Znalazłem rozwiązanie tego błędu kompilacji, aby każdy, kto ma ten sam problem z systemem kompilacji Xcode 10, wykonaj następujące kroki, aby go naprawić:
Rozwiązuje problem kompilacji z nowym Xcode 10.
Jeśli chcesz pracować z nowym systemem kompilacji, pomoc dotyczącą rozwiązywania problemów znajdziesz na tej stronie pomocy Apple Xcode .
Mam nadzieję że to pomoże!
źródło
Przejdź do Xcode -> Plik -> Ustawienia obszaru roboczego. Znajdziesz jedno wyskakujące okienko.
Wybierz „ Legacy Build System ” ze znacznika Build System. Naciśnij „ Gotowe ”
Uwaga: - Upewnij się, że wyczyściłeś swój projekt za pomocą „ cmd + shift + alt + k ” i „ Dane pochodne ”
Zbuduj swój projekt, zadziała urok :)
źródło
Spróbuj również tego. Xcode-> Plik-> Ustawienia projektu-> System kompilacji -> System kompilacji starszego typu.
źródło
Jeśli otrzymujesz to z
Ditto
polecenia tworzenia wielu instancji o tej samej nazwie (NIE'copy files' build phase
), być może będziesz musiał zmienićProduct Module Name
.Build Settings
Product Module Name
W naszej aplikacji mamy cel obserwacji i kilka celów powiadomień, więc umieszczam takie rzeczy jak
Extension
na końcu nazwy modułu.Pierwotnie znalazłem to rozwiązanie: https://forums.developer.apple.com/thread/103913
źródło
All
po prawej stronie, gdzie chcesz,Product Module Name
aby ta konfiguracja kompilacji była wyświetlana.Eksperymentowałem z Core Data. Zbudowałem model danych dla prostego programu listy kontrolnej i wygenerowałem NSManagedObjects. Podczas kompilowania projektu wystąpił następujący błąd:
Problem polegał na tym, że model danych (w moim przypadku CheckList.xcdatamodeld) znajdował się na liście „Kompiluj źródła”. Projekt został poprawnie skompilowany, gdy usunąłem go z listy.
EDYTOWAĆ
Jako @WilliamT. wyjaśnia w komentarzach, potrzebujesz xcdatamodeld na liście kompilacji. Zamiast tego przejdź do swoich bytów w pliku xcdatamodeld. Wybierz błędne modele, rozwiń lewy panel i zmień pole „Codegen” na „Ręcznie / Brak”.
źródło
Podczas sprawdzania dziennika kompilacji zauważyłem ostrzeżenie:
Jeśli tak jest w Twoim przypadku, przejdź do celu:
info.plist
.źródło
Jeśli używasz CocoaPods, możesz spróbować dezintegrować strąki i zainstalować ponownie. Mi to pasuje.
pod deintegrate
pod install
źródło
Spróbuj tego Działa:
W Xcode przejdź do Plik-> Ustawienia projektu / obszaru roboczego.
Zmień system kompilacji na starszy system kompilacji.
źródło
Przeczytaj tę odpowiedź, jeśli komunikat o błędzie odwołuje się do plików danych podstawowych
Streszczenie: Możesz mieć zarówno generowane automatycznie, jak i ręcznie generowane pliki klas obiektów zarządzanych przez Core Data.
Ta odpowiedź ma zastosowanie, jeśli pierwszy wiersz błędu odnosi się do pliku Foo + CoreDataProperties.o lub Foo + CoreDataClass.o . Przykład:
error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':
1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files
2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files
Główną przyczynę można zobaczyć, rozwijając sekcję Kompiluj szybkie pliki źródłowe transkrypcji kompilacji. Na przykład:
<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'
Pierwszy wspomniany plik to plik źródłowy w katalogu projektu, który ktoś wygenerował, wybierając model danych w Nawigatorze projektu i klikając w menu Edytor > Utwórz podklasę obiektu zarządzanego . Ta funkcja została dodana w Xcode 7 lub więcej.
Drugi plik jest plikiem o tej samej nazwie, ale jest zakopany w Xcode
DerivedData
. Plik ten jest generowany automatycznie przez Xcode podczas każdej kompilacji, jeśli.xcdatamodeld
plik modelu danych ( ) jest zawarty w fazie kompilacji źródeł kompilacji celu. Ta funkcja została dodana w Xcode 9 lub więcej. Zero, jeden lub dwa pliki są generowane dla każdej jednostki / klasy, w zależności od ustawienia wyskakującego okienka Codegen . To okienko wyskakujące znajduje się w Inspektorze modelu danych po wybraniu elementu podczas edycji modelu danych…Ustawienia są następujące:
Widzisz więc, że problem występuje, gdy programista (jak ja) przyzwyczajony do starszego Xcode rozpoczyna projekt w nowszym Xcode. Uważamy, że musimy użyć elementu menu Utwórz podklasę obiektów zarządzanych , co robimy, aby utworzyć pliki, które widzimy w Nawigatorze projektu, nie zdając sobie sprawy, że nasze ustawienia w wyskakującym oknie Codegen powodują, że Xcode tworzy duplikaty plików, które Apple „sprytnie” nie pojawia się w Nawigatorze projektu, ponieważ nie ufają programistom, że przeczytają i zważą na komentarz w nagłówku // Ten plik został wygenerowany automatycznie i nie należy go edytować.
Rozwiązanie 1 - Użyj starszej drogi
Możesz wyłączyć wszystkie automatyczne Codegen dla modelu danych za pomocą tylko jednego ustawienia:
.xcdatamodeld
plik).Rozwiązanie 2 - Podstawowa magia danych dla początkujących
Tutaj wchodzisz all-in na nowszą drogę.
Dzięki temu rozwiązaniu definicje klas są generowane automatycznie na podstawie modelu danych dla każdej kompilacji. Nawet ich nie widzisz. Jest to Core Data Magic , ładne i proste dla początkujących.
Rozwiązanie 3 - Dla większości aplikacji w świecie rzeczywistym
Ale rozwiązanie 2 nie jest dobre, jeśli naprawdę chcesz dodać właściwości niezarządzane. (Objective-C nie pozwala na dodawanie właściwości w kategoriach, a Swift nie pozwala na dodawanie przechowywanych właściwości w rozszerzeniach). Więc w większości rzeczywistych aplikacji prawdopodobnie chcesz przejść w połowie drogi między Rozwiązaniami 1 i 2…
(Podziękowania dla odpowiedzi firmy Positron. Moja odpowiedź tutaj wyjaśnia, dlaczego odpowiedź Positron (moje Rozwiązanie 1) działa, i dodaje Rozwiązanie 2 i Rozwiązanie 3)
źródło
Jedną z opcji, która rozwiązała mój problem, jest zmiana systemu kompilacji na starszy. Wykonaj następujące kroki w Xcode 10+.
Tutaj napisałem szczegółowy artykuł na temat problemu i jego rozwiązania. Błąd Xcode: produkuje się wiele poleceń
źródło
W moim przypadku PDFGenerator tworzył plik info.plist, właśnie go usunąłem.
źródło
Miałem ten sam problem, miałem jeszcze jedną aplikację pomocniczą w głównej aplikacji i skopiowałem ją do zasobu. W moim przypadku rozwiązany jako:
1) Cel -> 2) Fazy kompilacji 2) Kopiuj plik (n elementów) 3) Usuń plik kopiowania.
Aplikacja Pomocnik automatycznie skopiowana do Xcode 10.0.
źródło
Żadne z zaproponowanych tutaj rozwiązań nie działało dla mnie. Stało się tak szczególnie dzięki CocoaPods. Wcześniej używałem Cocoapods 1.3.1. Po prostu aktualizacja do wersji 1.5.3 nie rozwiązała problemu od razu.
Kroki, które wykonałem to:
pod install
źródło
install! 'cocoapods', :disable_input_output_paths => true
na górze mojego podfile. Dodatkowo, jeśli nie chcesz aktualizować swoich zasobników - nie usuwaj pliku podfile.lock, a wszystkie zasobniki zostaną zainstalowane w ich bieżącej wersji.Zanim zacznę, zauważ, że mój projekt wykorzystuje Kartaginę jako menedżera zależności.
Żadna z istniejących odpowiedzi tutaj nie rozwiązała mojego problemu. To, co rozwiązało problem, było następujące.
Po pierwsze zauważyłem, że błąd kompilacji wskazywał w szczególności jedną strukturę. Następnie odfiltrowałem Cel aplikacji> Fazy budowania dla tego frameworka. Zauważyłem, że ten framework był obecny zarówno w „Link Binary With Libraries”, jak i „Embed Frameworks”. Zauważając, że żaden z frameworków wymienionych w „Embed Frameworks” nie był zarządzany przez Carthage, usunąłem omawiany framework z „Embed Frameworks”. Następnie przebudowałem mój projekt i wszystko działa dobrze, łącznie z funkcjonalnością włączoną przez dany framework.
źródło
Kroki:
źródło
Wypróbuj całą tę opcję, każdy z tej opcji 3 na pewno będzie dla ciebie działał
źródło
Problemem było to, że przypadkowo włączyłem Info.plist do ustawień projektu -> Fazy kompilacji -> Kopiuj zasoby pakietu dla mojego celu.
źródło
Ten problem pojawił się dla mnie po dodaniu do aplikacji drugiej części pakietu Fabric SDK.
Faktycznie stało się to, że Framework GoogleUtilies został dodany dwukrotnie do projektu Pods
Byłoby to w porządku przed Xcode 10, ale Xcode 10 będzie narzekał, jeśli plik ma dwa działania przeciwko niemu (w tym przypadku działanie kopiowania).
Można bezpiecznie usunąć drugą platformę.
źródło
Oto inne działające rozwiązanie: (Jeśli używasz niestandardowych kapsuł)
źródło
Miałem kilka
Multiple commands produce
ostrzeżeń - nie tylko duplikację info.plist w jednym celu. W tym zlokalizowane zasoby i pliki ciągów, nagłówki itp.Rozwiązanie: usuń wszystkie duplikaty członkostwa docelowego.
źródło
Miałem ten problem, gdy miałem plik o tej samej nazwie w dwóch różnych obiektach docelowych. Z jakiegoś powodu jeden z tych plików miał część obu celów. Zasadniczo miałem dwa pliki. Oba te pliki należały do jednego celu.
Ma sens, że cel może mieć tylko jedną nazwę pliku na cel, więc usunięcie zaznaczenia pola elementu docelowego dla pliku, który nie był powiązany z głównym celem, rozwiązało problem.
źródło
Korzystam z Carthage i Xcode 10.
Moje rozwiązanie to -> Projekt -> Cel -> Ogólne ->
Usuń frameworki dodane do Carthage z „Embedded Binaries”
zwykle musisz dodać skrypt w Fazach kompilacji, aby usunąć architekturę z App Store.
W Xcode 10 skrypt wydaje się zawsze wywoływany. Więc kopiuje ramy we właściwe miejsce i nie musisz dodawać ich do zakładki Ogólne.
Uwaga: jeśli nie ustawiono -> w Ustawieniach kompilacji -> Ścieżki wyszukiwania -> Ścieżki przeszukiwania frameworka -> ustaw ścieżkę do frameworku dodanego za pomocą Kartaginy .... „$ (PROJECT_DIR) / Carthage / Build / iOS”
źródło
Warto zauważyć, że ten błąd może zostać wygenerowany po automatycznym wygenerowaniu modeli CoreData, w których Codegen nie jest ustawiony na Ręcznie / Brak.
Aby to skorygować w Xcode 10, kliknij dwukrotnie plik xcdatamodeId, wybierz każdy ze swoich bytów i ustaw Codegen na Manual / None w Class w Inspektorze modelu danych.
źródło
Miał podobny problem, ale z plikami .swiftdoc.
Mam rozszerzenia i cele testów jednostkowych w projekcie. I mieli tę samą „Nazwę modułu produktu” (PRODUCT_MODULE_NAME w Ustawieniach kompilacji) co aplikacja. Po zrobieniu nazw unikalny problem zniknął.
źródło
Przejście do Xcode 10, błędy takie jak
można rozwiązać w następujący sposób:
Idź do
Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System
.źródło
Przejdź do fazy kompilacji projektu i usuń info.plist ze źródeł kompilacji. Spowoduje to usunięcie tego problemu i projekt będzie ponownie aktywny.
źródło
Jeden z moich CocoaPods został usunięty i spowodował problem. Czy strąki zostały zaktualizowane i działało dobrze.
Uważam, że mógł to być zestaw LivePerson SDK
źródło
Mój problem polegał na tym, że Xcode 10 jest uruchamiany w Mojave i podczas próby uruchomienia testów jednostkowych, które napisałem przed aktualizacją do XCode 10.
W moim przypadku miałem ten problem podczas uruchamiania mojego
TestTarget
celu. Aby rozwiązać, musiałem:TestTarget > build phases > Target Dependencies
)ponieważ miałem dwa inne cele poza moim
TestTarget
i oba działały w tym samym skrypcie i tworzyły / kopiowały pliki w pewnym momencie.I to koliduje z tym, o czym wspomniano w Uwagach do wydania System Build dla Xcode 10 tutaj :
Nowa AKTUALIZACJA po aktualizacji z Xcode 10.1 do 10.2
Podobny problem pojawił się ponownie po aktualizacji do Xcode 10.2. Mam wiele celów według projektu:
Target1
iTarget2
rozwiązałem ten problem przez:Edit Scheme > Build
iTarget1
poniżej,Test
ponieważ wiedziałem, że zostałyTarget2
zaimportowaneTarget1
Należy również zwrócić uwagę na to,
Target2
że pole wyboru pozostanie zaznaczone podTest
źródło
Istnieją dwa różne rozwiązania, aby pozbyć się tego problemu:
Rozwiązanie 1
Jak widać byłem coraz ten sam błąd .. w moim przypadku nie było dodatkową kopię folderu Chat21Core w TildeskWidget folderu ..This było stworzenie problem .. Więc jedno z możliwych rozwiązań może być także po prostu przeczytać w całości i błąd spróbuj znaleźć, czy istnieje jakaś dodatkowa kopia z projektu, czy nie.
Rozwiązanie 2
Kolejne proste rozwiązanie, które znalazłem, gdy napotykam ten sam typ problemu dla innego projektu. Tym razem musiałem zastosować inne rozwiązanie.
pod deintegrate
z projektu.pod install
i spróbuj zbudować projekt.Mam nadzieję, że to może Ci pomóc.
źródło