빌드를 시도 할 때마다 실행되는 스크립트 실행 (컴파일 소스 위)이 있습니다. 이것은 외부적인 이유로 "출력 파일"목록 (실제 스크립트 코드 아래)에 경로를 추가 할 때까지 오랫동안 작동 해 왔습니다. 이 작업을 수행 할 때 Xcode는 모든 빌드 전에 스크립트를 실행할지 여부를 스스로 결정하는 것처럼 보입니다. 출력 경로에 파일이 있는지 확인하고 실행 여부를 평가하기 위해 "createdDate"또는 "modifiedDate"와 같은 내부 논리가 있는지 확인한다고 생각합니다.
매번 실행하려면이 스크립트가 필요합니다. 3 초 전에 해고 되었어도. 매번 강제로 실행하는 방법이 있습니까?
"rm -rf outputPath"가있는 관련 스크립트 앞에 "스크립트 실행"을 추가하려고했지만 여전히 건너 뛰었습니다.
- 답변 # 1
관련 자료
- c# - 데스크톱 (iOS 아님) Unity Xcode 빌드의 AddBuildProperty?
- javascript - Angular에서 동적으로 생성 된 빌드 스크립트에 HTML 속성을 어떻게 추가합니까?
- installshield - 설치 쉴드를 만들 수 있습니까?64 비트 setupexe를 생성하는 스크립트 설치/스크립트 MSI 프로젝트 설치?
- 젠킨스 포스트 빌드 파이썬 스크립트 파일
- ios - Xcode 102로 업데이트 한 후 testflight에서 빌드가 검은 색 화면으로 표시됨
- Docker Compose는 하나의 서비스에 대해 항상 강제 빌드
- ios - xcode 프로젝트 - 빌드 실패
- msbuild - 빌드 후 스크립트
- swift - Xcode에서 빌드 시스템 정보 경로를 변경하는 방법은 무엇입니까?
- java - gradle 빌드 스크립트에 매개 변수 전달
- laravel - npm 실행 빌드 누락 스크립트
- swift - tvOS 및 iOS 용 프로젝트에서 Xcode 1021에서 빌드 실패
- ios - 환경 변수에 따라 Xcode 빌드 설정 값 조정
- javascript - 페이지에서 JS 스크립트 강제로드
- Flutter 코드를 사용하여 Xcode에서 IOS 빌드를 만들 수 없습니까?
- Xcode 테스트 빌드가 성공했는지 감지하는 방법은 무엇입니까?
- mac - Xcode 122의 dylib에 C ++ 코드를 연결할 수 없음 (릴리스 빌드 만 해당)
- SQL Server 에이전트 작업에서 무한 while 루프 스크립트를 강제로 중지하는 방법
문제의 스크립트는 Apollo의 GraphQL 항목의 일부였습니다. 우리 프로젝트에서 많은 .graphql 파일을 가져 와서 우리가 사용할 API.swift 파일로 변환/생성합니다. 일부 외부 CI 항목으로 인해 스크립트의 "출력 파일"에 출력 파일의 경로를 추가해야했습니다. 이것은 Xcode가 이전에 생성 된 파일을 "충분히 양호"한 것으로 간주하여 .graphql 파일의 내용이 그 동안 변경 되었음에도 불구하고 다시 생성하지 않기 때문에 때때로 스크립트가 무시되는 원인입니다.
모든 .graphql 파일을 포함하는 모든 폴더의 경로를 .xcfilelist에 추가하고 "출력 파일"위의 "입력 파일 목록"에 추가하여 문제를 해결했습니다. 이렇게하면 Xcode가 빌드 할 때마다 이러한 파일이 변경되었는지 여부를 확인하고 필요할 때 재생성합니다.
이것은 원래보다 훨씬 나아졌습니다 (생성하는 데 몇 초 밖에 걸리지 않았지만 매번 재 생성됨). Apollo/GraphQL을 사용하는 모든 사람에게 동일한 작업을 권장 할 수 있습니다.