Jenkins를 사용하여 지속적인 통합 빌드를 수행하고 있습니다. 동일한 구성 코드가 많은 작업이 꽤 있습니다. 필자는이 모든 것을 일반적인 스크립트 파일로 가져 와서 사전 빌드 및 게시 빌드를 실행하고 싶습니다.Xcode 빌드 단계 실행 스크립트 내에서 전역 환경 변수 설정
Xcode 빌드 명령과 젠킨스 빌드가 모두 볼 수 있도록 해당 스크립트 내에서 환경 변수를 설정하는 방법을 알아 내지 못했습니다.
가능하면 누구에게 알리십니까?
Jenkins를 사용하여 지속적인 통합 빌드를 수행하고 있습니다. 동일한 구성 코드가 많은 작업이 꽤 있습니다. 필자는이 모든 것을 일반적인 스크립트 파일로 가져 와서 사전 빌드 및 게시 빌드를 실행하고 싶습니다.Xcode 빌드 단계 실행 스크립트 내에서 전역 환경 변수 설정
Xcode 빌드 명령과 젠킨스 빌드가 모두 볼 수 있도록 해당 스크립트 내에서 환경 변수를 설정하는 방법을 알아 내지 못했습니다.
가능하면 누구에게 알리십니까?
당신이 물어 보는 것을 정확히 할 수는 없습니다. 프로세스는 다른 프로세스의 환경 변수를 변경할 수 없습니다. 사전 및 사후 및 실제 빌드 단계는 서로 다른 프로세스에서 실행됩니다.
그러나 공통 환경 변수를 설정하고 모든 빌드간에 해당 스크립트를 공유하는 스크립트를 만들 수 있습니다.
는 xcodebuild 먼저 스크립트에서 명령을 실행하는 쉘을 호출하고 부를 것이다 :
# Note the dot in the beginning of the next line. It is not a typo.
. set_environment.sh
xcodebuild myawesomeapp.xcodeproj
스크립트는 다음과 같이 수 :
export VARIABLE1=value1
export VARIABLE2=value2
당신의 작업이 정확히 어떻게 공유합니다 스크립트는 환경 및 유스 케이스에 따라 다릅니다. 당신은
이것이 어떻게 도움이되는지 모르겠습니다. 저와 다른 많은 사람들이 이것을 조사하는 이유는 환경 변수 설정을 통해 다음 구축 단계에 영향을주는 빌드 단계의 능력을 갖추는 것입니다. 필자의 경우에는 미리 정의 된 프로세서 매크로를 설정하는 것만으로도 충분하지만 답은 없습니다. 또는 특정 빌드 단계에서 변수를 내보내는 스크립트를 디스크에 기록해야하며 다른 모든 대상에서 실행해야합니다. –
Apple's Technical Q&A QA1067에서 당신이 파일 /Users/YOU/.MacOSX/environment.plist
을 생성하고 모든 프로세스가 (자신의 홈 디렉토리에있는 environment.plist 파일을 사용자에 의해 시작) 원하는 환경 변수로 채우 경우 이러한 환경 변수를 선택할 것으로 보인다 . 새로 시작한 프로세스가 변수를 선택하기 전에 컴퓨터를 다시 시작하거나 로그 아웃 한 다음 다시 로그인해야 할 수 있습니다.
This article 또한 Xcode가 이러한 변수를 빌드 단계 스크립트에 전달한다고 주장합니다. 아직 테스트하지는 않았지만 다음 번에 MacBook을 다시 시작하면 제대로 작동하는지 알려드립니다.
http://developer.apple.com/library/mac/#/legacy/mac/library/qa/qa1067/_index.html
Q: How do I set environment for all processes launched by a specific user?
A: It is actually a fairly simple process to set environment variables for processes launched by a specific user.
에서 때마다 에 대한 사용자 로그를 검색 loginwindow 특별한 환경 파일이 있습니다. 환경 파일 is : ~/.MacOSX/environment.plist (대소 문자를 구분하십시오). Where '~'는 관심이있는 사용자의 홈 디렉토리입니다. 은 터미널을 사용하여 직접 .MacOSX 디렉토리를 만들어야합니다 ( 입력 mkdir .MacOSX). 파일을 직접 만들어야합니다. 환경 파일은 실제로 XML/plist 형식 입니다 (파일 이름의 끝에 .plist 확장자를 추가해야합니다. 그렇지 않으면 이 작동하지 않습니다).
작동 했습니까? 나는이 방법을 사용하여 내 변수를 볼 xcode를 얻을 수 없었어요 ... – brendanjerwin
@brendan 아니, 그것은 불행히도 나를 위해 일하지 않았다. – chown
아마도이 대답이 도움이 될 수 있습니다. - http://stackoverflow.com/a/32743908/67824 그것은 당신이 글로벌 환경 변수를 정의 할 수는 없지만 환경 변수를 원하는 xcodeproj 빌드 설정을 변경할 수있게 해줍니다 (적어도 저에게는 그러한 경우가 있습니다). –