Xcode 4-빌드 출력 디렉토리 심지어 Cocoa 번들도 마찬가지입니다. 디버깅이 잘

Xcode4 (베타 5)에서 출력 파일을 설정 / 찾는 데 문제가 있습니다. 그들은 어딘가에 배치됩니다 ~/Library/Developer/ugly_path/.... 내 제품에서 “파인더에 표시”를 선택할 수도 없습니다. 간단한 C 프로젝트, Foundation 툴, 심지어 Cocoa 번들도 마찬가지입니다. 디버깅이 잘 작동합니다.

출력 디렉토리를 설정하고 빌드하는 위치와 방법을 알려주시겠습니까? (나는 그것이 바보처럼 들린다는 것을 알고, 몇 달 동안 Xcode3로 코딩 해왔지만 Xcode4 베타에서는 알아낼 수 없다).

고마워



답변

상단의 Xcode 메뉴에서 환경 설정을 클릭하고 위치 탭을 선택한 다음 빌드 위치 옵션을 확인하십시오.

두 가지 옵션이 있습니다.

  1. 파생 데이터 위치에 빌드 제품 배치 (권장)
  2. 대상이 지정한 위치에 빌드 제품을 배치하십시오.

업데이트 : xcode 4.6.2에서는 파생 데이터 텍스트 필드 아래의 오른쪽에있는 고급 버튼을 클릭해야합니다. 빌드 위치 선택 레거시.


답변

명령 행에서 빌드하는 경우 다음과 같은 방법으로 출력 디렉토리를 설정할 수 있습니다.

xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \
           -scheme 'SCHEME_NAME' \
           -configuration 'Release' \
           -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY'


답변

Xcode 5에서 : Xcode 메뉴> 환경 설정 … 항목> 위치 탭> 위치 하위 탭> 고급 … 버튼> 사용자 정의 옵션.

그런 다음 예를 들어 작업 공간에 상대적을 선택하십시오 .


답변

Xcode 4 빌드 위치 설정을 “파생 데이터 위치에 빌드 제품 배치 (권장)”로 설정 한 경우 ~ / Library / Developer / Xcode / DerivedData에 위치해야합니다.이 디렉토리에는 프로젝트가 디렉토리로 있습니다. 프로젝트 이름에는 생성 된 문자가 추가되므로 신중하게 살펴보십시오.


답변

파생 된 데이터는 유지하지만 DSTROOT를 사용하여 대상을 지정하십시오.

DEPLOYMENT_LOCATION을 사용하여 배포를 강제 실행하십시오.

문서화되지 않은 DWARF_DSYM_FOLDER_PATH를 사용하여 dSYM도 복사하십시오.

이를 통해 xcodebuild에서 파생 된 데이터 위치를 사용할 수 있으며 앱을 찾기 위해 별난 일을 할 필요가 없습니다.

xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build


답변

빌드 로그 뷰어를보고 경로를 터미널 창에 복사하여 빌드 디렉토리를 항상 찾을 수 있습니다.

나는 이것을 사용하여 스트레이 파일이 포함되지 않도록 iOS .app 번들을 설치하기 전에 분석합니다.


답변

스크립트에서 빌드 디렉토리를 찾고 싶지만 변경하지 않으려는 사람은 다음을 실행하여 DerivedData의 폴더를 가리키는 모든 빌드 설정 목록을 가져 오십시오.

xcodebuild -showBuildSettings | grep DerivedData

사용자 정의 대상 및 구성표를 실행하는 경우 다음과 같이 배치하십시오.

xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData

출력을보고 원하는 설정 출력을 찾은 다음 :

xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//'

마지막 부분은 문자열을 등호로 자른 다음 시작 부분에서 공백을 자릅니다.