2015-08-31 33 views
7

szukam jak rozwiązać „wykorzystania«@import», gdy moduły są wyłączone” podczas dodawania do Google Analytics ze cocoapods:iOS CocoaPods - jak rozwiązać problem "użycie" @import ", gdy moduły są wyłączone"?

pod 'Google/Analytics', '~> 1.0.0' 
link_with 'AppTarget', 'AppTargetTests' 

W kodzie:

#import <Google/Analytics.h> 

otrzymuję ten błąd w strąk:

"use of '@import' when modules are disabled" 

enter image description here

Sprawdziłem wszystkie projekty i zobaczyć, że moduły są włączone, wraz z innymi suggestiont do "ram Połącz automatycznie"

enter image description here enter image description here

nie mogą zmienić to import z powodu tego błędu: enter image description here

Jak mogę rozwiązać problem "użycia" @import ", gdy moduły są wyłączone" podczas dodawania struktur za pomocą cocoapods w xCode6?

+5

Po wywiercenie wokół projektu i czyszczenia, udało mi się w końcu pozbyć się „@import” dyrektyw wewnątrz kapsuły Google Analytics. Wygląda na to, że nie możesz importować, jeśli twój projekt używa obiektywnego C++ (główny ma rozszerzenie mm). Och, jak bardzo nienawidzę obiektywnego C++ :( –

Odpowiedz

1

google dużo, ale włamał się rozwiązanie problemu sam. Sprzątanie projektu, odbudowanie itp. Nie działało dla mnie.

Rozwiązaniem jest zapakowanie interfejsu API w klasę kakao i użycie tej klasy w importach zamiast oryginalnych.

  1. Tworzenie klasy, na przykład APAnalyticsTracker, gdzie AP ma być Twój wspólny przedrostek aplikacji. Tutaj będziesz miał dwa pliki: APAnalyticsTracker.m i APAnalyticsTracker.h
  2. Importuj #import <Google/Analytics.h> w APAnalyticsTracker i owinąć oryginalną realizację takiego (patrz GIST, aby uzyskać więcej informacji): https://gist.github.com/vladignatyev/c240a1a4867b17894b10
  3. Zastosowanie APAnalyticsTracker.h z .mm pliki swobodnie.
  4. Pamiętaj, aby włączyć moduły, zobacz https://stackoverflow.com/a/33125158/882187 komentarz z @barrast
-2

w Xcode, wystarczy ustawić Włącz moduły (C i Objective-C) YES Ustawienia produkcji:

enter image description here

+2

Oryginalny wpis wyraźnie pokazuje, że to ustawienie było już ustawione na Tak. – Andy

2

Wystarczy dodać odwołanie do @Alex Stone „s odpowiedź-w-komentarz tutaj jest obecna oficjalna clang specification na brak wsparcia dla @import w C++:

At present, there is no C or C++ syntax for import declarations. Clang will track the modules proposal in the C++ committee.