2016-07-19 2 views
0

Я новичок в XCode, и я создаю iOS Framework с Swift2, включая сторонние библиотеки (*. A) и фреймворки.Могу ли я сделать iOS все-в-одном? или включить частную статическую библиотеку в мою структуру?

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

Поэтому я просто хочу открыть интерфейсы API и классы, которые я определил.

Возможно ли это? Как настроить параметры сборки?

ответ

0

Вы можете сделать это, но есть некоторые вещи, которые необходимо учитывать:

  1. Вы не можете вставлять одну структуру в другую. Это означает, что если у вас нет источников для конкретной структуры, вы должны отправить ее вместе со своей собственной картой. Если у вас есть источники, вы можете рассмотреть возможность их компиляции в свою структуру напрямую.

  2. В зависимости от источников, которые вы используете в рамках, возможно, вам придется выполнить некоторую пост-обработку фрейма до obfuscate private headers и т. Д. Например, если вы используете код Objective-C или C вместе со Swift, вам определенно нужно сделать некоторые после обработки вашего файла *.framework, чтобы скрыть любой API, который вы хотите сохранить конфиденциальным.

  3. Если вы используете код Swift в своей структуре, имейте в виду, что ваш фрейм может использоваться только кем-то с той же версией компилятора Swift из-за отсутствия ABI. Это означает, что двоичные файлы, созданные одной версией компилятора, имеют высокую вероятность быть несовместимыми с более новой версией компилятора.

  4. Статические связанные библиотеки могут быть связаны и, следовательно, «объединены» напрямую в двоичную структуру. Вам просто нужно убедиться, что у вас есть совместимый двоичный файл для архитектуры, на которую вы хотите настроить таргетинг, например, вы не можете использовать статическую связанную библиотеку, которая была создана для симулятора, и связать ее с вашей инфраструктурой, которую вы хотите создать для реального устройства iOS ,

  5. Если вы используете Swift в своей структуре, пользователи вашей инфраструктуры должны включать библиотеки Swift dylib в свой комплект приложений - либо с помощью Swift в приложении, либо с помощью настройки сборки Embedded Content Contains Swift Code.