Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

Я просто потратил несколько часов на это, поэтому я подумал, что поставлю это здесь для всех, кто заинтересован. Кордова с версии 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 для вашего плагина. Кордова автоматически создает .xcworkspace. Используйте это вместо файла xcodeproj, и вам хорошо идти.

Ответ 2

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

Ответ 3

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

Ответ 4

Я встречаюсь с подобным ситутированием.

Вот два способа обхода.

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

  • Ввести Cocoapods в проект Xcode, созданный Кордовой. Таким образом, нам нужно поместить сгенерированный код в исходный элемент управления и быть осторожным при добавлении других плагинов, так как файлы, которые мы модифицировали, могут быть изменены кордорой.

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

Следующие сведения об элементах полезны для обхода # 1.

pod search cordova

- > Кордова (4.0.1)  Кордова 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 [master repo]

- > Кордова-Либ (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 [master repo]