Ostrzeżenie Cocoapods - CocoaPods nie ustawił podstawowej konfiguracji projektu, ponieważ ponieważ projekt ma już niestandardowy zestaw konfiguracji


331

Po wykonaniu pod installw bazie mojego projektu pojawia się następujący błąd:

CocoaPods nie ustawił podstawowej konfiguracji projektu, ponieważ ponieważ projekt ma już niestandardowy zestaw konfiguracji. Aby CocoaPods integracji do pracy na wszystkich, należy albo ustawić konfiguracje bazy tarczy BluePlaquesLondonFrameworkdo Pods/Target Support Files/Pods/Pods.debug.xcconfiglub zawierać Pods/Target Support Files/Pods/Pods.debug.xcconfigw konfiguracji kompilacji.

To prawdopodobnie brzmi głupio, ale jak ustawić podstawową konfigurację celu?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile to Podfile, który powoduje ten problem.

http://github.com/seanoshea/BluePlaquesLondon w oddziale iOS 8 to plik Podfile, jeśli chcesz zobaczyć, jak wygląda projekt.


2
To trochę nie na temat, ale; Chcę cię tylko ostrzec o systemie iOS-KML-Framework. Używa wersji 1.5 TBXML, która jest nieco błędna. Jeśli w pliku danych pojawi się zniekształcony kod XML, aplikacja ulegnie awarii. Możesz zrobić prywatny widelec dla systemu iOS-KML-Framework, w którym usuniesz „1.5” z podspec i po prostu użyjesz HEAD TBXML. To wydaje się naprawiać wiele problemów.
churowa

Zaktualizuj swój tytuł, aby zawierał więcej rzeczywistych ostrzeżeń. Na przykład: „CocoaPods nie ustawił ostrzeżenia konfiguracji”.
David James

Zaktualizowano tytuł @DavidJames. Z przyjemnością zmienimy to jeszcze raz, jeśli uważasz, że to trochę trudne.
seanoshea

4
Teraz jest to jeden z najdłuższych tytułów, jakie widziałem na stosie.
Klaas

github.com/CocoaPods/CocoaPods/issues/2633 ma dobre obejście - ustaw wszystkie konfiguracje na None, a następnie uruchom „pod install”
David Airapetyan

Odpowiedzi:


583

Miałem ten sam problem, ale w Xcode 6.1.1 - naprawiłem to, zmieniając ustawienie pliku konfiguracyjnego Nonena dwa cele związane z Pods, a następnie uruchamiającpod install ponownie.

Ustawienia pliku konfiguracyjnego można znaleźć, wybierając projekt (nie cel), a następnie zakładkę Informacje.


144
To ustawienie można znaleźć, wybierając projekt (nie cel), a następnie zakładkę Informacje.
Grav

34
Pomaga dokonać zmiany, a następnie zamknąć xcode, uruchomić pod install, a następnie ponownie otworzyć. Nie trzymaj Xcode otwartego w tym czasie.
Sebastian Roth,

1
Naprawiłem to dla mnie. moja konfiguracja wskazywała na starą nazwę xcconfig, która zmieniła się, ponieważ dodałem dwa wyraźne cele w moim Podfile (jeden dla głównego proj drugi dla testowania), powodując generowanie nowych plików konfiguracyjnych o różnych nazwach.
qix

10
Dla tych, którzy martwili się tak samo jak ja, że ​​ustawienie to Noneby zepsuło różne rzeczy ... następne pod installwszystko rozwiązuje.
Matthew

4
gdzie to ustawienie w xcode 10?
Przejrzałem

167

Nie majstruj, zresetuj.

Krok po kroku

  1. Pokaż nawigator projektu
  2. Wybierz Projekt
  3. Wybierz Info
  4. W Konfiguracjach wybierz każdą z osobna (Debugowanie, ApplicationUnitTest, Release itp.), A dla każdego celu w ramach tej konfiguracji ustaw konfigurację na Brak .
  5. Upewnij się, że w oparciu o plik konfiguracyjny brzmi 0 Zestaw konfiguracji lub Brak konfiguracji dla każdej konfiguracji. To jest sedno. 0 Zestaw konfiguracji
  6. Zamknij Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

Gdy pozwolisz pod installkrok 7po kroku wykonać jego magię, możesz być w stanie użyć niestandardowej konfiguracji i zmienić swoje konfiguracje.


