2012-10-04 7 views
3

링크와 관련이 있다고 가정하고 있지만 RestKit을 삭제하고 다시 추가했습니다. 모든 연결과 연결이 제대로되었는지 확인했습니다. 시뮬레이터를 사용하도록 XCode를 설정하면 잘 실행되지만 모든 장치에서 실행되도록 설정하면 빌드되지 않습니다. 주목할 유일한 다른 점은 Xcode 4.5로 업그레이드 할 때까지 이런 일이 발생하지 않았다는 것입니다. 아래에 오류가 있습니다.iOS 앱은 기기에서 컴파일되지 않지만 시뮬레이터에서 제대로 작동합니다.

ld: warning: ignoring file /Users/luke/Library/Developer/Xcode/DerivedData/ehrx-btsujlxuhtytahfaikwjeqfjybtt/Build/Products/Debug-iphoneos/libRestKit.a, file was built for archive which is not the architecture being linked (armv7s): /Users/luke/Library/Developer/Xcode/DerivedData/ehrx-btsujlxuhtytahfaikwjeqfjybtt/Build/Products/Debug-iphoneos/libRestKit.a 
Undefined symbols for architecture armv7s: 
    "_OBJC_CLASS_$_RKClient", referenced from: 
     objc-class-ref in ehrxAppDelegate.o 
     objc-class-ref in ehrxLoginView.o 
     objc-class-ref in ehrxInboxView.o 
     objc-class-ref in ehrxCMView.o 
     objc-class-ref in ehrxEncounterDemoView.o 
     objc-class-ref in ehrxEncounterDiagListView.o 
     objc-class-ref in ehrxEncounterChargeView.o 
     ... 
ld: symbol(s) not found for architecture armv7s 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

다음은 RestKit의 빌드 설정입니다. enter image description here

+0

'-v'를 사용하여 호출을 보았을 때 무엇이라고 말 했나요? –

+0

이 인스턴스에서 -v를 사용하는 방법을 잘 모르겠습니다. – Jhorra

답변

6

프레임 워크가 armv7s 장치에서 작동하도록 설계되지 않은 것 같습니다. 필요하지 않은 경우 빌드 설정의 "유효한 아키텍처"에서 제거하십시오.

하지 않으면, 당신은 당신의 라이브러리 RestKit 만 건축하는 ARMv7에 대한 아닌 새로운 아이폰 아키텍처 armv7s에 대한 컴파일 때문입니다 armv7s

+0

사실! 한 번 같은 문제가 있었고 방금 armv 설정을 변경했습니다. – Foo

+1

빌드 설정 사진을 추가했습니다. 무엇이 잘못되었는지 보시겠습니까? 나에게 그것은 그들이 올바르게 설정되어있는 것처럼 보인다. – Jhorra

+0

그게 다야, 나는 결국 그걸 보지 못했다. – Jhorra

2

에서 작업을 업데이트해야합니다. armv7 용으로 컴파일 된 lib가없는 경우 armv7을 아키텍처 목록 및 프로젝트 설정에서 유효한 아키텍처로 제거해보십시오.

+0

내 빌드 설정 사진을 추가했는데 나에게 맞습니다. 내가 무엇을 바꾸어야하는지 잘 모르겠다. – Jhorra

3

링커는 RestKit 라이브러리의 armv7에 대한 데이터 누락에 대해 불만을 토로합니다.

RestKit 프로젝트에서이 아키텍처를 유효한 아키텍처로 추가하십시오. 분명한 이유 때문에 메인 프로젝트에서 armv7을 제거하는 것보다 훨씬 낫습니다.

+0

빌드 설정을 보여주는 사진이 이미 추가 된 것을 볼 수 있습니다. 내가 이해하지 않는 한. – Jhorra

+0

주 프로젝트는 똑같아 보입니까? 깨끗한 빌드를하는 것을 잊지 마세요. 즉, 앱이 최신 라이브러리 바이너리를 차지하도록해야합니다. – Eiko

관련 문제