Wymuś użycie xcodebuild tylko dla konkretnego zestawu SDK


2

Próbuję naprawić formułę homebrew, która używa xcodebuild zbudować zależność. Niestety zależność ta zależy od starszego zestawu SDK, MacOSX10.12.sdk. Nie mogę sprawić, by ten projekt używał nowszego zestawu SDK, ponieważ wymagałoby to ogromnej refaktoryzacji bazy kodu. Co więcej, ta biblioteka pochodzi od Apple i zdecydowali się na celowe upuszczenie jej w najnowszym SDK Xcode.

Na szczęście udało mi się znaleźć zestaw SDK, którego potrzebuję to repozytorium na Github. Jednak teraz nie wiem, jak zmusić xcodebuild korzystać z zestawu SDK, którego potrzebuję. Bez względu na to, jakie opcje lub zmienne ustawię, xcodebuild zawsze używa domyślnego zestawu SDK z Xcode.

Wersja używanego przeze mnie systemu to 10.12.6. Tak, mimo że sama wersja systemu to 10.12, Xcode odmawia użycia zestawu SDK, który pasuje do tej wersji.

Więc jak mogę zmusić xcodebuild korzystać z mojego starszego zestawu SDK w moim własnym katalogu?

Odpowiedzi:


1

Uruchom xcodebuild w ten sposób:

xcodebuild -sdk "/path/to/sdk/" -project myproj.xcodeproj

Próbowałem już -sdk flaga. xcodebuild wciąż wywołuje clang z flagami takimi jak -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk i -mmacosx-version-min=10.13. To również wywołuje libtool z MACOSX_DEPLOYMENT_TARGET=10.13 i -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
GDP2

Czy na pewno nie ustawiłeś tych ścieżek do 10.13 SDK w samym xcodeproj?
jksoegaard

Nie jestem tego pewny. Gdzie mogę znaleźć te ścieżki w Xcode?
GDP2

W ustawieniach kompilacji - ale najpierw polecam przeglądanie plików projektu Xcode za pomocą prostego edytora tekstu.
jksoegaard

1
Dziękujemy za sugestie. Wygląda na to, że masz rację; w ustawieniach projektu staraj się zawsze używać najnowszego zestawu SDK i staraj się zawsze wdrażać do najnowszej wersji systemu. Na szczęście, ilovezfs (jeden z opiekunów homebrew) pomógł mi rozwiązać problem bez konieczności używania starszego SDK ustawiając niektóre zmienne środowiskowe. Wyjaśnia to tutaj. Próbowałem już robić to, co on zrobił, ale myślę, że spieprzyłem to, próbując użyć starszego SDK.
GDP2
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.