[objective-c] Xcode 4 (및 종속성)로 문제 컴파일, 빌드 또는 아카이브

이 질문은 더 일반적인 문제를 다루기 위해 지난 몇 주 동안 발전했습니다. (그리고 업그레이드 프로젝트는 오래된 에스).

그러나 동일한 지침을 따르면 많은 문제를 해결할 수 있습니다.

다음과 같은 문제가있는 경우 수락 된 답변의 방법을 시도해보십시오.

  • Xcode 4가 앱을 보관하지 못함
  • Xcode 4는 사용할 수없는 아카이브를 만듭니다.
  • Xcode 4는 .ipa를 생성하지 않습니다.
  • 전 처리기 오류로 인해 Xcode 4가 컴파일되지 않습니다.
  • Xcode 4에서 헤더를 찾을 수 없습니다.
  • Xcode 4의 코드 완료가 작동하지 않습니다.
  • 프로젝트 종속성이 컴파일되지 않습니다.
  • 종속성을 추가하면 위의 문제가 발생합니다.

원래 질문

제목 : Xcode 4의 “어휘 또는 전 처리기 문제 파일을 찾을 수 없음”

Xcode 4에 잘 빌드되고 장치 및 시뮬레이터에서 실행되는 프로젝트가 있지만 보관하려고 할 때 정적 라이브러리와 관련된 헤더 파일을 찾을 때 오류가 발생합니다.

In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15:
In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23:
In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11:
In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10:
/Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file not found [1]
 #import "Merchant.h"
         ^
1 error generated. 

Xcode가 오류를 제공합니다.

lexical or preprocessor issue file not found 

많은 인터넷 검색은 많은 사람들이이 문제를 겪고 있지만 해결책이 없음을 보여줍니다. 누구나 고치거나 단서가 있습니다.

업데이트 :user header 검색 경로로 설정되어 ${BUILT_PRODUCTS_DIR}모든 구성에서. 보관할 때를 제외하고 모든 구성을 사용하여 잘 구축됩니다.

업데이트 2 : Merchant.h 자동 생성되어 .xcdatamodeld패키지 내부에있는 Core Data 클래스 이지만 라이브러리가 빌드 될 때 헤더는 모두 공용 헤더 디렉토리에 복사됩니다.



답변

NB : 아래 단계는 Xcode 아카이브 문제의 90 %를 해결하지만, 의견을 통해
먼저 Xcode를 종료 하는 것이 좋습니다 . 이렇게하면 설정 조정 시간을 절약 할 수 있습니다.

  1. “사용자 헤더 경로”가 올바른지 확인합니다 (프로젝트 및 종속성 모두에서 공백 경로에 “”추가).
  2. “항상 사용자 경로 검색”을 예로 설정
  3. 프로젝트에서 “인덱싱 헤더”라는 그룹 호출을 생성하고 헤더를이 그룹으로 드래그합니다 . 메시지가 표시 될 때 대상에 추가 하지 마십시오 . 여기에는 .xcdatamodeld 내부의 모든 헤더가 포함 되며 , 패키지 콘텐츠를 찾으려면 마우스 오른쪽 버튼을 클릭하고 확인해야합니다.
  4. 모든 종속성에 대해 “Skip Install” 빌드 설정을 “Yes”로 설정하십시오.
  5. 빌드 단계의 “공용”헤더를 “프로젝트”로 이동
  6. 타겟 의 빌드 설정 “설치 디렉토리” 를 다음으로 설정합니다.$(LOCAL_APPS_DIR)
  7. 대상 빌드 설정 “포함에 대한 모든 소스 파일 스캔”을 예로 변경하십시오. ( 링크 )
  8. 최신 버전의 Xcode (> 4.2)에서는 작업 공간과 관련된 이 질문읽고 싶을 수 있습니다 .
  9. 참조 된 모든 프로젝트 에서 project.xcworkspace 파일을 수동으로 삭제합니다.


답변

XCode 4에서 동일한 문제가 발생했습니다. “어휘 또는 전 처리기 문제 MyFile.h를 찾을 수 없음”. 그러나 MyFile.m은 정적 라이브러리가 아니라 표준 클래스였습니다. 그리고 MyFile.m과 MyFile.h가 제대로 포함되었고 프로젝트에 인덱싱되었습니다.

그래서 … XCode와 Simulator를 종료 한 다음 다시 시작하면 문제가 사라졌습니다.


답변

대상 빌드 설정 “포함 할 모든 소스 파일 검색”을 아니요에서 예로 변경하면 문제가 해결되었음을 알았습니다.


답변

.h 파일을 파인더의 프로젝트 디렉토리에 복사하여 빌드 설정을 변경하지 않고도이 문제를 해결할 수있었습니다. 나는 그것들을 프로젝트에 전혀 추가하지 않았습니다. 프로젝트의 파일 시스템 디렉토리에있는 것만으로도 Xcode의 암시 적 링크가 제대로 작동 할 수있을 것 같습니다. 자세한 내용은 여기를 참조 하세요 .


답변

나는 이와 같은 이상한 문제가 있었다. “모든 리소스 파일 검사 …”를 예로 변경해도 도움이되지 않았습니다. 프레임 워크 검색 경로를 살펴본 결과

  • $ (상 속됨)
  • “$ (SRCROOT)”
  • “$ (SRCROOT) / my / correct / path”

옳은 것처럼 보였지만 여전히 실패했습니다. 그런 다음 2와 3의 순서를 다시 정렬하려고 시도했는데 갑자기 잘되었습니다. 그래서 그것이 왜 힉업인지 확실하지 않지만 다른 사람에게 도움이 될 경우 시도 할 일 목록에 추가하고 싶었습니다.


답변

내 해결책은 내

#import "HeaderFile.h"

#import <FrameworkName/HeaderFile.h>

모든 것이 다시 작동하기 시작했습니다. 특이한 점은 몇 번 빌드 한 후 갑자기 작동을 멈춘 것입니다.


답변

설정하면 문제가 저절로 해결되었습니다.

빌드 설정-> 프로젝트-> 검색 경로를 예로 설정