web-dev-qa-db-ja.com

Swift:ポッドファイルのライブラリを使用できません

依存性注入フレームワークにTyphoonライブラリを使用しています。このライブラリのインストールにはCocoaPodを使用します。これが私のポッドファイルです:

target "typhoon-Swift-demo" do
    pod 'Typhoon'
end

target "typhoon-Swift-demoTests" do

end

正常にインストールされましたが、ワークスペースプロジェクトファイルを開いたとき。これらのコード行をTyphoonサンプルコードとして入力します。

public class ApplicationAssembly: TyphoonAssembly {

}

アプリケーションがTyphoonAssemblyを認識しないというエラーが発生しました。次のような行を使用しようとしました。

import Typhoon // not recogize typhoon
import TyphoonAssembly // not regconize

この問題を解決する方法を教えてください。ライブラリを使用する前に何を追加する必要がありますか。ありがとう:)

9
hqt

SwiftではなくObjective-Cを使用してポッドヘッダーファイルをインポートする必要があります。したがって、CocoaPodsをSwiftで使用する場合は、2つの言語を混合することになります。 これは素晴らしいチュートリアルです これを達成する方法について。

13
quark

Quarkの答えに加えて、 Typhoon Swift example は、Swift andCocoaPodsで使用するためにTyphoonを設定する方法を示しています。

現在ほとんどすべての場所でデフォルトとなっている「アプリケーションスタイル」のテストを使用している場合、テストターゲットにはすでにメインターゲットの依存関係が暗黙的に含まれていることに注意してください。したがって、テストターゲットは排他的であると宣言する必要があります。例:

platform :ios, '7.0'

target :PocketForecast, :exclusive => true do

  pod 'Typhoon', :head

  pod 'CKUITools'
  pod 'ICLoader'
  pod 'NGAParallaxMotion'
  pod 'NSURL+QueryDictionary'
  pod 'OCLogTemplate'
  pod 'PaperFold', :git => 'https://github.com/jasperblues/PaperFold-for-iOS.git', :tag => '1.2-no-gesture-recognizers'

end

target :PocketForecastTests do
  pod 'Expecta', '~> 0.2.1'
  pod 'OCHamcrest'
  pod 'OCMockito'
end

inhibit_all_warnings!

テストターゲットが排他的であると宣言されていない場合、アプリケーションのすべてのライブラリが2回リンクされます。これは、多くの内省を使用するため、Typhoonの場合に問題を引き起こす可能性があります。


また、サンプルアプリケーションには、次のようなブリッジヘッダーがあることに注意してください。

#import "Typhoon.h"


台風Swift例:

enter image description here

3
Jasper Blues

これは更新が必要だと思います。私は最近Swiftアプリケーションの開発を開始し、Javaの背景から、Springのようなフレームワークを検索しました。私が見つけた最高のものはTyphoonです。私はしませんでした。しかし、初心者のための良い紹介を見つけることができなかったので、私はそれを試すためにスクラッチプロジェクトを作成しました。

私は統合しました 台風 によって:

  1. インストール cocoapods
  2. 「use_frameworks!」を使用して基本的なポッドファイルを作成します。行 ここのように
  3. ポッドのインストール
  4. 「TyphoonInitialAssemblies」配列をplistファイルに追加する
  5. 最初のアセンブリを作成し、それをplistの配列に追加します

議会では、

import Typhoon

public class MyAssembly:TyphoonAssembly{}

チャームのように機能します!

2
estiedi

あなたもこのエラーに遭遇しました。

方法で修正しました:=>「platform:ios、 'x.0'」を削除します

use_frameworks!ターゲット 'LateManagement' do pod'Alamofire 'pod'SwiftyJSON' end

1
Duy linh Trần