10
należy przyjąć odpowiedź, poprzednie też nie były dla mnie oczywiste.
Evgeniy Kleban,

Korzystanie z Podskonfiguracji, jak sugerowano w innych odpowiedziach, nie rozwiązało mojego problemu w najmniejszym stopniu: Ustawienia kompilacji już pasowały do Pods.debug& Pods.release, co było problemem. Co było 0 Zestaw konfiguracji dla każdej konfiguracji. Nie ta sama odpowiedź.
SwiftArchitect,

To również działało dla mnie. Dla przypomnienia, musisz zmienić Cele na Projekty, aby zobaczyć konfiguracje. Szukałem tego przez długi czas, aż natknąłem się na listę rozwijaną.
marty331

Głosowałbym za tym sto razy, gdybym mógł. Po 30 godzinach walki z procesem kompilacji Jenkins po połączeniu 4 gałęzi programistów, dodając 3 rozszerzenia do aplikacji na iOS z niestandardowymi plikami konfiguracyjnymi, bombardując skrypt kontrolny manifest.lock ze strąków kakao, to ostatecznie rozwiązało problem. (wśród wielu innych rzeczy, ale to była ostateczna poprawka słomy). :Twoje zdrowie:
Augie

„[!] Nie można ustalić wersji Swift dla następujących strąków:”
Richard

138

Przejdź do XCode i otwórz ustawienia projektu, a na karcie Informacje zobaczysz „Konfiguracje”, w których możesz ustawić plik konfiguracyjny zarówno dla debugowania, jak i wydania. Najwyraźniej już ustawiłeś je na niestandardową konfigurację, a CocoaPods chce / potrzebuje, abyś użył konfiguracji Pods.

Oto zrzut ekranu


7
Zauważ, że to nie rozwiązuje problemu, jeśli faktycznie potrzebujesz użyć niestandardowej konfiguracji do prawdziwego celu. Zobacz ten otwarty problem .
funroll

1
W Xcode 6 nic się nie zmieniło, aby ta odpowiedź była niepoprawna
kwark

Kolejny problem, ale rozwiązał mój problem. Używałam kakao z testami interfejsu użytkownika i to uratowało mi życie! Dziękuję Ci.
Akshit Zaveri

70

Wpadłem na ten sam problem. Opierałby się na symulatorze, ale nie na moim urządzeniu. Żadna z odpowiedzi nie rozwiązała tego dla mnie. Oto, co zrobiłem, łącząc kilka odpowiedzi:

  1. Zmieniłem plik moich strąków, aby używał określonego celu:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. Ran pod zainstalować

  3. To daje błąd: [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `MyProject` to `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` or include the `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` in your build configuration.
  4. Idź Ustawienia projektu i kliknij kartę Informacje. Wystąpi błąd, gdy nie będzie mógł znaleźć pliku konfiguracji. Ustaw na „Brak” w celu debugowania i wydania.
  5. Uruchom ponownie instalację pod
  6. Oczyść i buduj. To działa.

1
Pomiędzy krokami 4 i 5 zawsze zamykam xcode. Miałem problemy powstałe, gdy xcode działa podczas instalacji pod.
Ray Hunter,

Po prostu wpadłem na to, tworząc własne schematy. Powyższe działa również w Xcode 7. Polecam @srayhunter porady dotyczące zamykania Xcode podczas instalacji.
subv3rsion

1
Chciałbym móc głosować więcej niż raz. To mnie łapie za każdym razem.
Bill Burgess,

16

Powinieneś także upewnić się, że nie masz żadnych strąków w katalogu głównym Podfile, powinieneś zdefiniować wszystkie strąki, które są używane w wielu takich celach:

def shared_pods
  pod 'ReactiveCocoa', '~> 2.5'
end
target 'app' do
  shared_pods
  pod 'RestKit'
end
target 'tests' do
  shared_pods
  pod 'OCMock'
end

Konieczne może być również usunięcie libPods.ai libPods-app.az zależności docelowych, wykonanie czyszczenia, a następnie pod installponowne uruchomienie .


10

Właśnie natrafiłem na ten problem po dodaniu niestandardowych konfiguracji kompilacji. Widziałem pod:

Pods (target) > Target Support Files > Pods

że faktycznie utworzył nowe xcconfigpliki, które pasowały do ​​nowych konfiguracji kompilacji, ale z jakiegoś powodu nie mogłem ich wybrać w celu projektu mojej aplikacji.

Tym, co naprawiło to dla mnie, było zainstalowanie i użycie cocoapods-deintegrate :

gem install cocoapods-deintegrate

a następnie uruchom:

pod deintegrate

śledzony przez:

pod install

2
To mi pomogło.
Krishnan,

7

Linia w podfile, która generuje problem, to: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Po prostu zrób to: link_with ['BluePlaquesLondon'] lub ten (działał w moim przypadku, mam nadzieję, że będzie w twoim :-)):

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

