Процедура Framework для создания частной платформы с внутренними модулями для различных сторонних библиотек, используемых

Я разрабатываю частную структуру для наших клиентов для их проекта, чтобы они могли просто перетащить свой проект и начать использовать.

Чтобы избежать установки нежелательных путей для импорта библиотек и добавления настроек сборки, я упомянул, что Создание структуры для организации результатов — гораздо лучшее решение, которое может обслуживать ОС Watch, IPod, Ipad, iPhone — все в одном.

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

Ожидается структура.

MYCustomFramework

  • -----Версия
  • --------- Набор некоторых активов
  • --------- Библиотеки модулей сторонних производителей
  • --------------- XMPP Framework с использованием модулей
  • --------------- Структура документации
  • --------------- Logs Framework -

Затем я хочу добавить эту структуру в проект My Test, который будет иметь собственные модули.

MyTestProject.xcworkspace MyTestProject.xcproj MYCustomFramework.framework — внутри него будут скомпилированы все приведенные ниже скобки, поэтому никакой источник не будет выставлен, кроме интерфейсов. {

  • -----Версия
  • --------- Набор некоторых активов
  • --------- Библиотеки модулей сторонних производителей
  • --------------- XMPP Framework с использованием модулей
  • --------------- Структура документации
  • --------------- Структура журналов }

Как добиться этого и сделать это с меньшим размером, насколько это возможно.


person Vicky Dhas    schedule 03.02.2016    source источник


Ответы (2)


После различных проб я, наконец, сделал эту работу следующим образом.

1) Поды (выпущенный тестовый проект) не могут иметь поды для библиотеки со многими третьими сторонами. 2 Конфликт рабочего пространства и какой из них использовать было бы утомительно.

2) Создайте тестовый проект и внедрите модули для этого тестового проекта и откройте его с помощью рабочей области.

3) Используйте библиотеку XMPP Framework и извлеченные папки и заголовки без подов.

4) Создайте Cocoa-touch Framework и перетащите эту папку XMPPFramework без использования Pods.

5) Аналогично используется ручной процесс для интеграции других библиотек в My Cocoa-Touch Framework.

6) Скомпилировал My Framework и сгенерировал mycustomframework.framework для (устройства и симулятора)

7) При желании я могу использовать LIPO сейчас, чтобы создать агрегированную цель, чтобы убедиться, что все заголовки XMPP и других сторонних библиотек являются частными внутри моей структуры, и только открытые открытые файлы заголовков доступны для интеграции тестового проекта.

8) Разработано для запуска моего тестового проекта либо путем простого перетаскивания скомпилированного файла «.framework», либо перетаскиванием проекта библиотеки внутри моего тестового проекта, чтобы также можно было отлаживать код моей библиотеки.

person Vicky Dhas    schedule 15.02.2016

попробуйте это руководство, вы также должны добавить репозиторий спецификаций в репозитории модулей https://guides.cocoapods.org/making/private-cocoapods.html

ОТРЕДАКТИРОВАНО:

У нас есть внутренняя оболочка Fabric POD, которая просто доставляет Fabric.framework, который мы получаем от Fabric (это было до того, как у Fabric появился общедоступный модуль). Вот наша спецификация модуля. Таким образом, в вашем репо вы можете создать .framework и доставить его так же, как оборачивали Fabric.

Надеюсь, это поможет

{
  "name": "InternalFabric",
  "version": "1.1.1",
  "summary": "Fabric is a 3rd party library that gives us crash analytics.",
  "homepage": "https://github.com/myNameHere",
  "authors": "myNameHere",
  "license": {
    "type": "Copyright",
    "text": "\n Copyright Acme Inc. 2014\n For internal Acme use only. \n"
     },  
  "platforms": {
    "ios": "7.0"
  },
  "source": {
    "git": "https://github.com/ios-yourLibs/Fabric.git"
  },
  "requires_arc": true,
  "default_subspecs": "Core",
  "subspecs": [
      {
        "name": "Core",
        "vendored_frameworks": ["Fabric.framework","Crashlytics.framework"]
      },
      {
        "name": "Crashlytics",
        "dependencies": {
          "Fabric/Core": [

          ]
        },
        "vendored_frameworks": "Crashlytics.framework"
      }
  ]
}
person David Yang Liu    schedule 03.02.2016
comment
Это просто объясняет создание частной структуры, но не мой ответ, я хочу создать свою библиотеку, поэтому я решил использовать фреймворк. Затем мне требуется XMPP Framework внутри моей библиотеки в качестве зависимости, которая будет указывать только на конкретную версию. Таким образом, My Pods должны доставлять .framework конечному пользователю, в который он встроен. Как этого добиться. - person Vicky Dhas; 04.02.2016
comment
Спасибо, Дэвид, я немного новичок в этих спецификациях Pods, хотя я думаю, что вы почти уловили мою точку зрения, поэтому я попытаюсь сделать эту проверку и вернуться к вам. Кстати, мы можем поговорить, чтобы получить более ясное руководство. Мой идентификатор: [email protected]/ Skype: vickydhas - person Vicky Dhas; 04.02.2016