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