Cordova:在没有“-all_load”的情况下构建

Posted

技术标签:

【中文标题】Cordova:在没有“-all_load”的情况下构建【英文标题】:Cordova: Build Without "-all_load" 【发布时间】:2013-05-22 03:39:39 【问题描述】:

我在使用 Cordova 和本机 SDK 附带的第三方插件构建 ios 应用程序时遇到问题。 Cordova 需要其他 SDK 不满意的链接器标志“-all_load”。

我读过这篇关于“-all_load”标志的帖子:Alternative for all_load in XCode's Other Linker Flags 听起来我可以改用“-force_load”并指定 Cordova 想要的“目标文件”。

我对 Cordova 的内部结构了解不多。有没有人遇到过同样的问题并且能够成功地用“force_load”编译Cordova?您能否提供您的 Cordova 特定“force_load”语法?

【问题讨论】:

【参考方案1】:

感谢@David H 的指点,我能够将其他链接器标志“-all_load”开关替换为:

-force_load $(BUILT_PRODUCTS_DIR)/libCordova.a

Cordova 现在可以正常编译和启动,而不会破坏我不喜欢“-all_load”的其他库

【讨论】:

【参考方案2】:

这里的问题是包含类别的库在早期版本的 Xcode 中没有正确加载。从 4.6 开始,它们应该正在加载,并且您应该能够只使用链接器标志“-ObjC”,它告诉链接器检查库中的此类内容。

如果由于某种原因 -ObjC 标志不起作用,则强制加载的语法为"

-force_load $(BUILT_PRODUCTS_DIR)/libxyz.a

【讨论】:

对不起-解释有帮助,但我应该更具体。我正在寻找 Cordova 试图用“all_load”覆盖的库,以便我可以编写适当的“force_load”开关。这个问题是针对 Cordova 的。 因此,查看他们的库并获取他们引用的所有库,并按照上述所有操作 - 即任何非 iOS 提供的库。

以上是关于Cordova:在没有“-all_load”的情况下构建的主要内容,如果未能解决你的问题,请参考以下文章

在没有 Photoshop 知识的情况下创建简单的启动画面(Ionic/Cordova)

如何在没有 Apple Watch 应用的情况下使用 cordova 在 Apple Watch 上获取 iPhone 应用的推送通知?

Xcode里-ObjC, -all_load, -force_load

对某些库使用 -all_load 但对某些库不使用

Xcode里-ObjC, -all_load, -force_load

在不了解 TypeScript 的情况下使用 cordova-plugin-playlist