xcodeproj 'BluePlaquesLondon.xcodeproj'
inhibit_all_warnings!
link_with ['BluePlaquesLondon']

def import_pods

     pod 'TTTAttributedLabel', '~> 1.10.1'
     pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.9'
     pod 'Google-Maps-iOS-SDK'
     pod 'IntentKit'
     pod 'HCViews'
     pod 'SVProgressHUD', :head
     pod 'iRate'
     pod 'iOS-KML-Framework', :git => 'https://github.com/FLCLjp/iOS-KML-Framework.git'

end

import_pods

target "BluePlaquesLondonFramework" do
    import_pods
    pod 'Kiwi'
end

To działało dla mnie pięknie. Miałem już ustawione konfiguracje Cocoapods zgodnie z przyjętą odpowiedzią, ale nadal widziałem ostrzeżenie. Dlaczego więc to działa, skoro link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']nie?
churowa

6

Jeśli dodałeś niestandardową konfigurację kompilacji do istniejącego projektu, Cocoapods narzeka na to.

Cocoapods automatycznie utworzy pliki xcconfig w katalogu Pods/Target Support Files/<build_target>zgodnie ze wzorcem nazewnictwa Pods-<build_target>.<build_config>.xcconfig.

Pamiętaj tylko, aby ręcznie dodać te pliki do swojego projektu w Xcode (w katalogu Pods, ale nie w projekcie Pods!). Po dołączeniu tych plików wybierz projekt w Xcode, przejdź do zakładki „Informacje” i rozwiń niestandardową konfigurację. Wybierz odpowiedni plik xcconfig dla każdego celu w niestandardowej konfiguracji.


4

Miałem ten sam błąd podczas instalacji pod. Próbowałem wszystkiego (ponownie zainstaluj kapsułę, zaktualizuj wszystkie klejnoty itp.) I znalazłem rozwiązanie działające w moim przypadku. Wystąpił problem z powodu zmiany nazwy celu. W takim przypadku rozwiązanie jest proste:

  1. Kliknij Produkt -> Schemat -> Zarządzaj schematami ...
  2. Kliknij cel na liście i usuń go znakiem „-” w dolnej części okna.
  3. Kliknij „+”, aby dodać cel z powrotem do listy. Wybierz prawidłowy cel i nazwę.

W końcu wszystko powinno działać.


