Ionic2将自定义iOS插件与Alamofire框架集成为依赖项



我已经在我的机器上安装了cordova 7.0Ionic 3.4.0。 我使用plugman制作了一个自定义插件,其结构如下:

src - ios & android folders with the native files
www - .js file
plugin.xml
package.json

将其添加到 Ionic 2 项目(使用 cordova-ios 4.4.0)工作正常,它是按预期生成的,我可以使用它。

现在我需要将Alamofire 框架作为依赖项添加到我的插件中。我需要在安装插件时自动处理它。我从文档(如何将框架添加为依赖项)中看到我应该添加:

<framework src="GoogleCloudMessaging" type="podspec" spec="~> 1.2.0" />

到插件.xml在自定义插件中。我添加了它,但是当我将插件重新添加到ionic2项目中时,它也没有安装框架/pod。

我看到了与我相关的其他主题,但都没有帮助我。我已经尝试了所有方法,但我无法完成。

此外,根据文档,插件.xml中的标签有些奇怪:

与 type="podspec" 配对,这是您要安装的 CocoaPod 的规范字符串(仅限静态库)。CocoaPod 支持仅存在于cordova-ios 4.3.0 和 cordova-cli 6.4.0中。对于您的插件,请确保添加适当的标签和 package.json 依赖项,以确保向后兼容的支持。

这不是很奇怪吗,它会适用于较新版本的 cordova-ios 吗?

插件 - 包.json 内容:

{
"name": "cordova-plugin-requestService",
"version": "1.0.0",
"author": "*******",
"private": true,
"engines": {
"cordovaDependencies": {
"1.0.0":  { "cordova-ios": ">=4.4.0" }
}
}
}

插件.xml内容:

<!-- iOS -->
<platform name="ios">
<dependency id="cordova-plugin-add-swift-support" version="^1.6.0" />
<framework src="Alamofire" type="podspec" spec="~> 4.4.0" />
<config-file target="config.xml" parent="/*">
<feature name="requestService">
<param name="ios-package" value="requestService" />
</feature>
</config-file>
<source-file src="src/ios/requestService.swift" />
</platform>

我主要解决了以下问题:

  • 制作了Ionic的新入门(具有最新版本的Cordova和ionic) - 由于cli和项目之间的不兼容性,将迁移到较新版本。

  • 自定义插件的插件.xml中使用的标签

  • 添加的平台 - 没有插件(目前)
  • 手动添加插件(它会将 podfile 生成到平台和其他内容中) 虽然它会因为阿拉莫火而抛出错误。添加到 podfile use_frameworks!应该没问题。

我还在触发平台添加ios时自动添加了插件

不幸的是,科尔多瓦还不支持这个,但这是一个悬而未决的问题: https://issues.apache.org/jira/browse/CB-11893

您可以在添加平台后使用钩子,如果您不想每次都手动编写钩子,则可以使用 https://github.com/blakgeek/cordova-plugin-cocoapods-support 钩子。

最新更新