2015-04-26 2 views
10

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

import Argo 

не работает :(

ответ

6

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

  1. Если ваш проект не находится внутри рабочей области, создать рабочее пространство для вашего проекта, выбрав File > Save As Workspace в Xcode .
  2. Перетащите файл .xcodeproj из папки Carthage/Checkouts в рабочее пространство.
  3. Запустите действие сборки на своей целевой раме.
+0

huh? Мне нужна поддержка некоторых фреймворков на детской площадке, но не в проекте :) –

+0

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

+0

У меня такая же проблема. Я сделал это. Но не изменил. Где я должен создать игровой файл? –

1

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

Подробнее здесь: https://github.com/richardnees/CarthagePlaygrounds

1

Детской площадка имеет доступ к внешней рамке, если она является частью рабочей области, которая строит цель, сконфигурированную для доступа к этим рамкам.

Если вы хотите добавить игровую площадку в существующий проект Carthage, вам нужно сохранить проект как рабочее пространство (Файл> Сохранить как рабочее пространство ...), построить цель, и все готово.

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

  1. Создать новый проект Xcode кроссплатформенного типа> Другое> Empty. Назовите его RxPlayground.
    Это создаст эту структуру RxPlayground/RxPlayground.xcodeproj и откроет пустой Xcode.

  2. Скачать RxSwift с Карфагеном

    • Создать Cartfile с этой линии: github "ReactiveX/RxSwift" "swift4.0"
    • Run Карфаген с carthage update --platform iOS.
  3. Добавить площадку к проекту.

    • Нажмите File> New> Детские площадки ...
    • Выберите КСН> Пустой шаблон и назовите его Rx.playground
    • правой кнопкой мыши узел проекта и выберите «Добавить файлы в RxPlayground».
    • Выберите Rx.игровая площадка и добавить его.
  4. Создание рабочей области

    • Выберите Файл> Сохранить как Workspace ...
    • Сохранить как Rx.xcworkspace
  5. Copy рамочные в каталог продукции.

    • Закройте проект и откройте Rx.xcworkspace
    • Создание кросс-платформенных> Другое> Aggregate. Назовите его RxAggregate
    • Создать Фазу New Run Script со следующим содержимым:
 
    cp -rv "${SRCROOT}/Carthage/Build/iOS/" "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" 

На данный момент, Xcode и Finder выглядеть следующим образом:

xcode

Обратите внимание, что Carthage/и Cartfile.resolved появляются, когда вы запускаете Карфаген, без них ваша игровая площадка будет всего лишь несколькими Ks.

Finder

Наконец, постройте проект (⌘B). Теперь вы можете использовать рамки в вашей детской площадке:

//: Playground - noun: a place where people can play 
import RxSwift 

_ = Observable<Void>.empty() 
    .subscribe(onCompleted: { 
     print("Completed") 
    }) 

Иногда первый раз вы строите (⌘B) Xcode не замечает новые рамки (Вздох). То, что я делаю, - это щелчок по цели и возврат к исходному файлу или повторное открытие проекта. У меня нет объяснений, почему это происходит.

+0

Перед вами -1 для сложности, обратите внимание, что это шаг за шагом с нуля, и это позволяет использовать вместо добавления проекта Xcode, который создает фреймворк. – Jano

Смежные вопросы