3
  1. Dodaj odpowiednie pliki xcconfig do swojego projektu. Cocoapods je utworzą, ale nie można ich ustawić w Xcode, dopóki nie znajdą się w projekcie.
    • Prawdopodobnie chcesz je dodać do grupy Pods, w której znajdują się inne pliki xcconfig. Kliknij prawym przyciskiem myszy i dodaj pliki.
    • Wyszukaj pliki xcconfig w folderze projektu lub zajrzyj do niego Pods/Target Support Files/[TARGET_NAME]/(Mam różne cocoapody skonfigurowane dla każdego celu (rozszerzenie i główny projekt mogą się nieco różnić w twoim przypadku)
  2. Przejdź do konfiguracji projektu w informacjach o głównym projekcie
  3. Dla każdego celu i konfiguracji ustaw odpowiednią konfigurację zasobników.
  4. pod install ponownie i nie powinno być żadnych błędów.

3

Przeniosłem strąki w Podfile na zewnątrz od celu. Zmiany plików z tego:

# 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 'MyProject' do

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

end

Do tego:

# 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!

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

target 'MyProject' do

end

2

W przypadku korzystania z niestandardowej konfiguracji możesz postępować zgodnie z sugestią zawartą w ostrzeżeniu i dołączyć konfigurację Pod do pliku konfiguracyjnego

     #include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"

To NIE zatrzyma ostrzeżeń, ale pozwoli ci użyć twojej prywatnej konfiguracji (istnieje ostrzeżenie o błędzie w projekcie CocoaPods) https://github.com/CocoaPods/CocoaPods/issues/2633


2
Dziękujemy za dodanie odpowiedzi, która nie poświęca aktualnej konfiguracji projektu.
Dan Leonard,

1

Dla mnie problem polegał na zmianie wspomnianych nazw plików xcconfig przed aktualizacją Swift 3.

Coś nie było zsynchronizowane, więc Cocoapods utworzył sekcję folderu „Odzyskane referencje” ze starymi nazwanymi plikami i połączono z nimi.

Aby to naprawić, ja:

  1. Usunięto folder „Odzyskane referencje” i zawierające stare pliki .xcconfig z Xcode i systemu plików
  2. Zamknij Xcode

  3. Uruchom instalację pod

Potem wszystko zostało załatwione i ostrzeżenia zniknęły.


0

Udało mi się zbudować projekt dotknięty tym problemem na XCode 6 przez:

  • wybierając Projekt z Nawigatora projektu
  • wybierając Projekt zamiast Cel
  • przejście do zakładki Informacje
  • wybierając Pods. (debugowanie / wydanie) Pliki konfiguracyjne z combobox dla odpowiednich konfiguracji.

Mam nadzieję, że to komuś pomoże.


0

Stało się tak, ponieważ miałem już konfigurację kapsuły. Jestem nowy w tworzeniu iOS, szukałem instrukcji, aby zainstalować Alamofire + SwiftyJSON, i ostatecznie nieumyślnie instalowałem biblioteki. Dla mnie zadziałało: w folderze „Docelowe pliki obsługi” w projekcie „Pods” wybrałem dwa prawidłowe pliki .xcconfig i przeciągnąłem je do folderu „Pods” mojego projektu aplikacji. Umożliwiło to wybór prawidłowych plików konfiguracyjnych w konfiguracji podstawowej.

Ale jeśli ponownie uruchomię „instalację pod”, ostrzeżenie zmieni się na poprzedni plik .xcconfig. Próbuję usunąć pliki i starą strukturę z głównego projektu, ale kiedy ponownie uruchomiłem poprzednie polecenie, dałem mi to samo ostrzeżenie i utworzyłem plik „Pods.framework” w folderze „Pods” mojego projektu aplikacji. Zignorowałem to i wydaje się, że działa dobrze, pomimo dwóch ram. Nie wiem, czy to prawda, a rozwiązanie, jeśli istnieje, byłoby mile widziane.


To tak naprawdę nie odpowiada na pytanie. Jeśli masz inne pytanie, możesz je zadać, klikając Zadaj pytanie . Możesz także dodać nagrodę za zwrócenie większej uwagi na to pytanie, gdy będziesz mieć wystarczającą reputację .
Petro Korienev,

Dzięki za wyjaśnienie, Petro. Chciałem po prostu podzielić się wynikiem, który zadziałał dla mnie (z ostrzeżeniami, ale nadal), ale będę bardziej ostrożny w przyszłości.
Pablo

0

Miałem błąd:

diff: /../Podfile.lock: Brak takiego pliku lub katalogu diff: /Manifest.lock: Brak takiego pliku lub błędu katalogu: Piaskownica nie jest zsynchronizowana z Podfile.lock.

Po raz pierwszy ściągnąłem prośbę z bitbucket. Wyczyściłem swój projekt i wypróbowałem wszystko (instalacja pod, aktualizacja pod itp.), Ale żadna z powyższych odpowiedzi nie zadziałała. Następnie po prostu sprawdzam ścieżkę, w której instalowałem pod, poprawiłem go i zainstalowałem ponownie. Po prostu działało. Upewnij się, że podałeś ścieżkę tuż przed tym, gdzie istnieją .xcodeproj lub .xcworkspace (jeśli już tam jest). Może ktoś skorzysta z tego.


-2

Najprostsze rozwiązanie tego problemu (po wielokrotnym występowaniu tego problemu):

  1. Usuń Podfile & Podfile.lock z biblioteki projektu (zapisz gdzieś Podfile, abyś mógł łatwo wkleić go do nowego Podfile)
  2. uruchom „pod init”
  3. Edytuj „Podfile” do swojej woli (dodaj używane strąki)
  4. uruchom „pod install”

Spowodowałoby to odtworzenie wszystkiego i działa zawsze w ciągu kilku minut (nie poświęcając czasu na inżynierii wstecznej „błędu”).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.