2012-02-26 2 views
3

Github의 최신 Facebook SDK 코드를 방금 프로젝트에 추가했습니다. 내가 ARC를 사용하기 때문에 제공된 쉘 스크립트를 사용하여 정적 라이브러리를 작성했습니다. 나는 내 프로젝트에 추가하고 정적 라이브러리가 링크되고있는 것을 확인했다,하지만 난이 링커 오류 메시지가 표시됨 :Facebook SDK가 포함 된 링커 오류 프로젝트

App linker settings

어떤 아이디어 : 여기

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_FBFrictionlessRequestSettings", referenced from: 
     objc-class-ref in libfacebook_ios_sdk.a(Facebook.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

링커 설정입니다을?

답변

2

헤드 개정 ${SOURCE_ROOT}/facebook-ios-sdk이 끊어 ARC는 (정적 라이브러리)를 구축 갖고있는 것 같다 몇 가지 최근 변경 사항이 있습니다. 정적 라이브러리는 정상적으로 빌드되지만, 내 프로젝트에서 사용되면 링커 오류가 발생합니다. 내가이 문제를 해결하기 위해 한 것은 페이스 북 SDK의 이전 버전으로 돌아가는 것이었고 이러한 링커 오류는 사라졌습니다.

https://github.com/facebook/facebook-ios-sdk/commits/master 내가 버전이 24 2월에 체크 사용을 참조하십시오 (안 25 2 월 죄송 제이슨 클락!)

https://github.com/facebook/facebook-ios-sdk/tree/9acf74345bb248d698966eac9a3057a4b4be1b0f

+0

맞습니다. 나는 커밋의 역사를 살펴봤을 때, 아마 같은 일을했을 것이다 ---- 심야. 감사! –

+0

나는 여전히 같은 오류가 발생합니다 .... 좀 더 구체적으로 말씀해 주시겠습니까? 내가 사용하는 #import 명령은 무엇입니까? ".h"파일 모두 또는 ".a"파일 하나만 가져올 수 있습니까? – Noam

+0

감사합니다. 이것은 나에게 트릭이었습니다! – raidfive

1

fb-ios-sdk를 빌드 할 때 뭔가 이상한 것처럼 보입니다 ... 정적 라이브러리를 빌드 할 때 모든 것이 up2date이고 오류가 없었습니까?

& SDK의 최신 버전을 시뮬레이터 나 내 iOS5 장치에서 실행하는 데 아무런 문제가 없습니다. https://github.com/facebook/facebook-ios-sdk/zipball/master

  • 압축 해제 파일 &가 cd ~/facebook-ios-sdk/scripts/ && ./build_facebook_ios_sdk_static_lib.sh
  • 이제 잡아 구축 : 여기

    내가 (OS X 10.7.3, 엑스 코드 4.2.1, iOS5를 ARC)

    • 잡고 최신 소스 파일을 무슨 짓을했는지 이 같은 Xcode 프로젝트의 foler에 넣어 ~/facebook-ios-sdk/lib/ 내부 facebook-ios-sdk 폴더 :
    • 추가 엑스 코드에서 libfacebook_ios_sdk.a에 대한 http://cl.ly/1X3B203f272z2l0w2t39 & 링크 당신의 Header Search Paths
  • +0

    나는이 작업을 시도해 보았고 "#import"FBConnect.h "를 수행 할 수 없다는 것을 알려줍니다. 또한 facebook-ios에서 .h 파일을 모두 복사하려고하면 내 프로젝트에 -sdk 폴더, 그것은 나에게 오류를 제공합니다 : 아키텍처 i386을위한 정의되지 않은 심볼 : "_OBJC_CLASS _ $ _ FBFrictionlessRequestSettings"에서 참조 : libfacebook_ios_sdk.a에서 objc 수준의-REF (Facebook.o) LD : 기호 (s)를 찾지 못했습니다. i386 clang : 오류 : 링커 명령이 종료 코드 1과 함께 실패했습니다 (호출을 보려면 -v 사용). – Noam

    +0

    "libfacebook_ios_sdk.a에 대한 링크"란 무엇입니까? – Noam

    +0

    활성 대상을 선택하고 " 빌드 단계 "->"링크 B inary with Libraries "->"+ "->"Add other ... "를 선택하고 libfacebook_ios_sdk.a를 선택하십시오. – dom

    2

    2 월 25 일이 FBFrictionlessRequestSettings.m가 빠져있다 커밋 xcode 프로젝트 그래서 헤더가 정적 링크 라이브러리 이벤트에 포함되지 않습니다.

    최신 커밋이 게시물의 시점에서, 최신의 repo 복제 1 .- 것은 : https://github.com/facebook/facebook-ios-sdk/commit/4e3567c40e3b7f8156a82f18e5a2f5cd18e077eb

    2 .- 열기 src 디렉토리 아래의 Xcode 프로젝트의 페이스 북-IOS-sdk.xcodeproj

    3. FBConnect 아래에 FBFrictionlessRequestSettings.m을 추가합니다. , suer FBFrictionlessRequestSettings.m을 프로젝트 네비게이터를 사용

    4 .- 컴파일 소스

    5 .- 저장하고 닫습니다 Xcode 프로젝트

    6 .- 스크립트 실행/build_facebook_ios_sdk_static_lib에서 빌드 단계에 나열되어 있습니다.sh를 사용하여 가장 최근의 정적 링크 된 라이브러리를 만들고 설치 지침을 따르십시오. 프로젝트를 컴파일하고 링크 할 수 있어야합니다.

    이 repo를 복제하고 빌드하십시오. 모두 갈 준비가되었습니다 https://github.com/alvarezm50/facebook-ios-sdk

    +0

    리포가 완벽하게 작동했습니다. 감사!!!!!! – Noam

    0

    나는 동일한 문제가있었습니다. 그것은 상당히 사소한 것으로 밝혀졌습니다. XCode에서 git에 대한 지원을 사용합니다. 명령 행을 선호합니다. 그러나 이는 내가 git에서 가져올 때마다 새로운 파일을 추가하고 삭제 된 파일을 모두 제거해야한다는 것을 의미합니다. 이 경우 FBFrictionlessRequestSettings. *가 트릭을 수행했습니다.

    File->Add Files to "My Project"

    1

    나는이 절차를 시도하고 고칠 수있다.

    프로젝트 선택 대상 -> 빌드 단계 -> 소스 컴파일 facebook 정적 라이브러리의 모든 .m 파일을 json 정적 라이브러리에도 추가합니다. 이제 앱을 실행하면 링커 오류가 발생하지 않습니다.