我能够为Xcode创建iOS Framework,如该视频所示: -
https://youtu.be/86cPaa3FrRg?t=4m55s
在5:00他们说必须将框架添加到Embeded Binaries。 如果我将它添加到Embeded Binaries然后它可以工作。
不需要将GoogleAds.framework添加到Embeded Binaries。 添加到嵌入式二进制文件看起来有点" hacky"与Googles解决方案相比。 所以我认为本教程缺少一些步骤。
我的问题是:如何在不将其添加到嵌入二进制文件的情况下创建一个有效的框架?
答案 0 :(得分:12)
tl; dr 它们都是框架,但它们是不同的类型。
“框架”一词含糊不清。在OSX上它意味着一个打包的动态库(即.dylib
,标题,其他东西),但是在iOS 8之前用户无法创建动态库,因此发明了“静态框架”来提供打包的静态库(即{{1} },标题,其他东西)。
如果您创建的框架需要与应用程序一起打包为嵌入式二进制文件,那么它听起来就像一个动态框架,但如果Google广告没有,那么我怀疑它是一个静态框架。它不需要嵌入,因为它已经链接到应用程序二进制文件。
如果您想知道如何创建静态框架,请启动here或Google以获取“ios静态框架”。
答案 1 :(得分:9)
在iOS 8之前,开发人员发布了不受支持的框架,这些框架通过模仿Apple框架的目录结构与静态库拼凑在一起。他们工作,但他们很难建立,他们是static - 而不是动态库。
从iOS 8开始,Apple正式支持在Xcode中构建第三方动态框架。这些类型的框架是代码签名的,必须放在您的应用程序的嵌入式二进制文件中。如果您链接它们但未能将它们放入嵌入式二进制文件中,则在尝试在设备上运行时会出现异常并且您的应用程序将崩溃。
从长远来看,我希望像GoogleAds.framework
这样被黑客攻击的框架在官方框架支持可用时消失。这意味着您将不得不习惯将框架放入嵌入式二进制文件中。
除非你需要用你的代码支持iOS 7(在这种情况下官方框架不是一个选项,因为它们只适用于iOS 8),我建议不要在此时创建一个不受支持的框架类型。