"스크립트 실행"빌드 단계를 릴리스 구성으로 제한하려면 어떻게해야합니까?


138

타겟의 빌드 단계가 끝날 때 실행하고 싶은 쉘 스크립트가 있습니다. 그러나 릴리스 구성으로 빌드 할 때만이 스크립트를 실행하고 싶습니다 . 이것을 어떻게 할 수 있습니까? 감사!

답변:


295
if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi

스크립트는 모든 구성이 끝날 때 실행되지만 구성이 릴리스가 아니면 스크립트가 수행하는 모든 것을 테스트 블록 내에 포함한다고 가정하면이 경우에는 아무 작업도 수행하지 않습니다.


1
방금 여러 단어로 된 구성 이름으로 작동하지 않는 것을 발견했습니다. "릴리즈"에서는 작동하지만 "내부 베타"에서는 작동하지 않습니다.
Hedin

4
@Hedin-그것은 단지 bash입니다. 여러 단어로 된 변수가 있으면 변수를 따옴표로 묶어야합니다. 따라서 $ {CONFIGURATION}은 "$ {CONFIGURATION}"이됩니다. 포함하도록 답변을 업데이트하겠습니다.
Jason Coco

15
'Debug', 'Release'(Instrument), 'Ad Hoc'및 'App Store'구성 (코드 서명이 다름)이 있으므로로 변경했습니다 if [ "${CONFIGURATION}" != "Debug" ]; then....
Nicolas Miari

1
if 조건의 경우 .pch 파일에 저장된 #define TRUE / FALSE를 사용하고 싶습니다. 스크립트 코드에서 어떻게 참조합니까?
newton_guima

2
전 처리기 플래그를 사용하여 동일한 작업을 수행 할 수 있습니까?
저스틴 발레리

15

가장 쉬운 방법은 "설치할 때만 스크립트 실행"체크 상자를 체크하는 것입니다.



4
"실제 장치의 디버그 설치 (Xcode에서 빌드 및 실행)는"설치 "로 간주되지 않습니다. 실행 스크립트는 보관시에만 실행됩니다 (Xcode 9로 테스트)." stackoverflow.com/questions/5913199/…
darkheartfelt

2
Release보관하지 않고 구성 에서 앱을 빌드하려는 경우 작동하지 않습니다 . 질문은 Release구성 에 관한 것 입니다.
Legonaftik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.