web-dev-qa-db-ja.com

サードパーティのフレームワークをXcode Playgroundにインポートするにはどうすればよいですか?

第3部のフレームワークをXcode Playgroundにインポートするにはどうすればよいですか?

Swift Playgroundには明らかにCocoaSpriteKitをインポートできるフレームワークインポートメカニズムがあり、OSX Playgroundでは、XCPlayground(iOSからXCPlaygroundが欠落しているようですが、奇妙に)

私が本当にやりたいのは、プレイグラウンドからコードを隠し、最小限の例を見せることです。フレームワークをSwift playground?

こちらもご覧ください:

(この質問は、リクエストが単に通常のSwiftファイルではなく、プレイグラウンドでframeworkを使用することであるため異なります)

45
Nate Murray

編集:Beta5では、プレイグラウンドがフレームワークをターゲットとして構築するワークスペースの一部である場合、これがサポートされるようになりました。 Apple devフォーラムサイトに詳細がありますが、@ Rick Ballardがここに彼の答えに追加してくれることを願っています。

もう以下はしないでください!


短期的には、サポートされるソリューションはありませんが、モジュール/フレームワークを作成している場合、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が答えで言っているように、レーダーを提出してください。

19
ikuramedia

現在、独自のフレームワークまたはアプリコードをプレイグラウンドにインポートするためのサポートされている方法はありません。プレイグラウンドエディタに貼り付けることはできません。これは非常に望ましい機能であると認識していますが、いつものように、bugreport.Apple.comで「bugreporterに投票する」ことをお勧めします。

現在、例で表示するためにコードを非表示にしようとしている場合は、エディターでコードを折りたたむとうまくいく可能性があります。

独自のフレームワークをプレイグラウンドにインポートできるようになりました。これにより、アプリケーションとプレイグラウンド間でコードを共有する方法が提供され、どちらもフレームワークをインポートできます。これを行うには、フレームワークを生成するプロジェクトと同じワークスペースにプレイグラウンドが必要です。フレームワークをすでに構築している必要があります。 iOSフレームワークの場合、64ビットの実行先(iPhone 5sなど)向けに構築する必要があります。少なくとも1つのターゲットをビルドするアクティブなスキームが必要です(そのターゲットのビルド場所は、プレイグラウンドのフレームワーク検索パスで使用されます)。 「高度な「場所」設定での)「場所の構築」設定は「レガシー」に設定しないでください。フレームワークがSwiftフレームワークではない場合、[モジュールの定義]ビルド設定は[はい]に設定する必要があります。これらの条件がすべて満たされると、フレームワークのインポートはプレイグラウンドで機能します。

46
Rick Ballard

チュートリアル Beta 6のカスタムフレームワークのインポートをカバーしました

つまり、同じプロジェクトまたはワークスペースにプレイグラウンドとフレームワークがあり、フレームワークが64ビット(iOSでも)向けに構築されている場合、それらは非常にうまく連携します。

2
iHunter

ビルドされたフレームワークをビルドされた製品ディレクトリにコピーすることで解決しました。ワークスペースのPlaygroundsもフレームワークを検索します。注:また、リポを実行し、FATバイナリから未使用のアーキテクチャを削除する必要があります。

必要な手順(簡単に言えば):

  • 集約ターゲットを作成する
  • スクリプトフェーズを追加して、フレームワークをCarthage/Build/iOS /からBUILT_PRODUCTS_DIRにコピーします(以下の例ではSwiftスクリプトを使用していますが、bash、Ruby pythonなど)
  • 集計ターゲットの実行これで、プレイグラウンドでフレームワークをインポートできます

さらに、アプリで集約ターゲットを活用できます。

  • Carthage/Build/iOS /ではなく、BUILT_PRODUCTS_DIRからフレームワークを埋め込みます
  • アプリスキームに集約ターゲットを追加して、クリーンアップ後にフレームワークを再確立します。

上記のプロジェクト設定の例を次に示します。 https://github.com/richardnees/CarthagePlaygrounds

1

ソース: 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:プレイグラウンドでライブラリをインポートします。

1
Shiyason

SwiftコードでObjective-Cクラスを使用するように、サードパーティのライブラリ/クラスをプロジェクトにインポートでき、Xcodeは<#YourProjectName>-Bridging-Headerヘッダーファイル。 [はい]を選択し、そのファイルに必要なすべてのヘッダーファイルをインポートします。その後、プレイグラウンドで、単にimport <#YourProjectName>-Bridging-Headerの後import UIKitそして、プロジェクトにインポートしたクラスを使用できるようになります。

更新:これは実際には正しくありません。以下の私のコメントをご覧ください。混乱してごめんなさい...

0
Peng90