2017-03-07 11 views
5

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ę.

Odpowiedz

0

Po początkowym naleganiu, że problem znalazł się gdzieś w naszym kodzie, zespół Google odpowiedzialny za te ramy został ostatecznie zmuszony do przyznania (po dostarczeniu przykładowej aplikacji), że był to problem z kodem, a nie naszym. Został rozwiązany w aktualizacji.

Powiązane problemy