Нужно ли мне вручную устанавливать пути к фреймворку в Xcode 11.5? - PullRequest
0 голосов
/ 20 июня 2020

У меня есть собственный фреймворк, который я хочу использовать в моем проекте Xcode. Я могу легко добавить его в свой проект, нажав кнопку «+» в разделе «Платформы, библиотеки и встроенное содержимое», а затем выбрав «Добавить другое ...».

Однако, когда я пытаюсь создать свой проект, Xcode жалуется, что не может найти фреймворк. Это не удивительно, поскольку очевидно, что Xcode не передает путь фреймворка компоновщику. Путь к фреймворку - /Users/Andreas/TestFramework. Как вы можете видеть, этот путь вообще не передается в ld Xcode:

Ld /Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Intermediates.noindex/MyApp.build/Release-iphonesimulator/MyApp.build/Objects-normal/x86_64/Binary/MyApp normal x86_64 (in target 'MyApp' from project 'MyApp')
    cd /Users/andreas/Documents/MyApp
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target x86_64-apple-ios8.0-simulator -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.5.sdk -L/Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Products/Release-iphonesimulator -F/Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Products/Release-iphonesimulator -filelist /Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Intermediates.noindex/MyApp.build/Release-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Intermediates.noindex/MyApp.build/Release-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp_lto.o -Xlinker -objc_abi_version -Xlinker 2 -fobjc-link-runtime -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Intermediates.noindex/MyApp.build/Release-iphonesimulator/MyApp.build/MyApp.app-Simulated.xcent -framework TestFramework -Xlinker -dependency_info -Xlinker /Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Intermediates.noindex/MyApp.build/Release-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp_dependency_info.dat -o /Users/andreas/Library/Developer/Xcode/DerivedData/MyApp-csdbiydhibfjqcdvbmzzinqjghgj/Build/Intermediates.noindex/MyApp.build/Release-iphonesimulator/MyApp.build/Objects-normal/x86_64/Binary/MyApp

ld: framework not found TestFramework
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я знаю, что, вероятно, мог бы легко исправить это, просто добавив путь к фреймворку где-нибудь в параметрах сборки, но Xcode действительно этого требует?

Добавление пути для каждой пользовательской структуры, которую я использую, было бы довольно хлопотно. Xcode может сделать это очень легко автоматически. Так действительно ли необходимо явно добавлять путь к фреймворку в мой проект Xcode, или я здесь что-то делаю не так?

1 Ответ

0 голосов
/ 04 июля 2020

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

Xcode может сделать это автоматически, перетащив пользовательские фреймворки в раздел Frameworks моего проекта Xcode и затем выбрав Copy items if needed в следующем диалоговом окне Xcode .

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