VS-MDA:插件中的自定义iOS框架

时间:2014-12-02 10:12:15

标签: ios cordova visual-studio-cordova

我们想为我们的混合应用程序创建一个MobFox-Plugin。它已经在CLI-Cordova应用程序中运行良好,但它在我们的混合应用程序中不起作用,因为它看起来框架的目录结构(标题和版本目录之间的符号链接)被Windows销毁,其中框架是在mda项目的插件中。如果我开始构建,则头文件目录不会被识别为符号链接,而是作为Mac上的普通可执行文本文件。

这是我在插件xml中包含框架的方式:

<framework src="libs/ios/MobFox.framework" custom="true"/>

我还试图将MobFox.framework复制到SDK Frameworks文件夹,并像标准系统库一样引用它(效果很好):

<framework src="MobFox.framework" />

但是这也失败了,尽管Framework现在正确地包含在Xcode中。但编译器现在说它无法找到MobFox.h类,这就是它的包含方式:

#import <MobFox/MobFox.h>

所以我真的认为问题是Windows无法处理.framework文件中的符号链接。有没有人为这个问题找到解决方法或解决方案?或者想一想为什么将文件放在Standard-Frameworks文件夹中的解决方法不起作用?

任何帮助都将受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:1)

这里的问题相同 - 当插件发布到cordova注册表时,它会丢失.Framework包中的符号链接,告诉XCode一切都在哪里。

它们是在git上维护的,因此插件管导出/发布中出现了错误。

所以例如

cordova plugin add https://github.com/uxcam/cordova-uxcam

将适用于我正在编写的插件,但不适用于

cordova plugin add com.uxcam.cordova.plugin

这是已发布的版本。

如果你深入研究项目的'plugins'文件夹,你也加入了它,并在com.uxcam.cordova.plugin文件中'显示包内容',然后你可以进入'src / ios'UXCam.framework'并看看它是如何弄乱框架文件夹中的符号链接,它应该指向Headers文件夹,链接也是库二进制文件。

参考:Cordova错误报告:https://issues.apache.org/jira/browse/CB-6092

更新:我通过手动将框架中的文件放入需要的位置解决了这个问题。所以现在我在上面引用的github项目中可以看到框架库直接位于UXCam.framework文件夹中,并且有一个显式的Headers文件夹,其中包含UXCam.h文件。这适用于已发布的插件。

不是一个理想的解决方案,每次我更新框架时,我都必须再次修复布局,但现在可以使用,直到找到报告问题的适当位置。