如何使用Cordova插件捆绑CocoaPods依赖项?

时间:2014-08-20 21:04:58

标签: ios cordova cocoapods cordova-plugins

我正在开发Cordova插件,而对于iOS平台,我想要合并一些现有的(非Cordova特定的)Cocoapods。我还没有找到任何有关如何使其工作的信息或示例,我希望这是一个相当常见的用例。

请注意,我并没有尝试将Cordova用作Cocoapod,其中有大量信息,而是使用我正在开发的Cordova插件的iOS平台内的Cocoapods。 / p>

Cordova' plugin.xml通常需要列出所有项目依赖项以正确捆绑内容。有没有人知道内部使用Cocoapods的Cordova或PhoneGap插件?

5 个答案:

答案 0 :(得分:30)

我只是浪费了几个小时,所以我想我会把它放在任何感兴趣的人身上。 Cordova的Cordova-CLI版本6.4.0 / Cordova iOS版本4.3.0支持与CocoaPods的直接集成。

详细信息如下: https://cordova.apache.org/docs/en/latest/plugin_ref/spec.html

只需添加以下内容:

<platform name="ios">
    ...Other iOS platform specific declerations...
    <framework src="OpenSSL" type="podspec" spec="~> 1.0.0" />
</platform>

到插件的plugin.xml文件。 Cordova自动生成.xcworkspace。使用它而不是xcodeproj文件,你很高兴。

答案 1 :(得分:5)

我找不到解决这个问题的好方法,所以我为它创建了一个插件,https://github.com/blakgeek/cordova-plugin-cocoapod-support。它增加了对在plugin.xml中定义Cocoapod依赖项的支持。它应该作为另一个插件的依赖项包含在内,然后该插件可以在plugin.xml的ios平台部分添加条目。它支持所有pod依赖规范,如git repo,配置,subspecs等。希望这可以帮助某人。

答案 2 :(得分:4)

我也找不到很多关于此的信息,所以我写了一个Cocoapods插件来帮助:https://github.com/xdissent/cocoapods-cordova它自动管理你的plugin.xml并构建一个通用静态库,它只链接非cordova依赖。目前是WIP,但我在一些插件上成功使用它。

答案 3 :(得分:2)

在 Cordova 的最新版本中,建议使用 podspec 标签而不是类型为 frameworkpodspec 标签。 这是一个示例配置:

<platform name="ios">
    ...
    <podspec>
        <config>
            <source url="https://github.com/CocoaPods/Specs.git"/>
        </config>
        <pods use-frameworks="true">
            <pod name="SwiftyJSON" spec="~> 5.0.0" />
        </pods>
    </podspec>
    ...
</platform>

答案 4 :(得分:0)

我遇到了类似的情绪。

以下是两个解决方法。

  1. 将Cordova集成到插件开发环境中,即将纯Xcode项目转换为基于Cordova的项目。如果我们想使用适用于iOS的cordova插件,也可以通过Cocoapods使用。

  2. 将Cocoapods介绍给Cordova生成的Xcode项目。这样,我们需要将生成的代码放入源代码控制中,并且在添加其他插件时要小心,因为我们修改的文件可以被cordova修改。

  3. 我还不知道哪一个是更好的选择。

    以下窗格信息有助于解决方法#1。

    pod search cordova

    - &GT;科尔多瓦(4.0.1)    科尔多瓦iOS    pod'Cordova','〜&gt; 4.0.1'     - 主页:https://github.com/apache/cordova-ios     - 来源:https://github.com/apache/cordova-ios.git     - 版本:4.0.1,3.9.1,3.8.0,3.7.0,3.6.0,3.5.0,3.4.1,3.4.0,3.3.0,3.2.0,3.1.0,3.0.0 ,2.9.0,2.8.0,    2.7.0,2.6.0,2.5.0,2.4.0,2.3.0,2.2.0,2.1.0,2.0.0,1.9.0,1.8.1,1.8.0,1.7.0,1.6。 1,1.6.0,1.5.0,1.4.1,    1.4.0,1.3.0,1.2.0,1.1.0,1.0.0 [master repo]

    - &GT; Cordova-Lib(3.9.1)    镜像自github,部署在git.oschina.net解决国内访问的连接速度.Apache Cordova是一个用于构建本机移动应用程序的平台    使用HTML,CSS和JavaScript。    pod'Cordova-Lib','〜&gt; 3.9.1'     - 主页:https://git.oschina.net/liubiqu/cordova-ios     - 来源:https://git.oschina.net/liubiqu/cordova-ios.git     - 版本:3.9.1,3.9.0,3.8.0 [master repo]