我试图创建一个基本的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目录中,构建链接是正确的


当前回答

应该有一个“运行脚本”到“构建阶段”:'/usr/local/bin/carthage copy-frameworks'

在“运行脚本”的“输入文件”中,您应该将路径添加到库中。是这样的:

其他回答

[Xcode 11 +]

唯一要做的就是将框架添加到目标应用程序的General选项卡中的General->Frameworks, Libraries And Embedded Content部分。

确保你选择了“嵌入&签名”选项。

[Xcode v6 -> Xcode v10]

唯一要做的就是将框架添加到目标应用程序General选项卡的Embedded binaries部分。

如果你不小心重置了你的钥匙链,这可能是由于在钥匙链中丢失了苹果证书。我遵循这个方法来解决我的问题。

我遇到了同样的问题,并通过重新下载WWDR(苹果全球开发者关系认证机构)来解决。 从这里下载:http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

Xcode 11:

在Xcode 11中将框架添加到通用->框架,库和嵌入式内容

添加后,确保你选择嵌入和签名选项

如果你使用的是Xcode 11,确保你在“目标设置-常规”下的“框架”、“库”和“嵌入内容”中添加了框架。将嵌入状态从-“不嵌入”更改为“嵌入&签名”

应该有一个“运行脚本”到“构建阶段”:'/usr/local/bin/carthage copy-frameworks'

在“运行脚本”的“输入文件”中,您应该将路径添加到库中。是这样的: