코드가 변경되면 (파일은 .pch가 아니더라도) 매번 완전한 프로젝트가 다시 컴파일됩니다.
코드가 변경되면 (파일은 .pch가 아니더라도) 매번 완전한 프로젝트가 다시 컴파일됩니다.
답변:
2017/1/2 업데이트
이 문제는 Xcode 8.2.1에서 해결되지 않았습니다 (내 프로젝트).
어떻게 살아남는지?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
2016/12/17 업데이트
이 문제는 Xcode 8.2에서 해결되지 않았습니다.
2016/12/12 업데이트
빌드 및 디버그를위한 코드와 명령 행에 대한 원자가 이제 제 선택입니다. 애플이이 합법적 인 버그를 곧 고치길 바란다
2016/12/04 업데이트
이 문제는 Xcode 8.2 (베타 2)에서 해결 된 것으로 보입니다 .
그러나 나를 위해 해결되지 않으면 Xcode 8.2를 사용할 때도이 문제에 직면합니다. 당신은 (다운로드 Xcode8.2 베타 2 그것을 시도를 제공 할 수 있습니다 여기에 )
빌드 시스템 • Xcode는 작은 변경 사항이 발생한 경우 전체 대상을 다시 작성하지 않습니다. (28892475)
이전 답변 : 이것은 해결 방법입니다.
"빌드 설정"탭-> "C 언어 방언"-> "컴파일러 기본값"으로 변경하십시오.
참고로 :
"C 언어 방언"이 "컴파일러 기본값"대신 "GNU99"로 설정되었습니다. 이전에는 표준이 GNU99 였지만 지금은 그렇지 않았습니다. 어느 시점에서 Xcode는 라이브러리 프로젝트 설정을 올바르게 마이그레이션하지 않았으므로 GNU99로 설정되었습니다. 일단 GNU99로 변경하면 매번 모든 코드를 다시 컴파일하는 것을 중단했습니다!
제품-> 구성표-> 구성표 편집으로 이동하십시오. 왼쪽 열에서 빌드를 선택하고 선택을 취소 " 암시 적 종속성을 찾기 "
그러나이 플래그는 프로젝트를 처음 빌드 할 때 확인 상태를 유지해야합니다.
나를 위해 수정은 스토리 보드를 닫는 중이었습니다. 보조 편집기로 소스 파일을 열었고 스토리 보드 파일도 열었습니다 (스토리 보드를 닫지 않았기 때문에-변경하지 않았기 때문에) 불필요한 모든 컴파일이 제거되었습니다.
업데이트
내가 할 수 있었던 가장 큰 개선점은 프로젝트를 모듈화하는 것이 었습니다. 거의 모든 다른 클래스에 사용되는 ORM 계층을 구체적으로 모듈화합니다. 이 코드를 프로젝트 내 별도의 대상으로 옮기고 모듈로 가져와 컴파일 시간을 크게 향상시킬 수있었습니다. Xcode는 더 이상 빌드를 할 때 불필요한 파일을 다시 컴파일하기로 결정하지 않습니다.
이제 빠른 증분 디버그 빌드를 위해 단일 파일 컴파일 방법을 사용 합니다.
이 링크에는 코드 리팩토링, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5를 포함하여 다른 좋은 제안이 있습니다.
낡은
여전히 Xcode 9에서 계속 문제가되었습니다. 많은 여러분과 마찬가지로 많은 소스 파일 을 사용하여 큰 신속한 4 / cocoapods 프로젝트를 작업하고 매번 파일을 다시 컴파일 할 때마다 격렬합니다.
지금까지 다음 설정으로 최상의 결과를 얻고 있습니다. 나는 당신이 그것을 시도하고 그것이 당신을 위해 어떻게 작동하는지 볼 것을 제안합니다.
사용자 정의 사용자 정의 빌드 설정 추가
참고 : 전체 모듈 최적화에 대한 사용자 정의 사용자 정의 설정이 없습니다.
이 문제를 해결 한 것으로 보이는 접두사 헤더와 관련하여 코드에서 몇 가지 사항을 변경했습니다. 어느 쪽이 실제로 트릭을했는지 모르겠지만 다른 누군가에게 도움이되기를 바랍니다. 접두사 헤더가 설정되어 있지 않으면 이것이 문제가 아닌 것 같습니다 (또는 문제가 다각적입니다).
@import MyModule
. (나에게 이것은 1 단계와 1 단계는 동일했습니다.)그래도 작동하지 않으면 접두사 헤더에서 가져 오기를 더 제거 할 수 있습니다. 그것을 넘어 뜨리는 무언가가있을 수 있습니다 ...
https://forums.developer.apple.com/thread/62737 에 따라 적극적으로 작업하고있는 것처럼 보이지만 해결 방법은 추가하는 것입니다
HEADERMAP_USES_VFS = YES
대상의 빌드 설정에서 (프로젝트-> 대상-> 빌드 설정-> 사용자 정의).
이 솔루션은 지난 달 동안 다른 솔루션이 일관되게 작동하지 않으면 서 매일 저에게 효과적이었습니다.
편집 :이 설정을 정의하면 훨씬 덜 자주 보이지만 여전히 모든 것을 다시 컴파일하는 경우가 있습니다.
@IBDesignable
스토리 보드 에서이 @IBDesignable
속성 이 포함 된 뷰가 있기 때문에 Xcode 빌드 프로젝트에서 항상 지시문에 대한 모든 코드를 확인하십시오 . 두 번째는 스토리 보드를 별도의 창 (탭이 아닌)으로 열어서 Xcode가 모든 시뮬레이터를 영원히 빌드하도록 강요하는 것입니다.
@IBDesignable
지시문을 사용합니다 ... 특히 우리가 찾아야 할 것이 있습니까?
Madhuri Mane은 이것에 관해 전적으로 옳습니다. 좀 더 명확하게하기 위해 몇 가지 중요한 사항에 유의하십시오.
대상이 의존하는 라이브러리 / 프레임 워크에 대한 암시 적 종속성이있는 경우에만 적용 할 수 있습니다.
"암시 적 종속성 찾기"가 비활성화 된 경우 :
결과 : 애플리케이션 대상을 빌드하기 전에 라이브러리가 빌드되지 않습니다. 응용 프로그램 대상을 빌드하지 못했습니다.
수정 : 두 번째 시나리오가 발생하지 않도록하려면 필요한 대상을 대상 목록에 추가하고 올바르게 정렬해야합니다.
주제에 대한 소스 및 추가 자료 : https://pewpewthespells.com/blog/managing_xcode.html#scheme-action
이제 전체 프로젝트가 하나의 대상 내에 있고 컴파일하는 데 4 분이 걸리는 경우 위의 이점을 활용하거나 컴파일이 지연되는 위치를 파악하기 위해 프레임 워크로 분리하는 것 외에는 할 일이 많지 않습니다. PaintCode와 같은 것을 사용하거나 빠른 UIKit 코드 덩어리를 Objective-c로 빠르게 변경하면 훨씬 빠르게 컴파일됩니다.
애플은 어제 새로운 베타 버전의 Xcode를 발표했다 (11 월 14 일)
Xcode 8.2 beta 2
이 문제는 릴리스 정보에서 해결 된 것으로 표시되었습니다.
시스템 구축
• 작은 변화 만 발생한 경우 Xcode는 전체 대상을 다시 작성하지 않습니다. (28892475)
나를 위해 일하고 있습니다. 평소대로 빌드 속도가 돌아 왔습니다. 이 문제에 직면 한 모든 사람들이 시도해보십시오!
프로젝트의 빌드 설정으로 이동하여 "C 언어 방언"을 변경하십시오.
xcode 버전을 업데이트하면 "C 언어 방언"이 "컴파일러 기본값"대신 "GNU99"로 설정됩니다. 어느 시점에서 Xcode는 라이브러리 프로젝트 설정을 올바르게 마이그레이션하지 않았으므로 GNU99로 설정되었습니다. 이것은 문제를 해결할 것입니다
Swift 파일을 변경하여 앱 빌드를 시작한 경우 마지막 탭으로 이동하여 빌드 로그를 클릭하십시오. "종속성 확인"단계에서 빌드를 중지하고 다시 실행하십시오. 두 번째 실행에서는 수정 한 파일 만 빌드해야합니다. 올바르게 수행하면 매번 작동한다는 것을 알았습니다. 프로젝트 설정을 변경할 필요가 없습니다.
이것은 Xcode의 버그 인 것 같습니다.
앱이 전체 빌드를 수행하고있는 경우 빌드를 중지하고이 트릭을 다시 시도하십시오.
코드를 변경하지 않은 경우 디버거를 연결하는 앱을 빌드하지 않고 CMD + CTRL + R을 사용하여 실행하십시오. 앱을 만들지는 않지만 불필요한 시간을 절약 할 수 있습니다.
xcode의 컴파일 시간을 단축하려면 IRAMDISK (가상 메모리 디스크)를 사용할 수 있습니다. 컴파일 시간을 단축하는 매우 유용하고 효과적인 방법입니다.
자주 사용하는 응용 프로그램의 속도를 높이는 데 사용할 수도 있습니다.
다운로드하여 사용하려면 다음 링크를 참조하십시오. http://iramdisk.findmysoft.com/mac/