Xcode 7 wprowadza Bitcode , który jest rodzajem pośredniego pliku binarnego LLVM, co oznacza, że serwery Apple mogą przekompilować moją aplikację dla różnych architektur bez mojego udziału.
W Lookback rozpowszechniam statyczną strukturę archiwum wraz z naszą biblioteką. Wygląda na to, że kiedy budujesz za pomocą czegoś innego niż „Build & Archive”, kod bitcode nie jest w rzeczywistości emitowany do mojej biblioteki, a każdy, kto łączy się z moją biblioteką w swojej aplikacji i spróbuje utworzyć kompilację i archiwizację z włączonym Bitcode, otrzyma jeden z dwa ostrzeżenia:
ld: 'Lookback(Lookback.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target.
(jeśli biblioteka jest zbudowana z Xcode 6)ld: warning: full bitcode bundle could not be generated because 'Lookback(Lookback.o)' was built only with bitcode marker. The library must be generated from Xcode archive build with bitcode enabled (Xcode setting ENABLE_BITCODE)
(jeśli biblioteka jest zbudowana z Xcode 7 z normalnym xcodebuild)
Mam skrypt kompilacji, który buduje uniwersalny plik binarny urządzenie + symulator, więc nie mogę używać funkcji Build & Archive, ale raczej uruchamiam xcodebuild
z wiersza polecenia z mojego skryptu. Jak mogę xcodebuild
wygenerować odpowiednią bibliotekę obsługującą bitcode?