Как связать зависимости Cocoapod с плагином Cordova?
Я разрабатываю плагин Cordova, и для платформы iOS я хотел бы включить несколько существующих (некордовых) Cocoapods. Я не смог найти какую-либо информацию или примеры того, как это сделать, и я ожидал, что это будет довольно распространенный случай использования.
Заметьте, что я не пытаюсь использовать Кордову в качестве Cocoapod, для которой есть приличная информация, но, скорее, используйте Cocoapods из платформы iOS плагина Cordova, который я разрабатываю.
Кордова plugin.xml
обычно должна перечислять все зависимости проекта, чтобы правильно связывать вещи. Кто-нибудь знает о плагине Кордовы или PhoneGap, который внутренне использует Cocoapods?
Ответы
Ответ 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]