【问题标题】:How to copy a custom ios framework using plugin.xml on Phonegap 3如何在 Phonegap 3 上使用 plugin.xml 复制自定义 ios 框架
【发布时间】:2013-09-10 07:06:54
【问题描述】:

我目前正在为 phonegap 3 制作插件。我有一个自定义框架可以使用 source-file 指令进行复制。在我试过的plugin.xml中:

<source-file src="libs/ios/mylib.framework" />

但是当我将插件添加到我的项目时出现错误:

mylib.framework 是一个目录(未复制)

我试图逐个复制框架文件,但它进入了错误的目录。

如何使用 plugin.xml 文件复制自定义 ios 框架?

【问题讨论】:

    标签: ios xml cordova phonegap-plugins


    【解决方案1】:

    您可以复制二进制文件(谁应该在"mylib.framework/Versions/A/")和 >headers (".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)

    【讨论】:

    • 这不会在 project.pbxproj 文件中生成必要的依赖项
    【解决方案2】:

    好消息:在我们说话的时候,科尔多瓦的人似乎正在努力解决这个问题。有一个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`
    

    【讨论】:

    • custom="true" 就像一个魅力。这应该是公认的答案。
    【解决方案3】:

    使用&lt;framework src="libs/ios/mylib.framework" /&gt;。

    【讨论】:

    • @poiuytrez 找到解决方案了吗?
    • @ShashankTomar 不,我没有。
    • @poiuytrez 我们最终将其转换为静态库并使用源文件标签复制它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 2012-10-06
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多