Добавил категорию и получил 35 ошибок компоновщика
Я столкнулся с проблемой с ошибками компоновщика, которую я не могу решить или найти причину проблемы. Я добавил Category
в мой проект iOS под названием ParentViewController+CoreData
, Я не добавил ничего в эту категорию ни в .h
или же .m
файл, но если я импортирую его в другой файл, я получаю 35 ошибок компоновщика. ParentViewController
контроллер представления в моем коде, для которого я хотел бы создать категорию. Если я делаю категорию из стандартного контроллера представления, у меня нет проблем. В прошлом я создавал категории из пользовательских контроллеров представления без проблем, и я не могу найти проблему здесь.
Ниже приведены ошибки компоновщика:
Ld /Users/Heather/Library/Developer/Xcode/DerivedData/Lodge-dffwatcyrvyekkdhbejusjleqkjn/Build/Products/Debug-iphonesimulator/Lodge.app/Lodge normal i386
cd /Users/Heather/Documents/lodge
setenv IPHONEOS_DEPLOYMENT_TARGET 5.1
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -L/Users/Heather/Library/Developer/Xcode/DerivedData/Lodge-dffwatcyrvyekkdhbejusjleqkjn/Build/Products/Debug-iphonesimulator -L/Users/Heather/Documents/lodge -F/Users/Heather/Library/Developer/Xcode/DerivedData/Lodge-dffwatcyrvyekkdhbejusjleqkjn/Build/Products/Debug-iphonesimulator -filelist /Users/Heather/Library/Developer/Xcode/DerivedData/Lodge-dffwatcyrvyekkdhbejusjleqkjn/Build/Intermediates/Lodge.build/Debug-iphonesimulator/Lodge.build/Objects-normal/i386/Lodge.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -all_load -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=5.1 -framework CoreData -lz -framework CoreGraphics -framework SystemConfiguration -framework MobileCoreServices -framework CFNetwork -framework QuickLook -framework CoreLocation -framework MessageUI -framework ImageIO -lxml2 -framework CoreText -framework Security -framework QuartzCore -framework UIKit -framework Foundation -lFlurryAnalytics -o /Users/Heather/Library/Developer/Xcode/DerivedData/Lodge-dffwatcyrvyekkdhbejusjleqkjn/Build/Products/Debug-iphonesimulator/Lodge.app/Lodge
Undefined symbols for architecture i386:
"_kGTMHTTPFetcherErrorChallengeKey", referenced from:
-[GTMHTTPFetcher connection:didReceiveAuthenticationChallenge:] in GTMHTTPFetcher.o
"_kGTMHTTPFetcherErrorDomain", referenced from:
-[GTMHTTPFetcher failToBeginFetchWithError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher backgroundFetchExpired] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connection:didReceiveAuthenticationChallenge:] in GTMHTTPFetcher.o
-[GTMHTTPUploadFetcher uploadNextChunkWithOffset:fetcherProperties:] in GTMHTTPUploadFetcher.o
-[GTMHTTPFetcher failToBeginFetchWithError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher backgroundFetchExpired] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connection:didReceiveAuthenticationChallenge:] in GTMHTTPFetcher.o
-[GTMHTTPUploadFetcher uploadNextChunkWithOffset:fetcherProperties:] in GTMHTTPUploadFetcher.o
"_kGTMHTTPFetcherRetryDelayStartedNotification", referenced from:
-[GTMHTTPFetcher primeRetryTimerWithNewTimeInterval:] in GTMHTTPFetcher.o
"_kGTMHTTPFetcherRetryDelayStoppedNotification", referenced from:
-[GTMHTTPFetcher destroyRetryTimer] in GTMHTTPFetcher.o
"_kGTMHTTPFetcherStartedNotification", referenced from:
-[GTMHTTPFetcher beginFetchMayDelay:mayAuthorize:] in GTMHTTPFetcher.o
"_kGTMHTTPFetcherStatusDataKey", referenced from:
-[GTMHTTPFetcher connectionDidFinishLoading:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher shouldRetryNowForStatus:error:] in GTMHTTPFetcher.o
"_kGTMHTTPFetcherStatusDomain", referenced from:
-[GTMHTTPFetcher connection:didReceiveData:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connectionDidFinishLoading:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher isRetryError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher shouldRetryNowForStatus:error:] in GTMHTTPFetcher.o
-[GTMHTTPUploadFetcher connectionDidFinishLoading:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:finishedWithData:error:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:willRetry:forError:] in GTMHTTPUploadFetcher.o
...
-[GTMHTTPFetcher connection:didReceiveData:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connectionDidFinishLoading:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher isRetryError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher shouldRetryNowForStatus:error:] in GTMHTTPFetcher.o
-[GTMHTTPUploadFetcher connectionDidFinishLoading:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:finishedWithData:error:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:willRetry:forError:] in GTMHTTPUploadFetcher.o
...
-[GTMHTTPFetcher connection:didReceiveData:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connectionDidFinishLoading:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher isRetryError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher shouldRetryNowForStatus:error:] in GTMHTTPFetcher.o
-[GTMHTTPUploadFetcher connectionDidFinishLoading:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:finishedWithData:error:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:willRetry:forError:] in GTMHTTPUploadFetcher.o
...
-[GTMHTTPFetcher connection:didReceiveData:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connectionDidFinishLoading:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher isRetryError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher shouldRetryNowForStatus:error:] in GTMHTTPFetcher.o
-[GTMHTTPUploadFetcher connectionDidFinishLoading:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:finishedWithData:error:] in GTMHTTPUploadFetcher.o
-[GTMHTTPUploadFetcher chunkFetcher:willRetry:forError:] in GTMHTTPUploadFetcher.o
...
"_kGTMHTTPFetcherStoppedNotification", referenced from:
-[GTMHTTPFetcher sendStopNotificationIfNeeded] in GTMHTTPFetcher.o
"_kGTMOAuth2AccessTokenRefreshed", referenced from:
-[GTMOAuth2Authentication auth:finishedRefreshWithFetcher:error:] in GTMOAuth2Authentication.o
"_kGTMOAuth2ErrorDomain", referenced from:
-[GTMOAuth2Authentication authorizeRequestImmediateArgs:] in GTMOAuth2Authentication.o
-[GTMOAuth2SignIn windowWasClosed] in GTMOAuth2SignIn.o
-[GTMOAuth2SignIn handleCallbackReached] in GTMOAuth2SignIn.o
-[GTMOAuth2Authentication authorizeRequestImmediateArgs:] in GTMOAuth2Authentication.o
-[GTMOAuth2SignIn windowWasClosed] in GTMOAuth2SignIn.o
-[GTMOAuth2SignIn handleCallbackReached] in GTMOAuth2SignIn.o
"_kGTMOAuth2ErrorJSONKey", referenced from:
-[GTMOAuth2Authentication tokenFetcher:finishedWithData:error:] in GTMOAuth2Authentication.o
"_kGTMOAuth2ErrorMessageKey", referenced from:
-[GTMOAuth2SignIn handleCallbackReached] in GTMOAuth2SignIn.o
"_kGTMOAuth2ErrorRequestKey", referenced from:
-[GTMOAuth2Authentication authorizeRequestImmediateArgs:] in GTMOAuth2Authentication.o
"_kGTMOAuth2FetchStarted", referenced from:
-[GTMOAuth2Authentication notifyFetchIsRunning:fetcher:type:] in GTMOAuth2Authentication.o
"_kGTMOAuth2FetchStopped", referenced from:
-[GTMOAuth2Authentication notifyFetchIsRunning:fetcher:type:] in GTMOAuth2Authentication.o
"_kGTMOAuth2FetchTypeAssertion", referenced from:
-[GTMOAuth2Authentication beginTokenFetchWithDelegate:didFinishSelector:] in GTMOAuth2Authentication.o
"_kGTMOAuth2FetchTypeKey", referenced from:
-[GTMOAuth2Authentication notifyFetchIsRunning:fetcher:type:] in GTMOAuth2Authentication.o
"_kGTMOAuth2FetchTypeRefresh", referenced from:
-[GTMOAuth2Authentication beginTokenFetchWithDelegate:didFinishSelector:] in GTMOAuth2Authentication.o
"_kGTMOAuth2FetchTypeToken", referenced from:
-[GTMOAuth2Authentication beginTokenFetchWithDelegate:didFinishSelector:] in GTMOAuth2Authentication.o
"_kGTMOAuth2FetchTypeUserInfo", referenced from:
-[GTMOAuth2SignIn fetchGoogleUserInfo] in GTMOAuth2SignIn.o
"_kGTMOAuth2FetcherKey", referenced from:
-[GTMOAuth2Authentication notifyFetchIsRunning:fetcher:type:] in GTMOAuth2Authentication.o
"_kGTMOAuth2KeychainErrorDomain", referenced from:
-[GTMOAuth2Keychain passwordForService:account:error:] in GTMOAuth2ViewControllerTouch.o
-[GTMOAuth2Keychain removePasswordForService:account:error:] in GTMOAuth2ViewControllerTouch.o
-[GTMOAuth2Keychain setPassword:forService:accessibility:account:error:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2NetworkFound", referenced from:
-[GTMOAuth2SignIn reachabilityTarget:changedFlags:] in GTMOAuth2SignIn.o
"_kGTMOAuth2NetworkLost", referenced from:
-[GTMOAuth2SignIn reachabilityTimerFired:] in GTMOAuth2SignIn.o
"_kGTMOAuth2RefreshTokenChanged", referenced from:
-[GTMOAuth2Authentication setKeysForResponseDictionary:] in GTMOAuth2Authentication.o
"_kGTMOAuth2ServiceProviderGoogle", referenced from:
+[GTMOAuth2SignIn standardGoogleAuthenticationForScope:clientID:clientSecret:] in GTMOAuth2SignIn.o
-[GTMOAuth2SignIn auth:finishedWithFetcher:error:] in GTMOAuth2SignIn.o
+[GTMOAuth2SignIn revokeTokenForGoogleAuthentication:] in GTMOAuth2SignIn.o
+[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:clientID:clientSecret:] in GTMOAuth2ViewControllerTouch.o
+[GTMOAuth2SignIn standardGoogleAuthenticationForScope:clientID:clientSecret:] in GTMOAuth2SignIn.o
-[GTMOAuth2SignIn auth:finishedWithFetcher:error:] in GTMOAuth2SignIn.o
+[GTMOAuth2SignIn revokeTokenForGoogleAuthentication:] in GTMOAuth2SignIn.o
+[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:clientID:clientSecret:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2UserSignedIn", referenced from:
-[GTMOAuth2SignIn handleCallbackReached] in GTMOAuth2SignIn.o
"_kGTMOAuth2WebViewCancelled", referenced from:
-[GTMOAuth2ViewControllerTouch viewWillDisappear:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2WebViewFailed", referenced from:
-[GTMOAuth2ViewControllerTouch webView:didFailLoadWithError:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2WebViewFinished", referenced from:
-[GTMOAuth2ViewControllerTouch webViewDidFinishLoad:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2WebViewKey", referenced from:
-[GTMOAuth2ViewControllerTouch notifyWithName:webView:kind:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2WebViewStartedLoading", referenced from:
-[GTMOAuth2ViewControllerTouch notifyWithName:webView:kind:] in GTMOAuth2ViewControllerTouch.o
-[GTMOAuth2ViewControllerTouch webViewDidStartLoad:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2WebViewStopKindKey", referenced from:
-[GTMOAuth2ViewControllerTouch notifyWithName:webView:kind:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2WebViewStoppedLoading", referenced from:
-[GTMOAuth2ViewControllerTouch viewWillDisappear:] in GTMOAuth2ViewControllerTouch.o
-[GTMOAuth2ViewControllerTouch webViewDidFinishLoad:] in GTMOAuth2ViewControllerTouch.o
-[GTMOAuth2ViewControllerTouch webView:didFailLoadWithError:] in GTMOAuth2ViewControllerTouch.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
3 ответа
У меня такая же проблема. Моя проблема была связана с файлом Prefix.pch, где я создавал бесконечный цикл импорта. Вместо этого я удалил свой источник данных, который использовал API Google Диска и был импортирован только в тот файл, который его использовал. Ошибка новичка и была боль в заднице, чтобы понять, но удостоверьтесь, что у Вас также нет бесконечной петли!
Цель проекта скомпилирована, но не связана с источниками для контроллеров GTM OAuth 2, http://code.google.com/p/gtm-oauth2/
Из файла видно, что объектный файл не читается / не получает компилятор. Проверьте цель, если ваш файл категории добавлен к цели приложения.
С такой проблемой я столкнулся много, надеюсь, это решит вашу проблему.