Ios 如何将CocoaPods依赖项与Cordova插件捆绑?

Ios 如何将CocoaPods依赖项与Cordova插件捆绑?,ios,cordova,cocoapods,cordova-plugins,Ios,Cordova,Cocoapods,Cordova Plugins,我正在开发一个Cordova插件,对于iOS平台,我想合并一些现有的(非Cordova特定的)CoCoapod。我还没有找到任何关于如何使其工作的信息或示例,我希望这是一个相当常见的用例 请注意,我并没有试图将Cordova用作Cocoapod,因为有相当数量的信息,而是使用我正在开发的Cordova插件的iOS平台中的Cocoapod Cordova的plugin.xml通常需要列出所有项目依赖项才能正确绑定。有人知道Cordova或PhoneGap插件在内部使用Cocoapods吗?我也找不

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

请注意,我并没有试图将Cordova用作Cocoapod,因为有相当数量的信息,而是使用我正在开发的Cordova插件的iOS平台中的Cocoapod


Cordova的
plugin.xml
通常需要列出所有项目依赖项才能正确绑定。有人知道Cordova或PhoneGap插件在内部使用Cocoapods吗?

我也找不到太多关于这方面的信息,所以我写了一个Cocoapods插件来提供帮助:它自动管理您的
plugin.xml
,并构建一个通用静态库,其中只链接非Cordova依赖项。目前是WIP,但我在一些插件上成功地使用了它。

我遇到了类似的情况

这里有两个解决办法

  • 将Cordova集成到插件开发环境中,即将纯Xcode项目转变为基于Cordova的项目。如果我们想在iOS上使用cordova插件,它们也可以通过Cocoapods获得

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

  • 我还不知道哪一个是更好的选择

    以下POD信息有助于解决方案#1

    pod search cordova

    ->科尔多瓦(4.0.1) 科多瓦iOS酒店 “科尔多瓦”吊舱,“~>4.0.1” -主页: -资料来源: -版本: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[主回购]

    ->科尔多瓦图书馆(3.9.1) 镜像自github,部署在git.oschina.net解决国内访问的连接速度。ApacheCordova是构建本机移动应用程序的平台 使用HTML、CSS和JavaScript。 pod‘Cordova Lib’,“~>3.9.1” -主页: -资料来源:
    -版本:3.9.1、3.9.0、3.8.0[主回购]

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

    我只是在这上面浪费了几个小时,所以我想我会把它放在这里给感兴趣的人看。Cordova CLI版本6.4.0/Cordova iOS版本4.3.0之后的Cordova支持与CocoaPods的直接集成

    详情如下:

    只需添加如下内容:

    <platform name="ios">
        ...Other iOS platform specific declerations...
        <framework src="OpenSSL" type="podspec" spec="~> 1.0.0" />
    </platform>
    
    
    …其他特定于iOS平台的偏差。。。
    

    指向插件的plugin.xml文件。Cordova会自动生成一个.xcworkspace。用它代替xcodeproj文件,你就可以开始了。

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

    <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>
    
    
    ...
    ...
    
    好吧,如果这真的是一个未解决的问题,Cordova/PhoneGap团队真的需要解决它,因为能够从本机插件中利用广泛使用的CoCoapod将显著提高插件的数量和质量(本例中是iOS第一个)。您在这方面取得了任何进展吗?没有;我还没有找到任何帮助,也不了解Cocoapod/cordova构建过程,无法花时间亲自实施。截至2017年2月21日,这似乎是最好的答案。通过向plugin.xml文件中添加podspec条目,在使用Visual Studio编译Cordova项目时,它会在MAC代理上创建文件“platform/ios/Podfile”。我验证了该依赖项已下载并成功包含在编译中。谢谢!也许这对于每天使用xcode和POD的IDEV来说是显而易见的。。。。但我永远也想不到。。。。我们应该使用工作区而不是项目。@Brain2000我在向自定义插件添加pod时遇到了问题。科尔多瓦的医生说,吊舱必须是一个静态库。是否可以将用swift编写的pod捆绑到cordova项目中的插件中?这似乎不支持带有嵌入式框架的PODSpec,也不支持具有源文件的PODSpec@blakgeek的cocoapod cordova插件是一个支持这些场景的灵活得多的解决方案。如果我想添加一些git repos作为这个podspec,我应该怎么做呢?这个解决方案支持嵌入式框架和带有源代码文件的Pod。此解决方案似乎远远优于cordova附带的解决方案。请注意,
    config
    tag with
    source
    子标记是必需的,否则在安装插件时会引发错误