Создание Swift Framework с Xcode 7 (бета-версия 3) для использования в качестве встроенного двоичного файла

С тех пор как в iOS 8 были представлены встроенные двоичные файлы, я хотел портировать большую часть моего общего кода в фреймворки. Я решил подождать год, прежде чем делать это, и в этом году, с бета-версией Xcode 7 и iOS 9, я начинаю делать именно это.

Я начал проект фреймворка Cocoa Touch в Xcode 7 и хочу скомпилировать его в удобную для использования фреймворк. Я могу заставить его скомпилировать мой проект в .framework, но есть несколько проблем; а именно, фреймворк не представляется импортируемым в новые проекты (я опишу шаги, которые я сделал для этого в ближайшее время). Из-за этого я не уверен, есть ли в моей структуре какие-либо видимые символы.

Вот что я сделал, чтобы создать Framework:

Создал мой фреймворк как Cocoa Touch Framework.Перешел на этапы сборки моей цели, зашел в заголовки и добавил все мои файлы Swift в раздел «Public», в надежде, что все мои символы будут экспортированы без необходимости помечать их какpublic.Я пытался заархивировать свой проект в качестве основы. В настоящее время похоже, что в Xcode 7 Beta 3 есть ошибка (о которой мы сообщим позже сегодня), в результате которой генерируются поврежденные архивные файлы. По этой причине я не смог получить свой фреймворк из окна Организатора. Чтобы обойти это, я изменил схему действия Run в Xcode с Debug на Release, собрал его и взял его сгенерированный.framework из моего проектаbuild/iphoneos-release каталог. Это был быстрый тест, поэтому мне не нужны были фреймворки, созданные для эмуляторов.

И вот что я сделал, чтобы попытаться добавить фреймворк в новый проект:

Создал группу «Frameworks» (для организационных целей) и перетащил туда фреймворк, выбрав «да», когда он спросил меня, хочу ли я скопировать файл в каталог моего проекта.Перешел к настройкам моей цели, удалил мой фреймворк из «Связанных библиотек» (он был добавлен туда автоматически), вместо этого добавил его во встроенные двоичные файлы. Это снова добавило фреймворк в связанные библиотеки, поэтому мне пришлось удалить его оттуда дважды. Выход из фреймворка в связанных библиотеках вызывает ошибку компоновщика (не могу найти фреймворк - не знаю почему, но я думаю, что он не имеет отношения к моей проблеме и что-то, о чем я также должен сообщить в Apple), но как только вы удалите его оттуда, он нормально компилируется, когда вы добавляете его в Embedded Binaries.Пытался импортировать мой фреймворк в файл. XCode жалуется, что "такого модуля нет".

К сожалению, несмотря на то, что встроенные фреймворки существуют уже около года, я не могу найти много написания по этой теме.

Итак, мой вопрос: правильно ли я создаю фреймворк, позволяя ли мне сбои фреймворка / чего-либо еще из-за ошибки бета-версии Xcode 7? Или есть другая процедура для создания инфраструктуры, которую я хочу использовать в качестве встроенного двоичного файла? Я, вероятно, должен упомянуть, что я хочу сделать эту библиотеку открытым исходным кодом, и я думаю, что распространение простой.framework подать людям, которые хотят использовать это было бы аккуратно.

Ответы на вопрос(1)

Ваш ответ на вопрос