Xcode Behavior 설정하기 feat. 터미널 키기 귀찮아

llim🧚🏻‍♀️·2023년 6월 23일
0

Xcode

목록 보기
1/1
post-thumbnail

안녕하세요. 엘림입니다!
지인짜 오랜만에 글을 쓰네요. (안쓴지 오래되서 썸네일 ㅂㅐ경 못찾앗움.. 새로만들어버림..ㅠ)

(TMI)1달만 더 있으면 iOS 개발자로 취업한지 2년이 됩니다.🎉

사실 블로그에 글 몇개 없는데.. 다들 어떻게 잘 보시나봐요^^..
어제도 잘 봤다는 말씀을 해주시는 분을 만나서, 아 그래 다시 블로그 글을 써야겠다 라고 결심했습니다.
(이 결심한 30번은 한 듯)

복귀(?)기념 가벼운 내용으로 한번 써보려고 합니다.

그럼 ㄱ_ㄱ


아니 그래서 오늘 내용이 뭐냐면요
이렇게 저렇게 막 하면서 빌드를 하려고 해요 근데 딱!

The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

안 돼 안 바꿔줘. 바꿀 생각 없어. 빨리 터미널 켜서 pod install해 합니다.

그럼 화면을 바꾸고(?) 터미널을 켜서 pod install을 하고 완료되면 돌아와서 다시 빌드합니다.

솔직히 이거 다들 안 귀찮아 할 것 같은데, 전 귀찮았습니다. 그리고 전에 팀장님께 좋은 정보를 받았죠.
그게 바로 Xcode Behavior입니다.

그럼 어떻게하냐? 바로ㄱ_ㄱ

  1. 우선 Xcode > Behiviors > Edit Behiviors로 들어갑니다.
    (저는 이미 등록되어있어서 위에 3가지가 보이는데, 여러분은 안보일거에요!)

  2. 그 후에 뜬 창에서 좌측 하단 + 버튼을 눌러서 원하는 이름을 적고(이름은 맘대로 하세요. 욕 써도 됨(?)),
    원하는 단축키를 설정해주면 됩니다!

    누르면 이미 있다고 하는 단축키들이 엄청 많은데.._(난 안쓰는데..)_
    저는 기존걸 바꾸기는 좀 그런거같아서 그냥 열심히 비어있는 단축키 찾아서 설정했습니다ㅎㅎ
  3. 그리고 우측 가장 하단으로 가면 Run이 있는데 거기에 쉘스크립트 파일을 넣어주면 끝~~ 참 간단하죠?

아니 근데 쉘스크립트 파일이 없는데요?

네 여기있습니다. 지금 드려요~
(참고로 제가 만든 건 아니고, 전 팀에서 팀장님께 받은거 아주 살짝 수정했습니다ㅎㅎ)

#!/bin/bash

# move project dir
PROJECT_HOME=`pwd`
echo "cd $PROJECT_HOME" > /tmp/tmp.sh

# search .xcodeproj file and strip filename
PROJECT_NAME=""
for f in *.xcodeproj; do
    PROJECT_NAME="${f%.*}"
    break
done

if [[ -z "$PROJECT_NAME" ]] || [ "$PROJECT_NAME" == "*" ]; then
    osascript -e 'error'
    exit
fi

# pod init & update
echo "pod init;pod install;clear;" >> /tmp/tmp.sh

# reload workspace file
echo "wait" >> /tmp/tmp.sh
echo "echo \"Close '$PROJECT_NAME' Xcode window\""  >> /tmp/tmp.sh
echo "open $PROJECT_NAME.xcworkspace" >> /tmp/tmp.sh
echo "rm /tmp/tmp.sh" >> /tmp/tmp.sh

chmod +x /tmp/tmp.sh
open -a iTerm /tmp/tmp.sh

이 내용을 pod_install.sh와 같이 파일로 만드신 후 넣어주시면 됩니다~ 끝?!이긴한데

저는 무려 3개나 있었죠.
한개는 지금 보신 pod_install이고요, 다른 하나는 회사 내부에서 쓰는 sh을 돌리는 것인데요. 아래와 같습니다.

#!/bin/bash

# move project dir
PROJECT_HOME=`pwd`
echo "cd $PROJECT_HOME" > /tmp/tmp.sh

# search .xcodeproj file and strip filename
PROJECT_NAME=""
for f in *.xcodeproj; do
    PROJECT_NAME="${f%.*}"
    break
done

if [[ -z "$PROJECT_NAME" ]] || [ "$PROJECT_NAME" == "*" ]; then
    osascript -e 'error'
    exit
fi

# run .sh
echo "chmod +x [파일_이름].sh" >> /tmp/tmp.sh
echo "./[파일_이름].sh" >> /tmp/tmp.sh

chmod +x /tmp/tmp.sh
open -a iTerm /tmp/tmp.sh

이런 식으로 되어있는데요 . 보시면 위 아래 구성은 같고, 가운데 윈하는 sh파일 동작 시키기에 [파일_이름]부분만 여러분이 원하는(미리 짜놓으신) sh 파일을 돌릴 수 있습니다.
저 같은 경우에는 회사에서 다같이 쓰는 내용이라 이 프로젝트 폴더 안에 있기 때문에, 그 안에 있는걸 동작시키는 것이라고 보시면 되겠습니다😀

근데 이렇게 동작 시키면서도 팟 서브모듈 업데이트 시킬 일도 있어서요ㅎㅎㅎㅎ...

#!/bin/bash

# move project dir
PROJECT_HOME=`pwd`
echo "cd $PROJECT_HOME" > /tmp/tmp.sh

# search .xcodeproj file and strip filename
PROJECT_NAME=""
for f in *.xcodeproj; do
    PROJECT_NAME="${f%.*}"
    break
done

if [[ -z "$PROJECT_NAME" ]] || [ "$PROJECT_NAME" == "*" ]; then
    osascript -e 'error'
    exit
fi

# run .sh
echo "chmod +x [파일_이름].sh" >> /tmp/tmp.sh
echo "./[파일_이름].sh" >> /tmp/tmp.sh

# submodule update
echo "wait" >> /tmp/tmp.sh
# 저는 가끔 오류가 생겨서 삭제하고 다시 받는거라 사용하고 있는데, 원래는 아래 submodule update만 해도 됩니다!
# echo "rm -rf [submodul폴더이름]" >> /tmp/tmp.sh 
echo "git submodule update" >> /tmp/tmp.sh

# pod init & update
echo "wait" >> /tmp/tmp.sh
echo "pod init;pod install;clear;" >> /tmp/tmp.sh

# reload workspace file
echo "wait" >> /tmp/tmp.sh
echo "echo \"Close '$PROJECT_NAME' Xcode window\""  >> /tmp/tmp.sh
echo "open $PROJECT_NAME.xcworkspace" >> /tmp/tmp.sh
echo "rm /tmp/tmp.sh" >> /tmp/tmp.sh

chmod +x /tmp/tmp.sh
open -a iTerm /tmp/tmp.sh

이런식으로 한번에 모두 모아서 사용하기도 합니다🎉
(참고로 위에서부터 순서대로 동작하니까, 순서가 필요한 경우 순서를 지켜주세요~)
여러분도 필요에 따라서 커스텀 해보십쇼! 그럼 이만🙇‍♀️

profile
한달 차 iOS 개발자입니다🐥

0개의 댓글