Mam projekt iOS w Xcode. Zawiera on ładunek połączonych bibliotek, w tym GoogleInteractiveMediaAds.framework, a także wewnętrzną bibliotekę odtwarzacza, która, jak sądzę, jest również powiązana z tą strukturą. Oba są również plikami binarnymi osadzonymi.Klasa GAD_GTMStringEncoding jest zaimplementowana w obu <framework> i <app>. Jeden z dwóch będzie użyty. Która z nich jest niezdefiniowana?
Projekt kompiluje dobrze, ale przy starcie pojawia się następujący błąd:
Class GAD_GTMStringEncoding is implemented in both /GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds and APP_PATH. One of the two will be used. Which one is undefined.
Na symulatorze aplikacja działa zgodnie z oczekiwaniami za każdym razem, pomimo tego ostrzeżenia - Pojawia się pre-roll, mid-roll i post wyświetlać reklamy, których oczekuję. Każdego razu. Na urządzeniu to inna historia, czasami reklamy działają, a czasem nie. Mam świadomość, że powyższy problem powoduje różne zachowanie różnych celów i podejrzewam, że ten konflikt jest odpowiedzialny za zepsutą funkcjonalność urządzeń.
Rozwiązania, które tutaj znalazłem, sugerują zmianę przestrzeni nazw lub usunięcie powiązania z mojej aplikacji lub biblioteki, z którą się łączę. Problem jest, jeśli usunąć osadzonego pliku binarnego w moim projekcie to nie skompilować:
dyld: Library not loaded:
@rpath/GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds
Referenced from: APP_PATH
Reason: image not found
(lldb)
Widziałem kilka osób sugerują, co byłoby usunięcie powiązania z aplikacji i korzystania z wewnętrznej instancji odtwarzacza (gdzie wtedy muszę mieć nadzieję, że odtwarzacz jest skompilowany w porównaniu z wersją, której potrzebuję), ale jak do licha to robisz? A czy to zadziała nawet w tym przypadku?
Czy istnieje sposób sprawdzenia, skąd pochodzi ta druga instancja GoogleInteractiveMediaAds.framework? Zakładam tylko, że jest w wewnętrznej bibliotece odtwarzacza, ale nie wiem na pewno, bo nie mam źródła. Komunikat o błędzie zapewnia mi tylko ścieżkę do skompilowanej aplikacji, co jest mało przydatne, ponieważ w środku znajduje się 30 połączonych bibliotek.
Z góry dziękuję.