web-dev-qa-db-fra.com

erreur lors de l'utilisation des cocoapods "use_frameworks!" SWIFT

J'ai eu un projet propre Swift, en utilisant certains cocoapods: Parse, AFNetworking et RESideMenu. J'ai besoin d'utiliser STZPopupView pod, j'ai donc mis à jour les cocoapods avec la dernière version:

gem install cocoapods

Puis je l'ai relancé pour mon projet:

pod install

En raison de cette erreur:

[!] 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.

J'ai mis à jour mon podfile en ajoutant "use_frameworks!"

Mon podfile est maintenant:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
use_frameworks!

source 'https://github.com/CocoaPods/Specs.git'

target 'isam' do
pod 'RESideMenu', '~> 4.0.7'
pod 'AFNetworking', '~> 2.5'
pod 'Parse', '~> 1.6'
pod 'STZPopupView', '~> 1.0'
end

target 'isamTests' do

end

Depuis, j'ai 2 erreurs quand je construis:

  • Fichier "RESideMenu.h" introuvable
  • Impossible d'importer l'en-tête de pontage "..../isam/Swift-Bridging-Header.h"

Je n'ai rien changé d'autre dans mon projet.

Mon Swift-Bridging-Header.h ne change pas:

#ifndef isam_Swift_Bridging_Header_h
#define isam_Swift_Bridging_Header_h

#import <Parse/Parse.h>
#import <RESideMenu.h>

#endif

Dans mes paramètres de construction, j'ai:

builds settings

Je pense que c'est à cause de "use_frameworks!" dans mon podfile, mais je ne sais pas comment utiliser tous mes pods pour créer correctement mon application.

ÉDITER :

Les erreurs exactes sont:

/path_of_my_project/Swift-Bridging-Header.h:12:9: error: 'RESideMenu.h' file not found
#import <RESideMenu.h>
        ^
<unknown>:0: error: failed to import bridging header '/path_of_my_project/Swift-Bridging-Header.h'
18
cmii

Je suis en fait sur le même problème. Vous pouvez essayer ceci: http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html

Lorsque vous utilisez use_frameworks! dans CocoaPods, tous vos pods seront utilisés comme frameworks, pas seulement les pods Swift. Vous n'avez donc pas besoin d'un en-tête de pontage pour cela. Importez simplement vos pods dans tous les Swift fichiers dont vous avez besoin. Dans votre exemple, vous devez écrire: import RESideMenu

16
DasDany

Essayez de supprimer isam/de l'en-tête de pontage Objective-C et ne disposez que de Swift-Bridging-Header.h

En raison de leur expérience personnelle, les CocoaPods ont encore des problèmes lors de la combinaison des frameworks Swift et Objective C. Vous pouvez utiliser Alamofire qui est presque équivalent à AFNetworking pour Swift.

J'espère que cela t'aides.

Edit: Aussi pourquoi utiliser Objectice-C Parse dans Swift quand vous pouvez directement utiliser Swift bibliothèques).

2
mosn

J'ai eu le même problème. J'ai changé toutes mes importations de #import "RESideMenu.h" à #import <RESideMenu/RESideMenu.h> par exemple.

1
jamesthakid