Ramy Nie znaleziono MapKit

głosy
1

Używam Xcode 3.2.1 w projekcie, gdzie bazowa SDK iPhone Device 3.0 i iPhone OS Deployment cel jest iPhone OS 2.0 , innymi słowy wstecznie kompatybilne aplikacji.

Problemem jest MapKit Framework . Jest on dodawany jako Słaby połączonej biblioteki , ale aplikacja po prostu nie odwołuje się do „Device - 2.2.1” target. I zabrakło pomysłów ... Co jeszcze mogę zrobić, ale oznaczyć bibliotekę jako „słaby” powiązane? Jest stosowany pierwotnie do pracy, ale nie dłużej.

Oto część z linii poleceń, który wygląda dobrze do mnie:

-framework Foundation -framework UIKit -framework CoreGraphics
 -weak_framework CoreLocation -weak_framework MapKit

notatka o błędzie:

ld: framework not found MapKit
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.0 failed with exit code 1
Utwórz 16/12/2009 o 12:50
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
1

Właśnie w celu wyjaśnienia problemu i rozwiązanie:

Problem: Chciałem stworzyć wstecznie kompatybilne aplikację , która będzie działać na obu urządzeniach 2.x oraz 3.x iPhone OS. Byłoby korzystania z poszczególnych funkcji 3.x kiedy będzie dostępny np MapKit.

Rozwiązanie: ustawić "Base SDK iPhone jako urządzenie 3.0" i "iPhone OS docelowym wdrażania jako iPhone OS 2.0" . Podłącz urządzenie iPhone OS 2.x (mój był iPod Touch, gdzie mogę odmówić uaktualnienia do najnowszej dostępnej wersji oprogramowania iPoda) i wybierz w lewym górnym rogu na docelowy jako „Device - 3,0” - nawet wtedy, gdy podłączone urządzenie nie jest kompatybilne 3.0 w ogóle !!!

Dość mylące, wygląda całkowicie non-logiczne w pierwszym, ale tak właśnie to działa!

Odpowiedział 17/12/2009 o 08:23
źródło użytkownik

głosy
1

Spróbuj MailComposer przykładowy projekt firmy Apple, który robi coś podobnego z ramami MessageUI. Co może trzeba zrobić, to ustawić SDK Base, aby 2.2.1 zamiast 2,0.

Odpowiedział 17/12/2009 o 06:20
źródło użytkownik

głosy
1

Aby uruchomić aplikację na 2.2.1, nie trzeba wybierać 2.2.1 w tym menu, po prostu zostawić „Active SDK” ustawiony na 3,0 lub poza nią.

Odpowiedział 16/12/2009 o 18:47
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more