crt1.3.1.o
to biblioteka, która była zawarta w starszych wersjach iOS (i tym samym ich SDK), ale nie jest już obecna w nowszych pakietach SDK. Jednak, gdy docelowy obszar wdrażania projektu jest ustawiony na starszy iOS (< 6.0, jak wykrył @Sandy), Xcode nadal próbuje połączyć się z nim.
Aby w dalszym ciągu obsługiwać iOS 5.x w nowszych wersjach Xcode, wystarczy skopiować crt1.3.1.o
ze starszego kodu Xcode do odpowiedniego katalogu …/usr/lib/
w nowszym Xcode. Xcode użyje tylko crt1.3.1.o
, jeśli docelowym wdrożeniem jest < 6.0- dla projektów z docelowym wdrożeniem ≥6.0 crt1.3.1.o
pozostaje niewykorzystany, a wynikowy połączony plik binarny jest identyczny z tym, który był wcześniejszy - add-…/usr/lib/crt1.3.1.o
.
Aby uzyskać nowszą Xcode prawidłowo powiązać projekt z docelowym wdrażania 5.x iOS:
Pobierz starszą Xcode, że nadal ma crt1.3.1.o
z https://developer.apple.com/downloads/.
Użyłem Xcode 5.1.1, chociaż powinien działać jakikolwiek Xcode z obsługą iOS 5.x (który, according to Wikipedia powinien być Xcode 4.2-6.4).
Otwórz Xcode .dmg
i na obrazie dysku znajdź plik pod numerem /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS….sdk/usr/lib/crt1.3.1.o
.
Odkąd używałem Xcode 5.1.1, mój był pod numerem …/iPhoneOS7.1.sdk/usr/lib/crt1.3.1.o
.
Skopiuj do tego samego katalogu Xcode.app
w twoim nowym Xcode: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/crt1.3.1.o
.
Mój nowszy-Xcode w chwili pisania jest najnowszym wydaniem, Xcode 8.1 (który out-of-the-box obejmuje iOS 10.1 SDK i wsparcie do pobrania iOS Simulator z powrotem do iOS 8.1).
Należy pamiętać, że trzeba ponownie wykonać czynności po każdym uaktualnieniu Xcode, ponieważ standardowy proces aktualizacji Xcode jest po prostu zdmuchnąć Xcode.app
a wszystko zawarte w zaktualizowanym Xcode.app
.
Należy również pamiętać, że pomyślnie przetestowałem to za pomocą Xcode 8.1, aby utworzyć aplikację z docelową wersją wdrożenia na system iOS 5.0, która będzie działać zarówno na moim iOS 10.1.1 iPad Air 2 & iOS 6.1.3 na iPhone 4S. Nie przesłałem jednak kompilacji wykorzystującej ten proces do sklepu z aplikacjami na iOS. Chociaż jest mało prawdopodobne, że certyfikacja Apple będzie miała problem z tym (ponieważ jest to przecież ich własna biblioteka iOS crt1.3.1.o
, a ponieważ nie ma innego sposobu na zbudowanie aplikacji na najnowszym SDK przy jednoczesnym wspieraniu iOS z powrotem do 5.x, co jest prawie na pewno czymś, co wciąż robią niektórzy klienci korporacyjni), Nie mogę tutaj wyrazić stanowczej obietnicy.
się linker nie może znaleźć biblioteki, której szuka. Może to być podobne do http://stackoverflow.com/questions/1471968/xcode-linker-error-library-not-found-for-ladmobdevice –