티스토리 뷰

반응형


안녕하세요 :) Zedd입니다.

오늘은..문득 이런생각이 들었어요.


Xcode에서 파일을 만들면 무조건 위에....



이런 comment가 달리죠?

저희 프로젝트에서는 이게 굳이 필요없다고 판단해서 다 지우곤 하거든요. 

뭐 사람이 엄청 많은 프로젝트에서는 누가 이 파일을 만들었는지 알아야 할 때도 있겠죠?? 

아무튼..이걸 지우면서, 아예 이게 안만들어질 순 없나? 라는 생각을 하게 되었어요.

그럼 지울 필요도 없으니까요!!!


그래서 찾아보다가 방법을 알게 되었습니다 XD

한번 고쳐봅시댜


이 comment를 header text 또는 header comment라고 부르는 것 같아요.


아무튼 이런걸 고쳐봅시다.

https://help.apple.com/xcode/mac/9.0/index.html?localePath=en.lproj#/dev91a7a31fc

에 나와있는 내용을 바탕으로 볼게요.


아니 나는 이 원래의 템플릿(?)이 어딨는지 알고싶은데 그게 안나오네...

어딨는거지??분명히 있을텐데.......


일단 새로 템플릿을 하나 만들어봅시다.





를 선택해주시고,

이름은 IDETemplateMacros로 지어주세요.


자 그러면 처음엔 Root만 있을 텐데, +를 눌러서 key를 추가해줍니다. 이름은 FILEHEADER



그럼 이렇게 되어있을텐데요, 


일단 우리 간단하게 아ㅏ무거나 적어봅시다.

그럼 이제 plist파일은 만들어졌고, 이 만들어진 plist파일을 어디에다가 옮겨줘야 적용이 된답니다.

일단!!! 지금 이 프로젝트에만 적용해볼게요.


내 프로젝트 폴더를 열면 .xcodeproj 파일으 보이실텐데, 오른쪽 클릭하시고



패키지 내용 보기를 클릭해주세요.

그럼 이 화면이 뜨는데요, 


xcuserdata를 클릭해줍니다.

그럼 이 폴더가 나올텐데...


클릭해주세요.

여기에!!!! 우리가 만든 plist파일을 넣어줍니다.


자..그럼 이제 적용이 된거라고 볼 수 있는데요, 파일을 하나 만들어봅시다.



^_________^


자! 여기서 알 수 있는 사실 하나는...우리는 그냥 

Zedd라고 적었지만 나올때는 앞에 //를 붙혀서 나온다는거!

저는 //와 Zedd사이에 스페이스 하나가 없는게 조금 거슬리는데, 그건 제가 알아서 해줄게요.


앗..

원래는 두칸이니까 저도 그럼 두칸해줄게요.....


악 근데

이렇게 없애고 해봐도 zzzz



ㅁ.....뭐라도 하나 적자 그럼 ㅎ

여기에 가면 사용 할 수 있는 Text macro가 있는데요, 



종류가 은근 많답니다.


하나씩 보.....면 너무 많나? 


자 그럼 일단 하나씩 봅시다.


COPYRIGHT

A copyright string that uses the company name of the team for the project. If there is no company name, the string is blank.

The example shows a copyright string when the company is set to “Apple”.

Copyright © 2017 Apple. All rights reserved.




COPYRIGHT! 우리 이거 디게 많이 봤죠.



요거에요.


자, 다ㅓ시 아까 그 위치로 가서 plist파일을 열어주고 COPYRIGHT를 적어줍니다. 

가장 중요한 점은...앞에 언더바 3개 뒤에 언더바 3개......1개도 2개도 4개도 안됩니다. 오직 3개............

자 저장하고, 새로운 파일 하나를 만들면!?



ㅎ_ㅎ

저는 앞에 두칸 띄워줬어요. 

네 암튼 이게 COPYRIGHT입니다.

DATE

The current date.



DATE. 이제 하나하나 설명은 안할게요. 알아서 하셈

이렇게 언더바끼리 붙어도 괜찮습니다.


