xcode에서 사용할 shell script 작성하기 2/3

Leo Kang·2021년 7월 22일
0

shell script for xcode

목록 보기
2/3

타겟별 customizing data source 구분하기

목표: 타겟별로 구분지을 수 있는 파일을 만들고 거기에서 값을 읽어와서 info.plist를 수정.

사실, 쉘 스크립트? 뭐 그거 별거있겠어
하고 만만하게 보고 덤볐는데...

생각만큼 잘 되지 않았다.
실제로 xcode의 Build Phases에 Run Script에서 실행해서 그런지..
인터넷에 나온 예제대로 했는데 안된다거나 하는 문제가 발생했다.

미친 구성! 오늘만 이가격~!! 프로젝트 하나에 타겟 100개를 드립니다.

우리 프로젝트는 현재, 하나의 프로젝트에 타겟이 100개 이상 된다.
미쳤다고? 그게 가능하냐고? 거짓말 아니냐고?
처음에는 사이트 별로 프로젝트가 따로 나뉘어져 있어서
view 하나 수정하면 프로젝트 n개를 열어서 수정해야 했는데 통합해서 그나마 쉬워진거고..

"저도 이렇게 될 줄 몰랐어요." dev, stage, release
사이트 당 3개의 타겟...

뭐, 암튼! 각설하고 프로젝트의 타겟 설정은 그렇고,
규칙에 맞게 만들어진 타겟별 info.plist 파일의 위치와, 이름을 조작할 수 있게 되고
이걸 가지고, 실제 빌드 자동화에 사용하겠다는게 나의 생각이다.

우선 이름을 가져와서 자르는 것 부터 하나하나 구글링했고,
이 이름을 대문자로 만들어 보기까지 단, 두 줄이면 되었지만 두 시간은 쓴 것 같다.
실제 터미널에서 하면 잘되는게 xcode에서 하면 안되기가 일쑤였고, 잘 돌아가는 코드는 아래와 같다.

프로젝트명에서 사이트 이름을 추출하여 대문자로 만들어 보자!
왜냐면, 타겟별 상수 클래스 선언하는 폴더를 그렇게 만들어 놨거든.

folder=$(echo ${PRODUCT_NAME:rfc1034identifier}| cut -d'-' -f 2)
uppercase=$(echo $folder | tr a-z A-Z)

처음에는 bash 파일을 만들어서 임포트하는 방식으로 사용하려고 했지만,
왜인지 실행하면 안되길래 이 방법은 포기하고 그냥 xcode에 embed 하는 방식으로 하려고 한다.
(잘 아시는 분은 조언 부탁드립니다.)

자 그럼 이제! 커스텀 파일을 만들어 보자

우선 적당한 위치에 'kakaologinkey.txt' 파일을 만들고,
내용을 작성한다.

인터넷 예제를 보면 휴대폰 제조사 이름을 한줄에 하나씩 쓰고
이걸 출력해보는 예제가 있어서 따라 해봤는데

SAMSUNG
APPLE
LG

이게 또 웃긴게 visual studio code로 작성하고
3번째줄 LG에서 엔터를 누르지 않으니 2줄 까지만 읽어온다.
터미널에서 vi로 작성하면 이게또 3줄까지 읽음.

^오^ 신난다.

아마도 vs에서 작성하면 캐리지리턴이나, 이런게 맥에서 사용하는 시스템이랑 달라서 그런거 같으니,(합리적 의심)
이왕이면 vi나 다른툴(테스트는 안해봄)에서 작성을 하자 라고 생각도 했는데
그러기엔 귀찮으니..

웬만하면 그냥 엔터치는 걸로 하고 그도 아니다 싶으면,
dummy 라인을 하나 더 집어 넣고
최종 info.plist에 추가되어도 상관없는 string을 하나 넣어두는게 속 편할 것 같다.

# 라인 한줄 한줄 읽어서 프린트 해보자.
filename='kakaologinkey.txt'
n=1
while read line; do
# reading each line
echo "test Line No. $n : $line" 
n=$((n+1))
done < $filename

자 이렇게 파일읽기와 경로설정에 필요한 재료들을 가져왔으니,
이제 info.plist 에 넣어주면 되겠다.

profile
iOS developer

0개의 댓글