Я пишу фреймворк (называемый Lighthouse.framework), который, в свою очередь, использует код из другого фреймворка (точнее, RegexKit.framework). Я скопировал RegexKit.framework в свой собственный фреймворк, чтобы он имел следующую структуру:
Lighthouse.framework/
Versions/
A/
Frameworks/
RegexKit.framework
Lighthouse
Однако, когда я пытаюсь запустить приложение, которое использует Lighthouse.framework (мой фреймворк), я получаю следующую ошибку:
dyld: библиотека не загружена: @executable_path /../ Frameworks / RegexKit.framework / Versions / A / RegexKit
Ссылка: /Users/mdippery/Developer/Projects/Current/lighthouse/build/Debug/Lighthouse.framework/Versions/A/Lighthouse
Причина: изображение не найдено
Очевидно, что загрузчик не находит RegexKit.
Вот пути, которые загрузчик ожидает загрузить, любезно otool
:
build/Debug/Lighthouse.framework/Versions/A/Lighthouse:
/Users/mdippery/Library/Frameworks/Lighthouse.framework/Versions/A/Lighthouse (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0)
@executable_path/../Frameworks/RegexKit.framework/Versions/A/RegexKit (compatibility version 0.4.0, current version 0.6.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0)
Могу ли я включить фреймворк в другой фреймворк? Это правильный способ сделать это? Как я могу устранить свою ошибку?