2012-03-25 6 views
9

Wstęp

W bieżącym projekcie pracuję nad używamy ChartBoost SDK dla popop reklamach. Od pewnego czasu używamy tego zestawu SDK bez żadnego problemu. Jest to bardzo prosta biblioteka, która zawiera tylko 1 plik nagłówkowy o nazwie "ChartBoost.h", a także plik "libChartBoost.a".

Teraz właśnie zaktualizowaliśmy pliki SDK o nową wersję. To, co tutaj zrobiłem, to po prostu usunięcie starych plików SDK z projektu przez "Przenieś do kosza". To, co zrobiłem później, to po prostu przeniesienie nowych plików SDK do projektu, dodając ich referencje.

Problem

Zaraz po robi to i kompilowania projektu, nagle dostać 2 linkami błędów. Oto zrzut ekranu z nim:

Screenshot

Próbowałem prawie wszystko mogę myśleć, aby spróbować usunąć błąd. Oczyściłem projekt i folder projektu, a także próbowałem usunąć pochodne dane projektu przez okno organizatora.

Jestem prawie pewien, że ma to coś wspólnego z linkerem próbującym użyć referencji starych plików? Ale nie jestem pewien, w jaki sposób mógłbym uzyskać to, aby usunąć te niepoprawne odniesienia.

Czy jest tu ktoś, kto ma pojęcie, jak rozwiązać ten problem?

[EDIT] Łączenie ChartBoost.a do binarnego

Spróbowałem więc łącząc plik ChartBoost.a do binarnego poprzez zakładkę „budować fazą”. To było pozbyć się dwóch oryginalnych błędów chociaż ujawnił 8 nowych, pokazano na poniższym zrzucie ekranu:

Linking errors 2

Nie jestem pewien, co to rodzaj błędów łączących mają oznaczać niestety :(Anyone jakieś pomysły?

+0

Wygląda na to, że brakuje Ci jakiejś biblioteki lub używania ARC i korzystania z biblioteki, zatrzymaj itd. – mientus

+2

BTW: Lepszym sposobem na uaktualnienie byłoby po prostu zastąpienie ChartBoost.h i libChartBoost.pliki, gdziekolwiek aktualnie znajdują się na dysku (czyli wszędzie tam, gdzie wskazują odwołania do plików Xcode). Nie musiałbyś zmieniać niczego innego. –

+0

Dzięki za podpowiedź Kurt Revis :) – CodingBeagle

Odpowiedz

12

w celu swojej aplikacji, należy szukać w „Build fazy”, w „link binarne z bibliotekami” fazy.

powinna ona obejmować libChartBoost.a.

Jeśli d o nie, naciśnij przycisk + i wybierz opcję libChartBoost.a.

Jestem prawie pewien, że ma to coś wspólnego z linkerem próbującym użyć referencji starych plików?

Nie. Usunięto stare pliki z projektu, a także odniesienie w fazie kompilacji "Link Binary With Libraries". Po dodaniu nowych plików do projektu nie dodałeś tego odniesienia.

+0

Zaktualizowałem oryginalne pytanie ze szczegółami i zrzutami ekranu wyników. Pozbył się dwóch oryginalnych problemów, ale ujawnił 8 nowych – CodingBeagle

+2

Spójrz na problematyczne nazwy klas i zrób trochę badań. SCNetworkReachabilityXXX jest w systemie iOS 'SystemConfiguration', więc dodaj go do swoich połączonych bibliotek. 'SBJson3Parser' jest biblioteką analizatora składni JSON używaną przez' libChartBoost'. Zobaczysz wszystkie te pliki w folderze 'JSON3' w [najnowszej wersji zestawu SDK ChartBoost] (http://www.chartboost.com/support/sdk)? Dodaj je do swojego projektu! –

+0

Cóż, dodanie SystemConfiguration Network zrobiło lewę dla 6 błędów. Teraz jedyny problem, jaki pozostaje, to fakt, że ponownie otrzymuję oryginalny błąd, tylko tym razem z "SBJson3Parser", który najwyraźniej znajduje się w bibliotece libChartBoost.a. Jedynym problemem jest to, że folder JSON3 dołączony do biblioteki ChartBoost nie zawiera żadnego pliku biblioteki. Zawarłem ten folder jako część projektu. To jest po prostu bardzo dziwne, ponieważ kiedy zaimplementowaliśmy ChartBoost po raz pierwszy, nie musieliśmy się tym przejmować. – CodingBeagle