Что такое частный каркас MacOS? Почему, например, сложнее добавить MediaRemote.framework, чем Accelerate.framework - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть довольно сильное представление о том, что такое фреймворк, но меня как нового разработчика MacOS (обычно занимающегося iOS проектами) смущает идея о "частной фреймворке". В моем примере я пытаюсь использовать среду MediaRemote, которая задокументирована здесь и используется в нескольких проектах с открытым исходным кодом.

Когда я увидел это, я был удивлен, увидев, что действительно внутри моей Ма c здесь есть фреймворк /System/Library/PrivateFrameworks/MediaRemote.framework, который я не помню, когда-либо устанавливал? Так что, должно быть, оно пришло от самой MacOS?

Мое замешательство - что это такое? И чем это отличается от того, если я go добавлю фреймворк, такой как Accelerate.framework, который можно легко найти, нажав кнопку «плюс» и выполнив поиск? По какой-то причине MediaRemote не отображается в этом поиске, как будто это другой класс фреймворка. Почему я должен вручную указать его на папку вместо того, чтобы найти его здесь?

Даже после того, как я указал его и очистил свою сборку и полученные данные, я получаю ошибку компоновки

Ld /Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Products/Debug/TARGET/Versions/A/TARGET normal x86_64 (in target 'TARGET' from project 'ProjectName')
cd /Users/Username/Coding/Github/ProjectName
Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target x86_64-apple-macos10.11 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -L/Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Products/Debug -F/Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Products/Debug -filelist /Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Intermediates.noindex/ProjectName.build/Debug/TARGET.build/Objects-normal/x86_64/TARGET.LinkFileList -install_name @rpath/TARGET/Versions/A/TARGET -Xlinker -rpath -Xlinker /usr/lib/swift -Xlinker -rpath -Xlinker @executable_path/../Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -object_path_lto -Xlinker /Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Intermediates.noindex/ProjectName.build/Debug/TARGET.build/Objects-normal/x86_64/TARGET_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Intermediates.noindex/ProjectName.build/Debug/TARGET.build/Objects-normal/x86_64/TARGET.swiftmodule -framework MediaRemote -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Intermediates.noindex/ProjectName.build/Debug/TARGET.build/Objects-normal/x86_64/TARGET_dependency_info.dat -o /Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-bjzkxjoybnwzkkcbwnmpmbzgwfgh/Build/Products/Debug/TARGET/Versions/A/TARGET

ld: framework not found MediaRemote

И я понятия не имею, как поступить. Что такое частная структура? Почему я должен указывать на местоположение папки, а не искать ее? Почему связь не работает?

Я видел проектов , которые успешно его используют, поэтому я не чувствую, что пытаюсь сделать что-то, чего не должен делать.

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