iOS框架嵌入式二进制文件

Tem*_*ema 23 frameworks ios

我能够为Xcode创建iOS Framework,如该视频所示: -

https://youtu.be/86cPaa3FrRg?t=4m55s

在5:00他们说必须将框架添加到Embeded Binaries.如果我将它添加到Embeded Binaries然后它可以工作.

不需要将GoogleAds.framework添加到Embeded Binaries.与Googles解决方案相比,添加到Embeded Binaries看起来有点"hacky".所以我认为本教程缺少一些步骤.

我的问题是:如何在不将其添加到嵌入二进制文件的情况下创建一个有效的框架?

tro*_*foe 12

tl; dr它们都是框架,但它们是不同的类型.


"框架"一词含糊不清.在OSX上它意味着一个打包的动态库(即.dylib标题,其他东西),但是在iOS 8用户无法创建动态库之前,所以发明了"静态框架"来提供打包的静态库(即.a标题,其他东西).

如果您创建的框架需要与应用程序一起打包为嵌入式二进制文件,那么它听起来像一个动态框架,但是如果谷歌广告没有,那么我怀疑它是一个静态框架.它不需要嵌入,因为它已经链接到app二进制文件中.

如果你想知道如何创建静态框架,那么从这里开始,或谷歌"ios静态框架".


ema*_*ney 9

在iOS 8之前,开发人员发布了不受支持的框架,这些框架通过模仿Apple框架的目录结构与静态库拼凑在一起.他们工作,但他们很难建立,他们是静态的 - 不是动态库.

从iOS 8开始,Apple正式支持在Xcode中构建第三方动态框架.这些类型的框架是代码签名的,必须放在您的应用程序的嵌入式二进制文件中.如果您链接它们但未能将它们放入嵌入式二进制文件中,则在尝试在设备上运行时会出现异常,您的应用程序将崩溃.

从长远来看,我希望在GoogleAds.framework官方框架支持可用的情况下,被黑客攻击的框架会消失.这意味着您将不得不习惯将框架放入嵌入式二进制文件中.

除非你需要用你的代码支持iOS 7(在这种情况下官方框架不是一个选项,因为它们只适用于iOS 8),我建议不要在此时创建一​​个不受支持的框架类型.