Как связать зависимости CocoaPods с плагином Cordova?

Я разрабатываю плагин Cordova, и для платформы iOS я хотел бы включить несколько существующих (не специфичных для cordova) Cocoapods. Я не смог найти никакой информации или примеров о том, как заставить это работать, и я ожидал, что это будет довольно распространенный случай использования.

обратите внимание, что я не пытаюсь использовать Cordova в качестве Cocoapod, для которого есть приличный объем информации, а скорее использовать Cocoapods из платформы iOS плагина Cordova, который Я развиваюсь.

Кордова plugin.xml обычно необходимо перечислить все зависимости проекта, чтобы правильно связать вещи. Кто-нибудь знает о плагине Cordova или PhoneGap, который внутренне использует Cocoapods?

4 ответов


Я просто потратил несколько часов на это, поэтому я подумал, что положу это здесь для всех, кто заинтересован. 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>

плагину.xml-файл для вашего плагина. Cordova автоматически генерирует .xcworkspace все. Использовать вместо xcodeproj файл, и вы хорошо идти.


Я не мог найти много информации об этом, поэтому я написал плагин Cocoapods, чтобы помочь:https://github.com/xdissent/cocoapods-cordova он управляет вашим plugin.xml автоматически и создает универсальную статическую библиотеку, которая связывает только зависимости, отличные от cordova. В настоящее время WIP, но я использую его успешно на нескольких плагинах.


Я не мог найти хорошее решение этой проблемы, поэтому я создал плагин для него,https://github.com/blakgeek/cordova-plugin-cocoapod-support. Он добавляет поддержку для определения зависимостей Cocoapod в плагине.XML. Он должен быть включен как зависимость другого плагина, а затем этот плагин может добавлять записи в раздел платформы ios плагина.XML. Он поддерживает все спецификации зависимостей pod, такие как Git repo, конфигурации, подвиды и т. д. Надеюсь, это поможет кто-то вышел.


я встречаю аналогичную ситуацию.

вот два обходных пути.

  1. интеграция Cordova в среду разработки плагинов, i.e, превратите чистый проект Xcode в проект на основе Cordova. Если мы хотим использовать плагины cordova для iOS, они также доступны через Cocoapods.

  2. познакомьте Cocoapods с проектом Xcode, созданным Cordova. Таким образом, мы должны поместить код в систему управления версиями и быть будьте осторожны, когда мы добавляем другие плагины, так как файлы, которые мы изменили, могут быть изменены компанией cordova.

Я еще не знаю, какой из них лучше выбор.

следующая информация о стручках полезна для обхода #1.

pod search cordova

-> Кордова (4.0.1) Cordova iOS pod 'Cordova', '~ > 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 [мастер РЕПО]

- > Cordova-Lib (3.9.1) 自自github ,在在git.oschina.net解决国内访问的连接速度。Apache Cordova-это платформа для создания собственных мобильных приложений использование HTML, CSS и JavaScript. pod 'Cordova-Lib', '~ > 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 [мастер РЕПО]