我在使用Cordova和第三方插件构建iOS应用程序时遇到问题,该插件附带本机SDK。 Cordova需要Linker Flag“-all_load”,而其他SDK并不满意。
我读过这篇关于“-all_load”标志的帖子:Alternative for all_load in XCode's Other Linker Flags听起来我可能会使用“-force_load”而是指定Cordova想要的“目标文件”。
我对科尔多瓦的内部结构了解不多。有没有人有同样的问题,并成功地能够用“force_load”编译Cordova?你能提供 Cordova特定的“force_load”语法吗?
答案 0 :(得分:3)
感谢来自@David H的指针,我能够通过以下方式替换Other Linker Flags“-all_load”开关:
-force_load $(BUILT_PRODUCTS_DIR)/libCordova.a
Cordova现在编译并启动正常而不会破坏我不喜欢“-all_load”的其他库
答案 1 :(得分:2)
这里的问题是包含类别的库在早期版本的Xcode中没有正确加载。从4.6开始,它们应该加载,你应该能够只使用链接器标志“-ObjC”,它告诉链接器检查这些库的库。
如果由于某种原因-ObjC标志不起作用,强制加载的语法是“
-force_load $(BUILT_PRODUCTS_DIR)/libxyz.a