22
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

アプリで書いた swift 群をフレームワーク化して Playground で import する

Last updated at Posted at 2014-10-29

参考

Alamofire
https://github.com/Alamofire/Alamofire

Alamofire スキーマを選んでシミュレータの iphone5s あたり用にビルドすると、ワークスペース内にある Alamofire.playground 内で import Alamofire して Alamofire.swift 内の publicな メソッド等が使えるようになります。

他のプロジェクトでやってみる

環境

  • Mac OS X 10.10
  • Xcode 6.1

対象

Swiftris
https://www.bloc.io/swiftris-build-your-first-ios-game-with-swift

方法

  1. Swiftris ワークスペースを新たに作成して既存の Swiftris アプリプロジェクトを中にいれる
  2. 新規の Cocoa Touch Framework プロジェクト(名前はとりあえず SwiftrisFramework)を作成して Swiftris ワークスペースに入れる
  3. フレームワークに分離できる swift ファイルを SwiftrisFramework の方に移動する(AppDelegate.swift と GameViewController.swift 以外をとりあえず移動)
  4. 2 で作成した SwiftrisFramework.xcodeproj を Swiftris ワークスペース内の Swiftris の中に入れる(それ以外のフォルダとかは不要)
  5. Swiftris の Build PhasesTarget Dependencies に SwiftrisFramework を追加する
  6. Swiftris アプリを ビルドしようとするとたくさんエラーが出るはずで、 これは SwiftrisFramework の方で public になっていないクラスや変数が見えないために出る 。エラーが出るまで変数/クラス/フィールド/メソッド等に public を追加、 SwiftrisFramework をビルド、Swiftris アプリをビルド、を繰り返す
  7. Playground の中で使いたいクラス等にも public を追加し、SwiftrisFramework をビルドする。
  8. ワークスペースに Playground ファイルを追加し、以下を書いたらあとは public にしたクラス他を Playground 内で使えるようになっているので遊ぶ
import SwiftrisFramework

構造

Swiftris ワークスペース

 Playgroundファイル
 SwiftrisFramework(フレームワーク)
 Swiftris(iOSアプリ)
  SwiftrisFramework.xcodeproj(上のフレームワークのプロジェクトファイルのみ、設定で SwiftrisFramework を参照するために必要)

まとめ

  • 分かんなかったら Alamofire を参考にすればいいと思います(適当)
  • 単にプロジェクト内の swift のクラスとかを Playground で使いたいだけなんですけどもっといい方法ないんでしょうか…?
22
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?