Итак, у нас есть несколько проектов с общим кодом, и пока они должны оставаться совместимыми по крайней мере с iOS7.
В настоящее время мы используем локальные кокоаподы для обмена кодом между различными приложениями. Недостатком этого является то, что весь общий код помещается в одну группу. Кроме того, команда Cocoapods объяснила, почему стручки Swift не будут доступны для проектов iOS7:
CocoaPods поддерживает Swift только в OS X 10.9 и новее, а также в iOS 8 и новее.
Вот почему:
Swift поддерживается в OS X 10.9 / iOS 7 и новее, как неоднократно заявляла Apple. В Swift нет поддержки создания статических архивов. Динамические платформы поддерживаются во всех версиях OS X. Динамические платформы не поддерживаются в версиях iOS до 8:
ld: предупреждение: встроенные dylibs/frameworks работают только на iOS 8 или более поздней версии.
(Источник: http://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks/)
Учитывая эту информацию, мы хотим попробовать поделиться кодом, используя Cocoa Touch Framework
-проект.
Я сделал следующее:
- В рабочей области создайте новый проект ->
Cocoa Touch Framework
- Добавьте/переместите быстрый код сюда и определите необходимые функции/и т. д. как
public
- В основной цели сборки добавьте новый проект как «Встроенная платформа».
- Если вам нужно использовать классы из определенной библиотеки, используйте оператор импорта, где имя цели сборки является именем модуля (в моем случае
import Cobra
)
Кажется, это работает, также на iOS7. Что странно, потому что везде в Интернете я читал это предупреждение, чтобы убедиться, что приложение не будет работать на устройствах iOS7:
embedded dylibs/frameworks only run on iOS 8 or later
Однако нам кажется, что на тестовых устройствах с iOS 7 он работает нормально. Кроме того, меня беспокоит:
Путь фреймворка кажется прямой ссылкой на мою локальную папку DerivedData. Я специально не выбирал свою папку DerivedData, я просто добавил предложенный фреймворк из Xcode, и он сам решил взять его из моей папки DerivedData. Мы работаем над этим проектом с несколькими программистами.
TL;DR;
Прежде чем я пойду по этому пути и перенесу код в эту новую настройку:
- Не вызовет ли этот способ встраивания общей библиотеки проблемы для моей команды? (другими словами: я делаю что-то не так?)
- Не вызовет ли такой способ встраивания библиотек проблем при отправке приложения в App Store?
- Если необходимо: есть ли альтернатива способу обмена кодом между проектами без простого копирования кода/файлов туда и обратно? Я не могу поверить, что ни у кого больше нет этой проблемы.
GIT
напрямую, избегая дополнительных головных болей, которые в любом случае доставит вам cocoapod; вам не нужно беспокоиться о том, какая версия Xcode, OSX или iOS будет поддерживаться — она правильно поддерживает все, что вам нужно, а процедура ее настройки и использования намного проще, чем тратить время на cocoapods , на мой взгляд, это не совсем для профессионалов, а для занудных выродков. (Я не хочу затевать дискуссию, спасибо, как я сказал на мой взгляд!) - person holex   schedule 02.03.2015