Duplikuj symbole dla architektury x86 64 pod Xcode
Mam teraz to samo pytanie o powyższym tytule, ale nie znalazłem jeszcze prawidłowej odpowiedzi. Mam błąd:
/Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
/Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
duplicate symbol _OBJC_METACLASS_$_MoboSDK in:
/Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
/Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
ld: 75 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Każda pomoc jest mile widziana.
W końcu poznaję przyczynę tego błędu, ponieważ dodałem {[1] } do Other Linker Flags
. Po usunięciu tej wartości mogę zbudować projekt pomyślnie, ale nie wiem dlaczego. Czy ktoś może to wyjaśnić?
30 answers
75 zduplikowanych symboli dla architektury x86_64
Oznacza, że załadowałeś te same funkcje dwa razy.
Gdy problem zniknie po usunięciu -ObjC
z Other Linker Flags,
oznacza to, że opcja ta powoduje, że funkcje ładują się dwukrotnie:
From Technical Q & A
Ta flaga powoduje, że linker ładuje każdy plik obiektowy w bibliotece to definiuje klasę lub kategorię Objective-C. Podczas gdy ta opcja będzie zazwyczaj powoduje większy plik wykonywalny (ze względu na dodatkowe kod obiektu załadowane do aplikacji), pozwoli to na pomyślne utworzenie skuteczne Biblioteki statyczne Objective-C zawierające Kategorie na istniejących klas.
Https://developer.apple.com/library/content/qa/qa1490/_index.html
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-01 03:10:50
Dla mnie zmiana "no Common Blocks" z tak na nie (w Targets->Build Settings->Apple LLVM - Code Generation ) naprawiła problem.
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-08-20 01:43:00
Głupi, ale upewnij się, że nie masz #import
ed a .m
Plik przez pomyłkę gdzieś
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
2014-09-04 13:18:12
W moim przypadku stworzyłem właśnie plik nagłówkowy, aby zdefiniować stałe ciągi takie jak:
NSString *const AppDescriptionString = @"Healthy is the best way to keep fit";
Rozwiązałem ten scenariusz używając static
:
static NSString *const AppDescriptionString = @"Healthy is the best way to keep fit";
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-08-30 14:19:30
Dzieje się również wtedy, gdy deklarujesz zmienne const o tej samej nazwie w innej klasie:
W pliku.m
const int kMessageLength = 36;
@implementation Message
@end
W czacie plików.m
const int kMessageLength = 20;
@implementation Chat
@end
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-02-25 09:21:58
Mam ten sam problem. W Xcode 7.2 W path Project Target > Build Setting > No Common Blocks, zmieniam go na NO.
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
2016-03-01 05:35:40
Stało się tak, gdy zaakceptowałem wyskakujące okienko "zalecane ustawienia" w projekcie, który opracowałem dwa lata temu w Objective-C.
Problem polegał na tym, że po zaakceptowaniu aktualizacji "zalecane ustawienia" Xcode automatycznie zmieniało lub dodało niektóre ustawienia kompilacji, w tym GCC_NO_COMMON_BLOCKS = YES;
.
To sprawiło, że kompilacja nie powiodła się z błędem duplicate symbol
w moim zaktualizowanym projekcie. Zmieniłem więc No Common Block
na NO
w Ustawieniach kompilacji i błąd zniknął.
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
2016-12-28 04:54:27
Uznałem, że przyjęta odpowiedź dotyka problemu, ale nie pomogła mi go rozwiązać, mam nadzieję, że ta odpowiedź pomoże w tym bardzo frustrującym problemie.
duplicate symbol _OBJC_IVAR_$_BLoginViewController._hud in:
17 duplicate symbols for architecture x86_64
"oznacza, że załadowałeś te same funkcje dwa razy. Ponieważ problem znika po usunięciu-ObjC z innych znaczników linkera, oznacza to, że ta opcja powoduje, że funkcje ładują się dwukrotnie:"
W kategoriach laika oznacza to, że w naszym projekcie mamy dwa pliki o dokładnie tej samej nazwie. Może łączysz jeden projekt w inny? Spójrz na błędy powyżej błędu "duplicate symbols", aby zobaczyć, który folder jest zduplikowany, w moim przypadku był to BLoginViewController.
Na przykład na poniższym obrazku widać, że mam dwa kontrolery Bimageviewcontroller, dla mnie to było przyczyną problemu.
Jak tylko usunąłem jeden to problem zniknął :)
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
2014-11-18 04:54:40
Usuń-ObjC z innych Flag linkera lub Sprawdź, czy zaimportowałeś dowolny .plik m zamiast .h przez pomyłkę.
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-01-29 10:29:06
Najszybszy sposób na znalezienie duplikatu to:
- Idź do celów
- Przejdź do fazy budowania
- Przejdź do źródeł kompilacji
- Usuń duplikaty plików.
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
2016-08-12 09:49:32
Następujące kroki rozwiązały problem dla mnie.
- Przejdź do fazy budowania w Ustawieniach celu.
- Przejdź do "Link Binary With Libraries".
- Sprawdź, czy którakolwiek z bibliotek istnieje dwa razy.
- Zbuduj 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
2015-06-22 22:14:41
Zdefiniowanie tej samej zmiennej w implementacji @w więcej niż jednej klasie również może spowodować ten problem.
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
2016-08-22 11:31:05
Moja sytuacja z jakimś legacy projektem otwartym w Xcode 7.3 była taka:
duplicate symbol _SomeEnumState in:
Następnie lista dwóch niepowiązanych plików.o, potem zostało to powtórzone kilka razy, potem w końcu:
ld: 8 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
To co dla mnie rozwiązało to zmiana deklaracji enum z:
enum SomeEnumState {
SomeEnumStateActive = 0,
SomeEnumStateUsed = 1,
SomeEnumStateHidden = 2
} SomeEnumState;
Do tego:
typedef NS_ENUM(NSUInteger, SomeEnumState) {
SomeEnumStateActive = 0,
SomeEnumStateUsed = 1,
SomeEnumStateHidden = 2
};
Jeśli ktoś ma na to Wyjaśnienie, proszę oświeć mnie.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
2016-04-12 09:03:31
W moim przypadku w miejscu
Targets > Build Phases > Compile Sources and delete any duplicate files.
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
2016-12-24 11:35:39
Dla mnie podczas xcode8 zalecane ustawienia projektu aktualizacja "no Common Blocks" do tak, co powoduje ten problem.
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
2016-11-22 00:15:02
Upewnij się, że nie zaimportowałeś a .m plik przez przypadek możesz usunąć swoje dane pochodne w oknie projektów, a następnie zbudować i uruchomić 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
2016-06-02 09:36:26
Dostałem ten sam błąd kiedy dodałem repozytorium pod
pod 'SWRevealViewController'
Dla już dodanego kodu źródłowego (SWRevealViewController) z Githuba. Tak więc błąd zostanie naprawiony przez usunięcie kodu źródłowego lub repozytorium pod.
Case # 2:
Po raz drugi ten błąd pojawił się, gdy zadeklarowałem stałą w .h plik.
NSString * const SomeConstant = @"SomeValue";
@interface AppDelegate : UIResponder <UIApplicationDelegate> {
...
...
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
2016-09-28 17:44:19
Dla każdego, kto ma ten problem, nie widziałem mojego rozwiązania w żadnej z tych odpowiedzi.
PoPBXPROJ merge conflict, który został ręcznie rozwiązany (choć słabo), były duplikaty odwołań do poszczególnych plików klas w .pbxproj. Usunięcie tych z projektu > fazy budowania > skompilować źródła naprawiło wszystko dla mnie.
Mam nadzieję, że to komuś pomoże.
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-01-16 18:16:53
Dzisiaj dostałem ten sam błąd . Słowo kluczowe błędu to duplicate
. Poprawiam przez:
1. Remove the duplicate file at Build Phases-->Compile Sources
2. If you can not remove it at Build Phases, you need find the file at your project and remove the reference by DELETE :
3. Add the file to your project again
4. Add the file's .m to your Build Phases-->Compile Sources again
5. Build your project, the error will disappear
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-15 06:52:52
To samo stało się ze mną, kiedy integrowałem projekt lob wewnątrz mojego projektu.
Właściwie projekt lob ma również pliki AFNetworking, Więc usuwam .pliki m z projektu lob.
Właściwie .pliki m są sprzeczne z moim projektem POd / AFNetworking/.pliki m
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-17 13:09:51
W Xcode 6.3.2. Sprawdziłem wszystkie możliwości jak poniżej
1: nie importowałem .plik m w moim projekcie.
2: usunięto -ObjC
z inną flagę linkera.
3: usunąłem wszystkie moje Dane .
Wciąż mam ten sam błąd. usunąłem ten błąd, usuwając dowolną deklarację zmiennej z pliku.pch
. w moim przypadku zadeklarowałem AppDelegate
obiekt w pliku .pch
. w końcu znalazłem powód, który powoduje błąd. więc usuwam Oświadczenie o Dowolna zmienna od .plik pch i mój projekt działa urok.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-17 10:25:37
Ostatnio bolała mnie głowa szukając źródła błędu. Zastanawiałem się, kiedy dowiedziałem się, że moja aplikacja nie chce się kompilować, po prostu dlatego, że miałem następujący fragment kodu w różnych klasach:
dispatch_time_t getDispatchTimeByDate(NSDate *date)
{
NSTimeInterval interval;
double second, subsecond;
struct timespec time;
dispatch_time_t milestone;
interval = [date timeIntervalSince1970];
subsecond = modf(interval, &second);
time.tv_sec = second;
time.tv_nsec = subsecond * NSEC_PER_SEC;
milestone = dispatch_walltime(&time, 0);
return milestone;
}
Mam nadzieję, że to komuś pomoże.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-24 01:17:24
Kolejnym głupim błędem, który spowoduje ten błąd są powtarzające się pliki. Przypadkowo skopiowałem kilka plików dwa razy. Najpierw poszedłem do Targets - > Build Phases - > Compile sources. Tam zauważyłem kilka plików na tej liście dwa razy i ich lokalizacje.
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
2016-03-11 21:57:16
Mam nadzieję, że na pewno ci pomoże
Mam ten sam błąd 3 zduplikowane symbole dla architektury x86_64
W moim przypadku skopiowałem kod z innego pliku tego samego projektu np. Kod pliku A. m do B. M i po skomplementowaniu dostałem błąd jako wzmianka. i mam rozwiązać błąd, zmieniając nazwę zmiennej globalnej.
Ten błąd pojawił się w moim przypadku z powodu tej samej deklaracji dla zmiennej globalnej w obu plikach.
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
2016-03-25 07:18:08
Ja też mam dziś tę winę.To dlatego, że zdefiniowałem wartość const w pliku .m
.Ale zdefiniowałem inny plik .m
, który również zawierał tę wartość const.Oznacza to, że ma dwa takie same const values.So pojawia się ten błąd.
Moim rozwiązaniem jest dodanie słowa kluczowego "static
" przed wartością const.np.:
static CGFloat const btnConunt = 9;
A potem buduję projekt, który nie zgłosi tego błędu.
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
2016-04-04 06:03:50
1.Przejdź do fazy budowania 2.Wyszukaj nazwę pliku 3.Usuń duplikat - >Błąd zniknie.
Jeśli nie, spróbuj wyszukać " plik.m", jeśli widzisz jakiś plik # import".m", Wyczyść tę linię
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
2016-04-26 16:41:15
I face the same error what i did
1.Skopiuj zduplikowany plik symboli (nazwa klasy lub nazwa frameworka) z końca pokazanego powyżej wiersza (zduplikowane symbole dla architektury x86_64).
2. Wklej go w Znajdź Nawigator i naciśnij enter
Pokazała mi duplikat klasy. Usuwam duplikat klasy i uruchamiam pomyślnie.
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
2016-05-03 14:51:52
Żadne z powyższych rozwiązań nie działa dla mnie, po prostu sam to naprawiłem.
Mam duplikat symbolu mojego core data model
który sam robię, ale
w moim .xcdatamodeld
Inspektorze, wybieram Class Definition
z Codegen
nieruchomości, chyba o to chodzi. Następnie wybieram Manual/None
, zostało naprawione.
Mam nadzieję, że to może być pomocne dla Ciebie!
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
2016-12-23 02:39:44
Ten błąd występuje zazwyczaj, gdy połączyłeś dowolną bibliotekę lub plik dwukrotnie. W opisie błędu zostanie wyświetlona nazwa zduplikowanego pliku, możesz wyszukiwać i upewnić się, że nie masz duplikatów. Jeśli znajdziesz duplikaty, Usuń odniesienie do jednego z nich, aby grać bezpiecznie
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-02-01 20:39:09
Upewnij się, że nie importujesz [ViewController.m] zamiast pliku nagłówkowego
#import "ViewController.m"
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-24 17:18:34