web-dev-qa-db-ja.com

swiftでポッドインストールを実行中にエラーが発生しました

Cocoapodsの指示に従いました。

以下は私のPodfileです:

platform :ios, '8.2'

pod 'SwiftyJSON', '~> 2.1'
pod 'SwiftSpinner', '~> 0.6'
pod 'Alamofire', '~> 1.1'
pod 'SuperRecord', '~> 1.2'
pod 'Toucan

pod installを実行すると、次のエラーが発生しました。

Swiftで書かれたポッドは、フレームワークとしてのみ統合できます。この機能はまだベータ版です。追加use_frameworks!をPodfileまたはターゲットに使用して、使用を選択します。

更新しました:

コンソールログは次のとおりです。

$ pod install
Analyzing dependencies
Downloading dependencies
Installing Alamofire (1.1.4)
Installing SuperRecord (1.2)
Installing SwiftSpinner (0.6.0)
Installing SwiftyJSON (2.1.3)
Installing Toucan (0.2.0)
[!] Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add `use_frameworks!` to your Podfile or target to opt into using it.
36
channa ly

「use_frameworks!」を追加しますあなたのPodfileに:

AppleではSwiftを含む静的ライブラリをビルドできません。Objective-Cとは異なり、AppleはSwift iOSの標準ランタイムライブラリ。これにより、プラットフォームバージョンから言語バージョンが分離されます。Swiftでアプリを構築する場合、それらを出荷する責任があります。デフォルトでは、XcodeはSwift-stdlib-toolを使用してSwiftランタイムdylibs。ただし、Objective-CのみのアプリでSwiftを使用するフレームワークを出荷しようとすると、ツールが不足します。出荷するフレームワークはすべて、アプリケーションバンドルのFrameworksサブディレクトリに埋め込まれている同じdylibのセットを使用します。

まず、標準ライブラリの異なるバージョンに対してリンクできないためです。さらに、配布に関連するメモリサイズとネットワーク速度の制約のため、複数回ではなく1回だけ埋め込むことが望ましいです。 use_frameworks!を指定すると、静的ライブラリの代わりにフレームワークを介してCocoaPodsをプロジェクトに統合できます。それが存在しない場合、Swiftソースコードを含むポッドに依存している場合、依存関係を統合することはできません。

リファレンス: http://blog.cocoapods.org/CocoaPods-0.36/

36
gagarwal

「use_frameworks!」を追加しますPodfileに:

以下のサンプルPodfileをご覧ください

target 'MySample' do

  pod 'AFNetworking', '~> 2.5'

  pod 'Net', '~> 0.2' #This is a sample in Swift

  use_frameworks! # <--Use this line
end
57
Meet

podfileで記述されているように、コメント解除use_frameworks! Swiftを使用しているので、この行のコメントを外す必要があり、すべて正常に動作します

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks! 

target 'YourProjectName' do
  pod 'SwiftyJSON', '~> 2.1'
  pod 'SwiftSpinner', '~> 0.6'
  pod 'Alamofire', '~> 1.1'
  pod 'SuperRecord', '~> 1.2'
  pod 'Toucan'
  # all other pods goes here 
end

target 'YourProjectName' do

end

target 'YourProjectName' do

end
9
Mina Fawzy

私の場合、コマンドでココアポッドをアップグレードするために使用しましたSudo gem install cocoapodsと私の問題は解決しました。私は客観的-cとSwiftライブラリをプロジェクトで使用しました。

1
Yogesh Dalavi

解決策は非常に簡単です。これらの行をポッドファイルに追加するだけです。

target 'PassDTAFirebase' do

  inherit! :complete

    # Here your pods

  use_frameworks! 

end
0