Подтвердить что ты не робот

Как импортировать сторонние фреймворки в Xcode Playground?

Как импортировать фреймворки третьей части в Xcode Playground?

У Swift Playground, очевидно, есть механизм импорта фреймов, потому что мы можем импортировать Cocoa, SpriteKit, а на OSX Playground XCPlayground (XCPlayground, кажется, отсутствует в iOS, странно)

Мне бы очень хотелось скрыть код с моей игровой площадки и показать минимальный пример. Любые мысли о том, как загрузить платформу в Swift playground?

См. также:

(Этот вопрос отличается от того, что запрос состоит в том, чтобы использовать фреймворк в Playground, а не просто обычные файлы swift)

4b9b3361

Ответ 1

Отредактировано: с Beta5 это теперь поддерживается, когда игровая площадка является частью рабочей области, которая создает структуру как цель. На сайте разработчиков Apple dev есть более подробная информация, но, надеюсь, @Rick Ballard добавит их к своему ответу здесь, и это должно стать окончательным ответом на этот вопрос.

Больше не делайте этого ниже!


В краткосрочной перспективе, пока нет поддерживаемого решения, если вы создаете модуль /Framework, вы можете скопировать его в каталог SDK System/Library/Frameworks, а затем просто import <#Module#> так же, как и при импорте системных рамок.

Для игровой площадки OS X: /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks

И для iOS: /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/

Но прежде чем вы это сделаете... запустите файл радара, как говорит @Rick в своем ответе.

Ответ 2

В настоящее время нет поддерживаемого способа импортировать собственный фреймворк или код приложения на игровой площадке, не вставляя его в редактор игровой площадки. Мы знаем, что это очень желательная функциональность, но, как всегда, мы призываем людей "голосовать с bugreporter" на странице bugreport.apple.com

Прямо сейчас, если вы просто пытаетесь скрыть код для показа в примере, сворачивание кода в редакторе может сделать трюк.

Теперь можно импортировать свои собственные фреймворки в игровые площадки. Это обеспечивает возможность совместного использования кода между вашими приложениями и игровыми площадками, которые могут импортировать ваши фреймворки. Для этого ваша игровая площадка должна находиться в том же рабочем пространстве, что и проект, создающий вашу инфраструктуру. Вы уже создали свой фреймворк. Если это iOS-инфраструктура, она должна быть построена для 64-разрядного целевого назначения (например, iPhone 5s). У вас должна быть активная схема, которая строит хотя бы одну цель (это целевое местоположение сборки будет использоваться в пути поиска фрейма для игровой площадки). Предпочтение "Построение местоположения" (в расширенных настройках "Местоположения" ) не должно быть установлено на "Наследие". Если ваша инфраструктура не является средой Swift, параметр сборки "Определить модуль" должен быть установлен на "Да". Как только все эти условия будут выполнены, импорт вашей инфраструктуры будет работать на игровой площадке.

Ответ 3

Я написал учебник посвященный импорту пользовательских фреймворков в бета-версии 6

Короче говоря, если у вас есть игровая площадка и фреймворк либо в одном проекте, либо в рабочей области, а ваша инфраструктура построена на 64 бита (даже для iOS), они отлично сочетаются.

Ответ 4

источник: http://qiita.com/ryokosuge/items/2551cd4faa9dca324342

Если есть кто-либо, у кого еще есть трудности с пониманием того, как это сделать после прочтения принятого ответа, это может помочь.

Это не по-английски, хотя я объясню здесь:

Использование Карфагена:

1: настройте свой файл Cartfile в корне проекта, добавьте свои библиотеки и запустите:

carthage update --platform iOS --use-submodules

2: Убедитесь, что ваш проект сохранен как Workspace. В строке меню Xcode: File > Save As Workspace. Завершите Xcode и снова запустите новый файл .xcworkspace.

3: Добавьте файл вашей библиотеки .xcodeproj в рабочее пространство: File > Add files to "your_workspace_name". Затем найдите его в: ${SRCROOT}/Carthage/Checkouts/your_library_name/your_library_name.xcodeproj

4: Найдите разделы Embedded Binaries и Linked Frameworks and Libraries в общих настройках вашего проекта. Добавьте файл библиотеки .framework в оба.

5: Очистить (⇧ + ⌘ + K) и построить (⌘ + B).

6: Импортируйте свою библиотеку на игровой площадке.

Ответ 5

Я решил это, скопировав встроенные фреймворки в каталог Built Products, где Playgrounds в рабочей области также ищет фреймворки. Примечание: вам также нужно запустить липо и удалить неиспользуемые архитектуры из двоичных файлов FAT.

Необходимые шаги (в двух словах):

  • Создание общей цели
  • Добавьте фазу script для копирования фреймворков от Carthage/Build/iOS/до BUILT_PRODUCTS_DIR (я использую быстрый script в приведенном ниже примере, но вы также можете использовать bash, ruby ​​python и т.д.)
  • Запуск агрегатной цели Теперь вы можете импортировать фрейм в Детская площадка

Кроме того, вы можете использовать общую цель в своем приложении:

  • Вставить рамки из BUILT_PRODUCTS_DIR, а не Carthage/Build/iOS/
  • Добавить совокупную цель в схему приложения для восстановления фреймворков после очистки.

Вот пример настройки проекта, как указано выше: https://github.com/richardnees/CarthagePlaygrounds

Ответ 6

Как и использование классов Objective-C в коде Swift, вы можете импортировать стороннюю библиотеку/классы в свой проект, а Xcode спросит вас, хотите ли вы создать заголовочный файл <#YourProjectName>-Bridging-Header. Выберите "Да" и импортируйте все файлы заголовков, которые вам нужны в этом файле. После этого на вашей игровой площадке вы можете просто сделать import <#YourProjectName>-Bridging-Header после import UIKit, и вы сможете использовать классы, которые вы импортировали в свой проект.

Обновление: это действительно неверно. Пожалуйста, см. Мой комментарий ниже. Извините за любую путаницу...