저는 코코아 프로젝트에서 매우 유용한 ID3 프레임 워크로 작업하고 있습니다. 내가 수정하고자하는 작은 것이 하나 있지만, 내가 만든 프레임 워크에 적용하기 위해 변경 한 사항을 얻을 수없는 것 같습니다.커스텀 코코아 프레임 워크를 올바르게 수정하려면 어떻게해야합니까?
프레임 워크와 함께 제공되는 소스 코드는 Xcode 프로젝트와 함께 제공되기 때문에 열어 본 후 테스트 용으로 NSLog(@"hello");
을 넣습니다. 전화가 걸려 오는 장소에 다른 NSLog()
호출이 있습니다. 표시되는 프레임 워크는 단순한 콘솔 출력 만은 아닙니다.
일단 프레임 워크를 수정하려면 먼저 빌드 폴더를 정리하고 파일을 실제로 제거했는지 확인한 다음 빌드해야합니다. 그런 다음 프레임 워크를 사용하는 Xcode 프로젝트에서 이전 참조를 삭제하고 새롭게 프레임 워크에 새 프레임을 추가했습니다. 새로 빌드 된 프레임 워크로 프로젝트를 실행해도 수정 된 프레임 워크 코드는 호출되지 않습니다. 프레임 워크 Xcode 프로젝트의 일부인 개발 및 배포 빌드를 사용해 보았습니다.
내 직감은 프레임 워크 코드가 컴파일 된 실행 파일이 어떻게 든 캐시된다는 것입니다. 그러나 프레임 워크의 작동 방식에 익숙하지 않으므로 어디서 볼지 잘 모르겠습니다. 무슨 일이 일어나고 있는지 디버깅하는 맥 OS X에서 실행 또는 프레임 워크에 대한 캐싱이 없습니다
맞지요. 어떤 이유로 든 otool을 사용할 수 없지만 DYLD_PRINT_LIBRARIES는 매우 유용하며 Library/Frameworks /에서로드 중임을 보여줍니다. 거기에 있다고 주장하는 것 같습니다 (즉, 거기에서 삭제하면 컴파일되지 않습니다).하지만 프레임 워크의 새 빌드를 복사하면됩니다. 고맙습니다. – Septih
거기에서 프레임 워크를로드하려는 이유는 프레임 워크의 'INSTALL_PATH' 빌드 설정 때문입니다. 'otool -L/Library/Frameworks/ID3.framework/ID3'을 사용하면 프레임 워크 설치 경로 (출력의 첫 번째 줄)가 표시됩니다. 항상 프레임 워크를 복사 할 필요는 없습니다. 프레임 워크 빌드 디렉토리에있는 프레임 워크를 사용할 수 있습니다. 메인 실행 파일이이 프레임 워크를로드 할 수있게하려면 또 다른 환경 변수 인'DYLD_FRAMEWORK_PATH'가 있어야합니다. 'man dyld'를 보라. –