我目前正在为phonegap 3制作一个插件。我有一个使用source-file指令复制的自定义框架。在plugin.xml中我试过:
<source-file src="libs/ios/mylib.framework" />
但是当我将插件添加到项目中时出现错误:
mylib.framework是一个目录(未复制)
我试图按文件复制框架文件,但它在错误的目录中。
如何使用plugin.xml文件复制自定义ios框架?
答案 0 :(得分:24)
好消息:在我们发言时,似乎科尔多瓦人正在研究这个问题。有feature request以及a commit to GitHub声称可以解决此问题。 framework
标记将支持custom="true"
属性。例如,以下是AWS iOS SDK Runtime framework:
<framework src="src/ios/Frameworks/AWSRuntime.framework" custom="true" />
更新:似乎此更改已于2013年11月29日(两天前)进入Cordova的当前稳定版本。只需更新你的Cordova和Plugman二进制文件,就可以了。
$ npm update -g cordova # if using `cordova plugin add xyz`
$ npm update -g plugman # if using `plugman install --platform x --project y --plugin z`
答案 1 :(得分:2)
您可以复制二进制文件(谁应该在“mylib.framework / Versions / A /” )和标题(“。h”谁应该在“mylib.framwork / Versions / A / Headers” )
像这样<source-file src="libs/ios/mylib.framework/Versions/A/mylibBinary" framework="true" />
<header-file src="libs/ios/mylib.framework/Version/A/Headers/mylibHeader.h" />
...
你还必须手动添加依赖项,IE:这个框架需要iOS AVFoundation.framework
所以你需要添加它。
<framework src="AVFoundation.framework" />
如果您想将此插件提交给PhoneGap,还有一件事需要知道。
任何包含二进制库的应用程序都将被拒绝。这是因为我们需要能够确切地看到插件中的内容是我们的代码审查过程的一部分。因此,在提交插件时,请确保它不包含二进制库。 (PhoneGap)
答案 2 :(得分:0)
使用<framework src="libs/ios/mylib.framework" />
。