我试图创建一个基本的OS X框架,现在我刚刚创建了一个测试框架:TestMacFramework.framework,我试图将它导入到一个全新的OS X应用程序项目。

我已经构建了.framework文件并将其导入到新项目中,框架链接正常,我可以引用我添加到框架构建阶段部分的公共头文件。

然而,当我尝试运行容器应用程序时,我得到以下错误:

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
  Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
  Reason: image not found

在谷歌了一下之后,我意识到我需要在我的容器应用程序构建阶段添加一个复制文件部分,所以我已经这样做了,并像这样设置它…

然而,我仍然得到运行时错误。显然我在这里做错了什么,但是苹果开发者库的资源引用了Xcode 2,所以不是很有帮助!

我错过了什么?

更新:

我可以在构建日志中看到我的TestMacFramework.framework被复制到.app contents/frameworks目录中,但它没有被安装到HD上的Library/ frameworks目录中

更新2:

如果我手动将TestMacFramework.framework复制到Library/Frameworks目录中,构建链接是正确的


当前回答

I found that this issue was related only to the code signing and certificates not the code itself. To verify this, create the basic single view app and try to run it without any changes to your device. If you see the same error type this shows your code is fine. Like me you will find that your certificates are invalid. Download all again and fix any expired ones. Then when you get the basic app to not report the error try your app again after exiting Xcode and perhaps restarting your mac for good measure. That finally put this nightmare to an end. Most likely this has nothing to do with your code especially if you get Build Successful message when you try to run it. FYI

其他回答

打开xcode ->通用->嵌入式二进制文件->添加QBImagepicker.framework和RSKImageCropper ->清洁项目

只要在嵌入式二进制文件中添加QBImagePicker.framework和RSKImageCropper.framework就可以了

唯一对我有用的是:

目标>构建阶段> [CP]嵌入Pods框架 取消勾选“在生成日志中显示环境变量”和“仅在安装时运行脚本”

上面的选项对我来说不可能包括。 我通过指定Runpath搜索路径来解决这个问题

这是在“构建设置”选项卡上。 在“链接”部分。 将“Runpath Search Paths”更改为$(inherited) @executable_path/Frameworks

我也有同样的问题,但原因不同。 我已经创建了一个新的配置调试和发布(在项目->信息选项卡->配置)。 我不得不改变我的pod框架shell脚本(Pods-"appName"-frameworks.sh,在目标支持文件下)使其工作。

[Xcode 9]

对于Xcode 8,一些陈旧的产品将从派生的数据文件夹中删除参考这个解决方案。

苹果:在macOS 10.12及以后版本中,Xcode会清理陈旧的派生数据、预编译的头文件和模块缓存。(23282174)

Xcode构建系统支持旧文件删除某些类型的构建构件,这些构件在以前的构建中产生,但已经从项目中删除了。

根据作者的想法,我从我的案例中找到了这个构建日志。

Remove stale build products

/bin/rm -rf /Users/usename/Library/Developer/Xcode/DerivedData/myapp-esvvhwwwwngijeemhatmklwzoxnb/Build/Products/Debug-iphonesimulator/myapp.app/Frameworks/AliyunVodPlayerSDK.framework
/bin/rmdir /Users/usename/Library/Developer/Xcode/DerivedData/myapp-esvvhwwwwngijeemhatmklwzoxnb/Build/Products/Debug-iphonesimulator/myapp.app/Frameworks

在创建新的复制文件阶段并将目标陈旧框架复制到框架目标之后,上述删除日志在重建后消失。

澄清一下我的情况和原因,希望对大家有所帮助。