[ios] iOS 용 구문 분석 : 앱 실행시 오류

저는 Parse SDK로 작업 해 왔으며 빠른 단계 가이드를 따랐습니다. 실행하려고하면 8 개의 오류가 발생합니다. 이유에 대한 아이디어가 있습니까? 내가 사용하지 않는 Parse의 Facebook 부분과 관련이있는 것 같습니다.

 Undefined symbols for architecture armv7:
"_FBTokenInformationTokenKey", referenced from:
  -[PFFacebookTokenCachingStrategy accessToken] in Parse(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy setAccessToken:] in Parse(PFFacebookTokenCachingStrategy.o)
 "_FBTokenInformationExpirationDateKey", referenced from:
  -[PFFacebookTokenCachingStrategy cacheTokenInformation:] in     Parse(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy expirationDate] in Parse(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy setExpirationDate:] in Parse(PFFacebookTokenCachingStrategy.o)
 "_OBJC_METACLASS_$_FBSessionTokenCachingStrategy", referenced from:
  _OBJC_METACLASS_$_PFFacebookTokenCachingStrategy in Parse(PFFacebookTokenCachingStrategy.o)
"_OBJC_CLASS_$_FBSessionTokenCachingStrategy", referenced from:
  _OBJC_CLASS_$_PFFacebookTokenCachingStrategy in Parse(PFFacebookTokenCachingStrategy.o)
"_FBTokenInformationUserFBIDKey", referenced from:
  -[PFFacebookTokenCachingStrategy facebookId] in Parse(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy setFacebookId:] in Parse(PFFacebookTokenCachingStrategy.o)
"_OBJC_CLASS_$_FBRequest", referenced from:
  objc-class-ref in Parse(PFFacebookAuthenticationProvider.o)
"_OBJC_CLASS_$_FBSession", referenced from:
  objc-class-ref in Parse(PFFacebookAuthenticationProvider.o)
 ld: symbol(s) not found for architecture armv7
 clang: error: linker command failed with exit code 1 (use -v to see invocation)



답변

이것은 여러 사람이 동일한 오류를보고 있기 때문에 Parse iOS 1.1.33 릴리스와 관련된 일종의 버그입니다.

몇 가지 해결 방법이 있습니다.

-ObjC 링커 플래그가 필요한 라이브러리를 사용하지 않는 경우 프로젝트에서 -ObjC를 제거 할 수 있습니다.

빌드 설정> 기타 링커 플래그> remove -ObjC

또는 해당 플래그가 필요한 라이브러리를 사용하는 경우 Facebook SDK를 추가 할 수 있습니다.

두 옵션 모두 오류를 제거합니다. 내 앱에 Facebook SDK가 필요하지 않기 때문에이 문제를 해결하기를 바랍니다.

여기에서 토론을 따르십시오.

https://parse.com/questions/cocoapods-incompatibility


답변

크고 번거로운 FB 키트를 다운로드, 컴파일 및 설치하는 것보다 잠재적으로 간단한 해결 방법이 있습니다. 물론 Parse에서 FB 유형 기능을 사용할 수 없으며 이러한 더미 기호를 사용할 것으로 예상되는 Parse 코드를 트리거하면 심각한 문제가 발생합니다. 하지만 그들에게서 떨어져 있으면 괜찮을 것 같아요. 그래서…

  1. 응용 프로그램에서 FBMissingSymbols라는 개체를 만듭니다.

  2. 필요하지 않은 .h 삭제

  3. 이것을 .m에 넣으십시오.

NSString *FBTokenInformationExpirationDateKey = @"";
NSString *FBTokenInformationTokenKey = @"";
NSString *FBTokenInformationUserFBIDKey = @"";
@interface FBAppCall:NSObject
@end
@implementation FBAppCall
@end
@interface FBRequest:NSObject
@end
@implementation FBRequest
@end
@interface FBSession:NSObject
@end
@implementation FBSession
@end
@interface FBSessionTokenCaching:NSObject
@end
@implementation FBSessionTokenCaching
@end
@interface FBSessionTokenCachingStrategy:NSObject
@end
@implementation FBSessionTokenCachingStrategy
@end


답변

이전을 삭제하고 ParseFacebookUtils.frameworkParseFacebookUtilsV4.framework것을 유지 해야 작동합니다.


답변

나는 dbquarrel의 대답을 좋아했지만 새로운 사회 계층이 없기 때문에 더 이상 작동하지 않습니다.

그래서 똑같은 일을하되 대신 다음을 추가하십시오.

NSString *FBTokenInformationExpirationDateKey = @"";
NSString *FBTokenInformationTokenKey = @"";
NSString *FBTokenInformationUserFBIDKey = @"";
NSString *SLServiceTypeTwitter = @"";
NSString *ACAccountTypeIdentifierTwitter = @"";
@interface FBAppCall:NSObject
@end
@implementation FBAppCall
@end
@interface FBRequest:NSObject
@end
@implementation FBRequest
@end
@interface FBSession:NSObject
@end
@implementation FBSession
@end
@interface FBSessionTokenCaching:NSObject
@end
@implementation FBSessionTokenCaching
@end
@interface FBSessionTokenCachingStrategy:NSObject
@end
@implementation FBSessionTokenCachingStrategy
@end
@interface ACAccountStore:NSObject
@end
@implementation ACAccountStore
@end
@interface SLRequest:NSObject
@end
@implementation SLRequest
@end
@interface SLComposeViewController:NSObject
@end
@implementation SLComposeViewController
@end


답변

다음과 같은 두 가지 버전의 “ParseFacebookUtils”프레임 워크가 추가되지 않았는지 확인하십시오.

ParseFacebookUtilsV4 및 ParseFacebookUtils

ParseFacebookUtils를 제거하고 ParseFacebookUtilsV4를 유지하면 정상적으로 작동했습니다.


답변

내 솔루션은 확실히 작동하며 다른 링커 플래그에서 -ObjC를 사용할 수 있습니다.

  1. “Social.framework”, “Account.framework”추가
  2. “FacebookSDK.framework”추가

건배 …. 이제 작동합니다 ….. -ObjC를 제거 할 필요가 없습니다.


답변

‘Accounts.Framework’및 / 또는 ‘Social.Framework’를 추가해야하는 것 같습니다.