이 질문은 더 일반적인 문제를 다루기 위해 지난 몇 주 동안 발전했습니다. xcode4 (그리고 업그레이드 프로젝트는 오래된 xcode에스).
그러나 동일한 지침을 따르면 많은 문제를 해결할 수 있습니다.
다음과 같은 문제가있는 경우 수락 된 답변의 방법을 시도해보십시오.
- 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를 종료 하는 것이 좋습니다 . 이렇게하면 설정 조정 시간을 절약 할 수 있습니다.
- “사용자 헤더 경로”가 올바른지 확인합니다 (프로젝트 및 종속성 모두에서 공백 경로에 “”추가).
- “항상 사용자 경로 검색”을 예로 설정
- 프로젝트에서 “인덱싱 헤더”라는 그룹 호출을 생성하고 헤더를이 그룹으로 드래그합니다 . 메시지가 표시 될 때 대상에 추가 하지 마십시오 . 여기에는 .xcdatamodeld 내부의 모든 헤더가 포함 되며 , 패키지 콘텐츠를 찾으려면 마우스 오른쪽 버튼을 클릭하고 확인해야합니다.
- 모든 종속성에 대해 “Skip Install” 빌드 설정을 “Yes”로 설정하십시오.
- 빌드 단계의 “공용”헤더를 “프로젝트”로 이동
- 타겟 의 빌드 설정 “설치 디렉토리” 를 다음으로 설정합니다.
$(LOCAL_APPS_DIR)
- 대상 빌드 설정 “포함에 대한 모든 소스 파일 스캔”을 예로 변경하십시오. ( 링크 )
- 최신 버전의 Xcode (> 4.2)에서는 작업 공간과 관련된 이 질문 을 읽고 싶을 수 있습니다 .
- 참조 된 모든 프로젝트 에서 project.xcworkspace 파일을 수동으로 삭제합니다.
답변
XCode 4에서 동일한 문제가 발생했습니다. “어휘 또는 전 처리기 문제 MyFile.h를 찾을 수 없음”. 그러나 MyFile.m은 정적 라이브러리가 아니라 표준 클래스였습니다. 그리고 MyFile.m과 MyFile.h가 제대로 포함되었고 프로젝트에 인덱싱되었습니다.
그래서 … XCode와 Simulator를 종료 한 다음 다시 시작하면 문제가 사라졌습니다.
답변
대상 빌드 설정 “포함 할 모든 소스 파일 검색”을 아니요에서 예로 변경하면 문제가 해결되었음을 알았습니다.
답변
답변
나는 이와 같은 이상한 문제가 있었다. “모든 리소스 파일 검사 …”를 예로 변경해도 도움이되지 않았습니다. 프레임 워크 검색 경로를 살펴본 결과
- $ (상 속됨)
- “$ (SRCROOT)”
- “$ (SRCROOT) / my / correct / path”
옳은 것처럼 보였지만 여전히 실패했습니다. 그런 다음 2와 3의 순서를 다시 정렬하려고 시도했는데 갑자기 잘되었습니다. 그래서 그것이 왜 힉업인지 확실하지 않지만 다른 사람에게 도움이 될 경우 시도 할 일 목록에 추가하고 싶었습니다.
답변
내 해결책은 내
#import "HeaderFile.h"
에
#import <FrameworkName/HeaderFile.h>
모든 것이 다시 작동하기 시작했습니다. 특이한 점은 몇 번 빌드 한 후 갑자기 작동을 멈춘 것입니다.
답변
설정하면 문제가 저절로 해결되었습니다.
빌드 설정-> 프로젝트-> 검색 경로를 예로 설정
