Mam włączyć SpatialIite
do projektu Xcode, który wykorzystuje plik Główka Proj.4
, tylko jeden cel. Oba są projektami Xcode i mają statyczne cele.
Próbuję przeprowadzić migrację z submodułu git do Cocoapods. Ponieważ statyczne cele wydają się trudne w użyciu z Cocoapods, chcę po prostu zbudować projekt w zwykły sposób. Zrobiłem podspec dla Proj.4
. Po napisaniu podfile dla SpatialLite
dostałem ostrzeżenia:
[!] The target `SpatialiteIOS [Debug]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug - Release]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug - Release]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
Przeczytałem ten problem, ale nie mam pojęcia, co oznaczają ostrzeżenia i co mogę zrobić, aby to naprawić.
Dodatkowo problem, gdy otwieram obszar roboczy, a także otwieram sam projekt SpatiaLite, oba są ukierunkowane na Mac OSX 64, gdy ma to być projekt na iOS. Mój plik podfile mówi „platforma: ios”.
Odpowiedzi:
To zdecydowanie działa przez większość czasu:
Przejdź do celu Ustawienia budowania -> Inne flagi linkera -> kliknij dwukrotnie. Dodaj
$(inherited)
do nowej linii.Jeśli masz problem z „... celem zastępuje ustawienie kompilacji GCC_PREPROCESSOR_DEFINITIONS zdefiniowane w ...”, musisz dodać $ (odziedziczony) do docelowych ustawień kompilacji -> Makra preprocesora
źródło
GCC_PREPROCESSOR_DEFINITIONS
ustawienie kompilacji zdefiniowane w ...”, musisz dodać $ (odziedziczony) do swojego docelowego ustawienia kompilacji -> Makra preprocesora$(inherited)
jest już w górnej linii, ale dla mnie to nie działa: /Istnieje konflikt między ustawieniami kompilacji a domyślnymi ustawieniami kompilacji, których chce Cocoapods. Aby zobaczyć ustawienia kompilacji Cocoapods, przejrzyj pliki .xcconfig w Pods / Docelowe pliki obsługi / Pods - $ {NAZWA PROJEKTU} / w swoim projekcie. Dla mnie ten plik zawiera:
Jeśli jesteś zadowolony z ustawień Cocoapods, przejdź do Ustawień kompilacji dla swojego projektu, znajdź odpowiednie ustawienie i naciśnij klawisz Delete. Spowoduje to użycie ustawienia z Cocoapods.
Z drugiej strony, jeśli masz niestandardowe ustawienie, którego musisz użyć, dodaj $ (dziedziczone) do tego ustawienia.
źródło
Widziałem te 3 błędy komendy pod w terminalu
Wszystkie te 3 błędy zniknęłyby po dodaniu $ (odziedziczonej) do
w Projekcie -> Cel -> Ustawienia kompilacji
A teraz polecenie będzie działać bez żadnych błędów
źródło
Other Linker Flags
nie była wystarczająca.W swoim projekcie znajdź
Target -> Build Settings -> Other Linker Flags
, wybierzOther Linker Flags
, naciśnijdelete
(Klawiatura Mac) /Backspace
(Normalna klawiatura), aby przywrócić ustawienie. Mi to pasuje.Przykład:
Przed
Po
źródło
Miałem podobny problem podczas uruchamiania
pod install
, widziałem następujące ostrzeżenia / błędy (związane zCLANG_CXX_LIBRARY
):Błąd / Ostrzeżenie od Cocoapods
Poprawka
Project
, abyś mógł zobaczyćBuild Settings
.Target
(AppName
poniżejTargets
)C++ Standard Library
(najprawdopodobniej będzie w stanie ZŁOTA - oznacza to, że zostało zastąpione).Linia nie powinna być już pogrubiona, a po uruchomieniu
pod install
ostrzeżenia / błędy powinny zniknąć.Pomoc wizualna
źródło
Jeśli Xcode narzeka podczas łączenia, np. Nie znaleziono biblioteki dla -lPods, nie wykrywa ukrytych zależności:
Przejdź do produktu> edytuj schemat Kliknij kompilację Dodaj bibliotekę statyczną Pods Wyczyść i skompiluj ponownie
źródło
Dla mnie problem dotyczył testów celów. Miałem już
$(inherited)
flagę w głównym celu aplikacji.Dodałem go do flag MyAppTests Other Linker. Po tym, jak uruchomiłem,
pod install
komunikat ostrzegawczy zniknął.źródło
Pierwsza linia linku poniżej uratowała mi dzień:
https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods#faq
Nie zapomnij także wstawić tej linii na początku pliku pod:
źródło
Dodałem $ (odziedziczony), ale mój projekt wciąż się nie kompilował. Dla mnie problemem była flaga „Kompiluj tylko dla aktywnej architektury”, musiałem ustawić ją na TAK.
źródło