그럼 띄어쓰기가 안되어서 나올뿐...ㄱㅊ


난 다음줄에 표시하고 싶은데??

한번 해봅시다.

이상태에서 

control + enter

option(alt) + enter를 하면 

줄이 새로 만들어지게 되는데 control + enter한거랑 option(alt) + enter한거랑 결과가 조금 다릅니다. 

이게 한줄밖에 안보여서 개불편한데, 편한 방법은!!!

텍스트 편집기로 열어라......저는 아톰으로 열었습니다. 



제가 //  ___DATE___를 해준게 보이시나요?

엥????아까 //를 안해줘도 알아서 생긴대매;;;;;;;;


네 근데 둘째줄 부터는 안생기네요?.......그래서 알아서 해줘야ㅕ하ㅣㅁ



결과!


DEFAULTTOOLCHAINSWIFTVERSION

The version of Swift used for the default toolchain.



이렇게 하면


4.0....??? 왜 4.0이지? 음 이게 지금 프로젝트 swift version이랑 좀 다르게 나오는 것 같아요.


나 4.2인데...Swift 4.0이랑 4.2가 얼마나 다른데요................그러니까 보는 사람 입장에서 헷갈릴 수 있음.

이게 toolchain에 default를 따라가는것 같은데

아마 이 글 처럼 snapshot을 등록하면 아마 5.0이 나오지 않을까 하는 생각이 드네요.

원래 여기에 toolchain이 떠야하는데...왜인지 모르겠지만 안뜸.


아무튼 나는 이거 적용 안할래


FILEBASENAME

The name of the current file without any extension.



확장자는 안나오겠다?


그럴 때 

FILENAME

The full name of the current file.

을 쓰면

이렇게 나오게 된답니다.

이것도 걍 뭐 너무 명시적인거라 나는 이것도 뺄거임


아무튼 뭐 이런식으로 자기가 원한는거 추가하세요


참고로

하나하나 주석하기 귀찮다면


이런식으로 하는 방법도 있는데



이런식으로 나오게 됩니다. 

제 눈에는 굉장히 안이쁨

//

//

이게 낫다 나는....



마지마ㅓㄱ으로...제가ㅣ 위에서 "일단!!! 지금 이 프로젝트에만 적용해볼게요."

라고 했는데요, 그럼 다른거에 적용가능?;;

네 됩니다! 지금 이 프로젝트 말고도, 그냥 내가 프로젝트를 하나 새로 만들면 내가 만들었던 text macro가 알아서 적용됐으면..할 수도 있잖아요? 그래서



Project user data: <ProjectName>.xcodeproj/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist.

Project shared data: <ProjectName>.xcodeproj/xcshareddata/IDETemplateMacros.plist

Workspace user data: <WorkspaceName>.xcworkspace/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist.

Workspace shared data: <WorkspaceName>.xcworkspace/xcshareddata/IDETemplateMacros.plist.

User Xcode data: ~/Library/Developer/Xcode/UserData/IDETemplateMacros.plist.




이렇게 친절하게 애플이 설명해줬다...

우리는 첫번째꺼 한거고, user data..그러니까 Zedd에 넣어줬기 때문에...............

나한테만 이렇게 보이는거고, 똑같은 프로젝트를 다른 사람이 받고 새로운 파일을 만들면

늘 보던 



이런 st의 header text가 달리게 되는...

그래서


Project shared data: <ProjectName>.xcodeproj/xcshareddata/IDETemplateMacros.plist


에 넣어주면 다른사람에게도 내가 만든 macro가 적용이 되겠죠?

앗 근데 Project와 workspace의 userdata가 각각 다르기 때문에;; 뭐 알아서 해주시고


 User Xcode data: ~/Library/Developer/Xcode/UserData/IDETemplateMacros.plist.


이거는 아까 말한 어떤 프로젝트를 만들든....내가 만든 macro로 만들어주는거!

이건 모 알아서 해주세요. 


그럼 도움이 되었길 바랍니다 XD




반응형