Xcode에서 Bundle Resources를 업데이트해도 반영되지 않는 경우의 해결 방법

1831 단어 XcodeiOScocos2d-x

문제점



iOS 개발을 하고 있어, Bundle Resources에 등록되어 있는 파일을 갱신하거나, 추가해, 실기나 시뮬레이터로 실행해 봐도, 자원이 잘 갱신되지 않는 것이 남아 있습니다.

예를 들어, 이미지를 바꿨는데 낡은 상태의 물건이 사용되거나, 추가했음에도 불구하고, 갱신되지 않고 참조시에 떨어져 버리는 등이라고 하는 것이 잘 일어나서, 매우 번거롭다.
Clean Build Folder 에서 제품을 모두 지우고, 재빌드를 하면 제대로 반영되지만, 매회 재빌드하는 것은 힘들기 때문에, 뭔가 좋은 대처법은 없을까라고 생각하고 있었다.

대처법



Stackoverflow에 좋은 것 같은 정보가 쓰여졌습니다.

ios - Resource files not updating with Xcode 5 - Stack Overflow

아무래도, 빌드시에 훅하고, Resource 이하를 touch 해 주면 좋다.
$ touch -cm ${SRCROOT}/../../YourResourceFolder

Run Script 추가



Stackoverflow에 작성된 방법과 약간의 절차가 다르므로주의

1. Target > Build Phase 왼쪽 상단의 + 버튼을 누릅니다.



2. New Run Build Script Phase를 눌러 Run Script 추가





3. Run Script Phase를 다음과 같이 설정





환경 변수 $SRCROOT는 xcodeproj가 놓여있는 경로이며 거기에서 상대 위치를 지정합니다.

이번은 cocos2d-x의 프로젝트로 설정했기 때문에 다음과 같은 계층 구조가 되었다.

Stackoverflow에 쓰여진 것처럼 설정하면, Resources 이하에 재귀적으로 디렉토리가 있었을 때에 잘 반영해 주지 않았으므로, 대신에 zsh를 사용해 * 로 지정하고 있다.

요약



이제 빌드할 때마다 자동으로 리소스가 업데이트되게 되어 좌절하지 않게 되었다. 더 빨리 알고 싶은 지견이었다.

좋은 웹페이지 즐겨찾기