2011-03-30 5 views
6

Xcode 4로 업그레이드했습니다.Xcode 4에는 iPhone Sim을위한 i386이 필요합니까?

Xcode 4에서 새로운 iPad 프로젝트를 만들면 모든 것이 작동합니다. Xcode 3에서 프로젝트를 만든 다음 XCode 4로 가져 오면 작동합니다.

그러나 내 프로젝트 중 하나는 컴파일되지 않습니다. 오류가 있었다 :

freaky but working settings in XCode 4

퍼팅 I386은 컴파일 프로젝트 실행 (thanks to this forum thread)을 가지고 :

No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7). 

는 컴파일 및 시뮬레이터에서 실행에 도착하기 위해, 나는 이러한 설정을 사용하여 종료 , 그러나 다른 프로젝트는 이 아니며은 유효한 아키텍처에서 i386을 갖고 있으며 여전히 작동합니다.

다른 프로젝트처럼 프로젝트를 만들려면 어떻게해야합니까?

참고 : 예, XML을 제외한 XCode에서 매우 신중하게 프로젝트를 진행했지만 비 컴파일 버전은 편집중인 친구와 똑같은 모양이었습니다.

+0

http://stackoverflow.com/questions/4915953/upgrading-to-xcode-4-error-no-architectures-to-compile-for –

답변

1

개발자 포럼에서 필자는 .pbxproj 파일을 텍스트 편집기로 편집 한 사용자를 통해 VALID_ARCHS에 항목을 추가했습니다. XCode4가 일부 오래된 XCode3 프로젝트를 처리 할 때 (아직 보지 못했지만) 문제가되는 것 같습니다.

현재 프로젝트를 검사했는데이 줄이 존재하지 않으므로이 문제가 나타나면 project.pbxproj 파일에서이 줄을 제거한 다음 XCode를 다시 시작하십시오.

+0

같은 문제가있는 한 프로젝트에서 발견했습니다. ** 수정하는 대신 ** 프로젝트 파일의 VALID_ARCHS 행을 쉽게 제거 할 수 있습니다. 그러면 Xcode가 기본 옵션 (예 : Sim의 i386, Device의 armv6/7)으로 되돌아갑니다. – robc

+0

그것이 결국 내가 말했던 것입니다, 아마도 그것이 최선의 선택이라고 생각합니다. 이 질문을 더 명확하게하기 위해 마지막 부분을 편집했습니다. –

+0

위대한, 나는 그것을 시험 할 것이다. 방법으로 "대답"을 의미합니다 :) 감사합니다! –

1

정확하게 똑같은 문제가있어서 i386을 추가해야하는 줄을 프로그래밍 방식으로 편집하는 작은 셸 스크립트를 작성했습니다 (모든 git pull 및 tag checkout 후에 테스트 하니스에서이 작업을 수행함). 당신은 모든 VALID_ARCHS = 항목에 I386를 추가해야 할 때마다 다음 쉘 스크립트 코드가 실행

장소 :

sed -i -e 's/.*VALID_ARCHS = armv7;.*/VALID_ARCHS = "armv7 i386";/g' project.pbxproj

오, 당신이 필요로하는,이 스크립트의 직접적인 단순성을 제공 project.pbxproj 파일을 실행할 때와 동일한 디렉토리에 있어야합니다.

그리고 묵시적으로 글로벌 라인 대체를 수행합니다. VALID_ARCHS = armv7의 모든 인스턴스를 대체합니다. VALID_ARCHS = "armv7 i386"; 따옴표가 필요하거나 project.pbxproj 파일을 구문 분석 할 수 없다는 오류 메시지가 Xcode에서 표시됩니다.

+0

소리가 좋습니다. 몇 년이 지났으므로 어떻게 평가할지는 모르지만 어쨌든 +1합니다. –