2009-09-24 6 views
2

이 설정에서는 혼란 스럽습니다 (프로젝트 -> 편집 활성 목표). 검색 경로는 SDK 설정 (시뮬레이터 대 장치)에 따라 다를 수 있습니다.아이폰 xcode 장치 대 시뮬레이터의 검색 경로?

하지만 시뮬레이터와 장치 경로를 모두 제공하면 Frameworks 경로를 말하면 링커 오류가 발생합니다. 하지만 내가 선택한 SDK에 대한 적절한 경로 만 제공한다면 잘된 것 같습니다.

어떻게 두 경로 설정을 모두 유지할 수 있습니까? 현재 SDK를 기반으로 적절한 경로를 잘라내어 붙여 넣기를 선택했습니다.

감사합니다.

답변

1

동일한 대상을 지속적으로 편집하지 않고 sim 및 device 용으로 두 개의 별도 빌드 대상 프로파일을 설정해야합니다. 그것은 목표의 일종입니다.

+1

이것은 목표 지점이 아닙니다. 다른 플랫폼에서 동일한 목표입니다. 대상은 "테스트 응용 프로그램"대 "기본 응용 프로그램"대 "디스크 이미지"와 같은 것입니다. 단일 대상에 대해 플랫폼을 전환하는 좋은 방법은 아닙니다. –

+0

그래, 난 사용자 정의 프레임 워크를 사용하지 않고있다. 표준 sqlite3 라이브러리 외에 표준 프레임 워크를 사용하고 있습니다. 각 플랫폼마다 별도의 대상을 사용해서는 안되면 프레임 워크/lib 경로 문제를 어떻게 수정합니까? 하나의 대상이 있습니다. 시뮬레이터 용으로 빌드하려면 드롭 다운 목록에서 시뮬레이터 3.0을 선택하십시오. 마찬가지로 장치 용 장치 3.0을 선택합니다. – AlvinfromDiaspar

6

어떤 검색 경로를 말하고 있습니까? 시스템 검색 경로는 자동으로 처리되므로 사용자 정의 라이브러리라고 가정합니다.

두 가지 해결책이 있습니다. 조건부 설정을 사용하거나 유니버설 라이브러리를 사용할 수 있습니다. 나는 보편적 인 도서관을 사랑하게되었지만, 아직 전체 지시 사항을 쓸 시간은 없었습니다. 그들이 작동하는 방법은 시뮬레이터와 장치를위한 정적 라이브러리를 빌드 한 다음 lipo을 사용하여 함께 붙입니다. 그런 다음 두 플랫폼 모두에 동일한 라이브러리를 사용할 수 있습니다. 매우 유용하기 때문에 이것을위한 전체 지침을 작성해야합니다.

두 가지 접근 방법이 더 있습니다. 먼저 조건부 설정을 사용할 수 있습니다.

LD_FLAGS[sdk=iphonesimulator*] = -lsasl2 

단지 시뮬레이터 sasl2 링크 : xcconfig 파일 (파일을 xcconfig 사용하는 이유에 my talk 참조)에서는 다음과 같이 넣어. 필요한 플래그를 설정하십시오. 또 다른 해결책은 변수 치환이다 :

HEADER_SEARCH_PATHS = "$(SRCROOT)/MyPackage/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/include" 

MyPackage 프로젝트의 하위 디렉토리에 있고 그것이 build 디렉토리에 지어진 것으로 가정합니다. 예를 들어, 해당 변수는 Debug-iphoneos입니다.

위의 두 가지를 모두 빌드 창에서 수행 할 수도 있지만 심각한 프로젝트의 경우 빌드 창에서 벗어나도록 권장합니다. 변수 대체는 빌드 창에서 동일하게 작동하며 설정을 마우스 오른쪽 단추로 클릭하면 조건부 설정에 액세스 할 수 있습니다.

1

  • 프로젝트 헤더
  • SDK 프레임 워크 헤더
  • sqlite3를 헤더

을 사용하는 경우 다음 헤더 검색 경로는 해야한다. Xcode는 프로젝트 헤더, SDK 프레임 워크 및 /usr/include/*.h에 대한 검색 경로를 자동으로 제공하고 사용중인 프레임 워크에 대한 검색 경로를 조정합니다.

사용자 지정 헤더 검색 경로를 사용하는 유일한 이유는 SDK에 없거나 (SDK의 "깊은"위치에있는) 헤더에 대한 참조가있는 경우입니다 (예 :/usr/include 또는 묻힌 프레임 워크의 하위 디렉토리), 또는 프로젝트가 상호 참조하는 다른 대상 또는 프로젝트에 있습니다.

1

Rob이 이미 암시하고 있지만 분명히하기 위해 빌드 창을 사용하여 설정하는 방법은 다음과 같습니다.

빌드 설정 창에서 "프레임 워크 검색 경로"와 같이 수정할 설정을 선택하십시오. 그런 다음 왼쪽 하단의 기어를 클릭하고 'Build Setting Condition (조건 추가)'을 선택하십시오. 그런 다음 iOS Simulator 빌드에만 적용되는 값과 장치 빌드에만 적용되는 두 번째 빌드 설정 조건을 추가 할 수 있습니다.

관련 문제