Как правильно изменить пользовательские рамки какао? - PullRequest
0 голосов
/ 18 марта 2010

Я работаю с очень полезной платформой ID3 в моем проекте какао.Есть одна крошечная вещь, которую я хотел бы изменить в ней, но я не могу получить изменения, которые я внес, чтобы применить к встроенной платформе.

Исходный код, поставляемый с платформой, поставляется сПроект XCode, поэтому я открыл его и для целей тестирования вставил NSLog(@"hello");. Он определенно находится в месте, где он будет вызываться, и есть другие вызовы NSLog() в рамках, которые появляются, так что это не просто консольвывод подавляется.

Чтобы построить каркас после изменения, я сначала очистил папку сборки, удостоверился, что она действительно удалила файлы, а затем собрал ее.Затем в проекте Xcode, в котором я использую фреймворк, я удалил старую ссылку и добавил новую в только что созданную фреймворк.Запуск моего проекта с новой сборкой фреймворка не вызывает изменение кода фреймворка.Я пробовал как с разработками, так и со сборками развертывания, которые являются частью проекта Xcode Framework.

Мой инстинкт инстинкта заключается в том, что исполняемый файл, в который скомпилирован код инфраструктуры, каким-то образом кэшируется.Но так как я довольно незнаком с работой фреймворков, я не совсем уверен, где искать.

1 Ответ

1 голос
/ 18 марта 2010

В Mac OS X нет кэширования для исполняемых файлов или фреймворков. Для отладки происходящего есть пара полезных трюков:

Используйте otool -L <path_to_your_executable> в командной строке, чтобы узнать о командах загрузки (которые загружают библиотеки и фреймворки в ваш исполняемый файл). Попробуйте найти структуру ID3 и проверьте путь. Если он начинается с @executable_path, фреймворк должен быть скопирован в оболочку вашего исполняемого файла.

Чтобы действительно увидеть, какие библиотеки загружены и откуда, установите переменную окружения DYLD_PRINT_LIBRARIES в YES. Вы можете сделать это изнутри Xcode (в настройках ваших исполняемых файлов) или из терминала.

Вы увидите библиотеки и их пути по мере их загрузки dyld.

Мне кажется, что ваш исполняемый файл по-прежнему загружает старую среду из оболочки приложения вашего исполняемого файла или из другого места, где он может быть установлен. Попробуйте очистить ваш проект (тот, который использует фреймворк, а не сам фреймворк).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...