Xcode 27 już dostępny: wymagania, minimalne wersje docelowe i co się zepsuło

Xcode 27 ukazał się 14 września 2026 roku jako kompilacja 27A266a, trzy dni po wpisie „iOS 27.0 RC” w kanale wydań i równolegle z iOS 27.0 (24A437), macOS 27.0 (26A428) oraz resztą platform 27; tego samego dnia App Store Connect zaczął przyjmować kompilacje zbudowane z finalnymi SDK 27.0 (GA), po tym jak od 9 września przyjmował kompilacje z SDK RC.15 Wymaga macOS Tahoe 26.6 lub nowszego oraz Maca z Apple silicon, zawiera Swift 6.4 i SDK 27, debuguje urządzenia z iOS 17 lub nowszym i podnosi trzy minimalne wersje docelowe: macOS 12, watchOS 9 i DriverKit 21.23 Istniejącym projektom przynosi trzy twarde błędy (makro @State, niezgodność źródłową z SE-0508 i flagę linkera -ld64), jedną regułę skanowania zależności, która może zgłosić błąd, jedną cichą zmianę w ARCHS_STANDARD i dwa ostrzeżenia; poniżej uruchamiam na 27A266a każde z nich.246

TL;DR

  • Daty i kompilacje. Kanał wydań Apple wymienia Xcode 27 (27A266a) i wszystkie sześć systemów 27.0 pod datą poniedziałku 14 września; wpis „iOS 27.0 RC (24A437)” nosi datę piątku 11 września, dwa dni po tym, jak App Store Connect zaczął przyjmować przesyłki z SDK RC, a wersja GA ma ten sam numer kompilacji.15 Własne noty wydania App Store Connect z 14 września mówią, że można już przesyłać aplikacje zbudowane w Xcode 27 zarówno do sklepu, jak i do TestFlight.5
  • Wymagania i progi poszły w górę. Xcode 26.6 działał na macOS 26.2 i debugował urządzenia z iOS 15; Xcode 27 potrzebuje macOS 26.6, działa wyłącznie na Apple silicon i debuguje iOS 17, tvOS 17 oraz watchOS 10 lub nowsze, zarówno w symulatorze, jak i na sprzęcie. Minimalne wersje docelowe rosną z macOS 11 do 12, z watchOS 8 do 9 i z DriverKit 20 do 21; iOS, iPadOS i tvOS zostają na 15, a visionOS na 1.23
  • Trzy twarde błędy. Makro @State: własny przykład Apple, inicjalizator przypisujący właściwość @State z wartością nadaną w deklaracji przed pozostałymi właściwościami przechowywanymi, kończy się błędem variable 'self.title' used before being initialized; właściwość obliczana z literałem tablicy lub słownika jako wartością początkową i akcesorem init nie kompiluje się, gdy getter stoi pierwszy, co Apple przypisuje SE-0508 jako niezgodność źródłową; a flaga linkera -ld64, udokumentowana w Xcode 15, przerywa linkowanie błędem ld: library 'd64' not found.2468
  • Cztery zmiany, które ostrzegają, mogą zgłosić błąd albo milczą. Linker ignoruje -ld_classic z ostrzeżeniem, bo ld64 zniknął; zduplikowane nazwy modułów Clang w obrębie jednego skanowania zależności „may report an error” (mogą zgłosić błąd); target wyłącznie dla macOS ustawiony na 27.0 buduje tylko arm64, dopóki nie doda się z powrotem x86_64, i nic nie ostrzega; a PreviewProvider nosi oznaczenie przestarzałości od 27.0 z komunikatem „Use #Preview instead.”, podczas gdy każdy modyfikator podglądu ma własny komunikat o zamienniku, a kompilator nie pokazuje żadnego z nich poniżej deployment target 27.0.24
  • Apple nie wydało Xcode 27.1 według stanu na 15 września. Nie wymienia go ani kanał wydań, ani indeks not wydania, a strona Apple dla deweloperów iPhone Duo wciąż datuje betę 27.1 na „later this month” (jeszcze w tym miesiącu); luka SDK opisana w moim wpisie o Duo dla deweloperów nadal istnieje.1 (17 września: 27.1 wciąż nie ma, ale 16 września ukazała się beta Xcode 27.2, a jej noty wskazują 27.1 jako wydanie, które niesie SDK iPhone Duo; szczegóły w aktualizacji poniżej.9) (19 września: beta Xcode 27.1 (27A9269) wyszła 18 września z SDK iOS 27.1; druga aktualizacja poniżej zawiera jej uwagi.10) (1 października: wciąż jest tylko ta pierwsza beta 27.1.11) (11 października: Xcode 27.1 RC (27A9275) ukazał się 5 października jako wersja RC, nie wydanie finalne; wpis App Store Connect z tego dnia brzmi „You can now upload apps built with Xcode 27.1 RC using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (można już przesyłać aplikacje zbudowane w Xcode 27.1 RC z SDK iOS 27.1 i SDK 27.0 pozostałych platform, do App Store oraz do testów wewnętrznych i zewnętrznych w TestFlight).12) (14 października: wyszedł Xcode 27.2 beta 3 (27B5038j); Xcode 27.1 wciąż jest na etapie RC, a aktualnym wydaniem pozostaje Xcode 27; czwarta aktualizacja poniżej omawia uwagi do bety 3.13) (15 października: Xcode 27.1 (27A9275) jest wydaniem finalnym, z numerem kompilacji RC, z godziną 13:00 czasu pacyficznego w kanale wydań; strona z uwagami zmieniła tytuł, a wpis App Store Connect z tego dnia przyjmuje jego buildy do sklepu pod tą nazwą; Xcode 27 nie jest już najnowszym wydaniem.14)

Aktualizacja, 17 września: beta 27.2 wyszła pierwsza, a 27.1 ma zadanie

Kanał wydań Apple datuje pełną falę bet 27.2 na środę 16 września: Xcode 27.2 beta (27B5019j), iOS i iPadOS 27.2 beta (24B5084k), macOS 27.2 beta (26B5086k), tvOS 27.2 beta (24K5088l), visionOS 27.2 beta (24N5088l) i watchOS 27.2 beta (24S5086l), do tego aktualizację TestFlight, a żaden wpis w kanale nie wymienia 27.1.9 Noty wydania bety Xcode 27.2 tłumaczą tę lukę jednym zdaniem: „The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.” (SDK iOS i obsługa symulatora dla iPhone Duo będą dostępne jeszcze w tym miesiącu w nadchodzącym wydaniu Xcode 27.1). A zatem 27.1 niesie SDK iPhone Duo, 27.2 to osobna beta z własnymi nowościami, a beta zachowuje próg z GA: „Xcode 27.2 beta requires a Mac running macOS Tahoe 26.6 or later.” (beta Xcode 27.2 wymaga Maca z macOS Tahoe 26.6 lub nowszym).9

Dwa wpisy z not tej bety uzupełniają niniejszy wpis, a cytowany niżej znany problem ze środowiskami symulatora, 141290052, pozostaje w 27.2 otwarty. W sekcji Project Format: „Xcode now supports a JSON-based project format (.xcproj) that’s more readable, merge-friendly, and easier for coding agents to edit,” (Xcode obsługuje teraz oparty na JSON format projektu .xcproj, czytelniejszy, przyjazny scalaniu i łatwiejszy do edycji dla agentów kodujących), włączany w inspektorze pliku, oraz „Projects using .xcproj also open in earlier versions of Xcode 27.” (projekty w formacie .xcproj otwierają się też we wcześniejszych wersjach Xcode 27). W sekcji SDK, pod nagłówkiem Known Issues: „macOS, watchOS, tvOS, and visionOS SDKs in Xcode 27.2 incorrectly report 27.1 as a valid deployment target,” (SDK macOS, watchOS, tvOS i visionOS w Xcode 27.2 błędnie zgłaszają 27.1 jako prawidłowy deployment target), z „unexpected behavior if this deployment target is used,” (nieoczekiwanym zachowaniem, jeśli ten deployment target zostanie użyty), oraz „Mac Catalyst builds with a 27.1 or 27.2 deployment target may be unable to use newly introduced API.” (kompilacje Mac Catalyst z deployment target 27.1 lub 27.2 mogą nie mieć dostępu do nowo wprowadzonych API).9 Apple dodało też jeden znany problem do samych not Xcode 27, między moimi pobraniami z 16 i 17 września, w sekcji Enhanced Security: „Apps with Hardware-Checked Pointer Arithmetic Slice feature enabled cannot be uploaded to the App Store on macOS Tahoe 26.6 with Xcode automatic signing enabled.” (aplikacji z włączoną funkcją Hardware-Checked Pointer Arithmetic Slice nie da się przesłać do App Store na macOS Tahoe 26.6 przy włączonym automatycznym podpisywaniu w Xcode). Obejście brzmi: „Distribute with macOS 27 and Xcode 27 or use manual signing.” (dystrybuować z macOS 27 i Xcode 27 albo użyć podpisywania ręcznego). Mój wpis o arm64e.x1 go odnotowuje.9 Nic w notach bety 27.2 nie dotyka linkera, reguły unikatowej nazwy modułu, makra @State ani opisanych niżej oznaczeń przestarzałości w podglądach; trzy pierwsze mieszkają w notach Xcode 27, a wpis o @State w notach iOS i iPadOS 27, i cytowane tutaj wpisy z not Xcode 27 brzmią 17 września tak samo jak 15 września.69

Aktualizacja, 19 września: beta Xcode 27.1 wyszła, z SDK iOS 27.1

Kanał wydań Apple datuje betę Xcode 27.1 (27A9269) na piątek 18 września, dwa dni po fali bet 27.2, a indeks informacji o wydaniu Xcode wymienia teraz trzy pozycje z serii 27: Xcode 27, Xcode 27.1 Beta i Xcode 27.2 Beta.10 Uwagi do bety 27.1 są krótkie. Ich Overview: „Xcode 27.1 beta includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27,” (beta Xcode 27.1 zawiera Swift 6.4 oraz SDK dla iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27 i visionOS 27), z tymi samymi dolnymi granicami debugowania na urządzeniu co w 27.0 i tym samym wymaganiem, „a Mac running macOS Tahoe 26.6 or later.” (Mac z macOS Tahoe 26.6 lub nowszym). Tę listę SDK należy czytać dosłownie, z jednym zgrzytem: Overview podaje iPadOS 27, podczas gdy wiersz App Store Connect poniżej i strony API Apple mówią o iPadOS 27.1 beta; cytuję oba zapisy, zamiast rozstrzygać. iOS 27.1 to wydanie, z którym według wpisu Apple z 16 września iPhone Duo „will run” (będzie działać) w dniu premiery 23 października.10 Informacje o wydaniu App Store Connect zawierają pasujący wiersz z 18 września, w sekcji TestFlight: „You can now submit apps built with Xcode 27.1 beta using the SDK for iOS 27.1 beta or iPadOS 27.1 beta for internal and external testing.” (można już przesyłać aplikacje zbudowane betą Xcode 27.1 z SDK iOS 27.1 beta lub iPadOS 27.1 beta do testów wewnętrznych i zewnętrznych)10 Między moimi pobraniami z 17 i 19 września Apple przepisało też Overview uwag do bety 27.2: zdanie cytowane w aktualizacji powyżej, „The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1,” zniknęło, a w jego miejscu pojawiła się ramka „Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo,” (pobierz betę Xcode 27.1, aby uzyskać SDK iOS i obsługę iPhone Duo w symulatorze) z odnośnikiem do strony pobierania.10 Dokumentacja Apple podaje teraz pięć interfejsów API iPhone Duo jako iOS 27.1, w becie; nazwy są w moim wpisie dla deweloperów Duo.

Uwagi do bety 27.1 mają trzy sekcje, a dwie z nich to Known Issues. W sekcji Mac Catalyst: „Projects that use APIs specific to iOS 27.1 show compile errors when building for Mac Catalyst (“undeclared identifier”, “not found”, “has no member”, “cannot find”, etc).” (projekty używające API właściwych dla iOS 27.1 pokazują błędy kompilacji przy budowaniu dla Mac Catalyst) (185924957), z obejściem „Use build-time conditionals like #if !targetEnvironment(macCatalyst) (Swift) or #if !TARGET_OS_MACCATALYST (ObjC) to isolate affected code,” (odizolować dotknięty kod warunkami kompilacji), oraz „Projects that target iOS 27.1 show no Mac Catalyst run destination available.” (projekty celujące w iOS 27.1 nie pokazują żadnego miejsca uruchamiania Mac Catalyst) (187046347), z obejściem „Add a Mac Catalyst 27.0 minimum deployment in target settings.” (dodać minimalne wdrożenie Mac Catalyst 27.0 w ustawieniach targetu). Stoją obok znanego problemu SDK bety 27.2 cytowanego w aktualizacji z 17 września, 187160501, który w moim odczytaniu jest tą samą luką 27.1 widzianą od strony SDK macOS. W sekcji Simulator trzy Known Issues: „Initial Simulator launch can take several minutes.” (pierwsze uruchomienie symulatora może potrwać kilka minut) (187708500), „StandBy is unavailable in the iPhone Duo Simulator runtime.” (StandBy jest niedostępny w środowisku symulatora iPhone Duo) (187708663) i „Running and debugging most app extensions is unavailable in the iPhone Duo Simulator runtime.” (uruchamianie i debugowanie większości rozszerzeń aplikacji jest w tym środowisku niedostępne) (187708767). Trzecia sekcja, Previews, zawiera jedną New Feature: „The canvas overrides picker now includes a Display group for previewing content on a device’s alternative display.” (selektor nadpisań kanwy zawiera teraz grupę Display do podglądu treści na drugim wyświetlaczu urządzenia) (182598534).10 Nic w uwagach do bety 27.1 nie dotyka linkera, reguły nazw modułów, makra @State ani wycofań podglądów opisanych niżej, a uwagi do Xcode 27 pobrane ponownie 19 września brzmią tak samo jak 17 września.10

Do tego wpisu należy jeszcze jedna data, z wpisu Apple z 9 września o zgłoszeniach do App Store: „Starting April 2027, apps and games uploaded to App Store Connect need to meet the following minimum requirements: iOS and iPadOS apps must be built with the iOS 27 & iPadOS 27 SDK or later,” (od kwietnia 2027 aplikacje i gry przesyłane do App Store Connect muszą być zbudowane z SDK iOS 27 i iPadOS 27 lub nowszym), przy czym aplikacje tvOS, visionOS i watchOS obowiązują tak samo ich SDK 27. Strona Upcoming Requirements Apple nie wymieniała tego na 19 września; jej najnowsza pozycja to nadal próg z 28 kwietnia 2026, Xcode 26 i SDK 26. SDK 27 opisane w tym wpisie stają się więc progiem przesyłania w kwietniu 2027.10

Aktualizacja, 1 października: Xcode 27.2 beta 2 i brak Xcode 27.0.1

Kanał wydań Apple datuje Xcode 27.2 beta 2 (27B5028f) na poniedziałek 28 września, ten sam dzień co aktualizacje 27.0.1 dla iOS, iPadOS, macOS, visionOS i watchOS. W kanale nie ma Xcode 27.0.1: aktualnym wydaniem pozostawał wtedy Xcode 27 (27A266a), a tekst jego strony z uwagami jest identyczny z moją kopią z 26 września.11 Uwagi do bety 2 dodają narzędzie MCP GetCodeCoverage, podają problemy z wejściem w Device Hub z pierwszej bety jako naprawione i nadal kierują pracę nad iPhone Duo do bety Xcode 27.1, choć same wymieniają dwa znane problemy iPhone Duo i powtarzają dwa wpisy z bety 27.1 cytowane w aktualizacji z 19 września, 185924957 i 182598534; wpis o 27.2 omawia je wpis po wpisie. Cytowany niżej problem ze środowiskami uruchomieniowymi symulatora, 141290052, figuruje w 27.2 beta 2 jako naprawiony; Xcode 27 nadal wymienia go jako Known Issue.11

Aktualizacja, 14 października: Xcode 27.2 beta 3, a ramki o Duo już nie ma

Kanał wydań Apple datuje Xcode 27.2 beta 3 (27B5038j) na środę 14 października, dzień po czwartych betach 27.2 dla iOS, iPadOS, macOS, visionOS i watchOS (tvOS czwartej bety nie dostał). Aktualnym wydaniem pozostawał wtedy Xcode 27 (27A266a), a Xcode 27.1 wciąż był na etapie RC z 5 października (15 października: Xcode 27.1 ukazał się tego popołudnia jako wydanie finalne, kompilacja 27A9275, czyli kompilacja RC; omawia to piąta aktualizacja poniżej), a tekst strony z uwagami do Xcode 27 nie zmienił się względem kopii, którą zapisałem 11 października.13 Uwagi do bety 3 usuwają ramkę, która kierowała pracę nad iPhone Duo do bety Xcode 27.1, i niczym jej nie zastępują, więc nic nie mówi, że SDK Duo przeszło do 27.2, a w moim odczytaniu buildem dla Duo pozostaje 27.1 RC; dodają dwie poprawki Interface Builder dla trybu kompilacji toolchain; przenoszą problem z klonowaniem symulatorów pod nagłówek Simulator Runtimes, z poleceniem find jako obejściem; a problem z ponowną instalacją środowiska uruchomieniowego, 187950199, przenoszą do rozwiązanych w becie 2; wpis o 27.2 omawia je wpis po wpisie. Cytowany niżej problem ze środowiskami uruchomieniowymi symulatora, 141290052, czyli inny wpis, nadal figuruje jako naprawiony w 27.2 beta 2 i nadal jest Known Issue na stronie Xcode 27. Wpis TestFlight w App Store Connect z tego samego dnia przyjmuje buildy z 27.2 beta 3 do testów, nie do sklepu.13

Aktualizacja, 15 października: Xcode 27.1 jest wydaniem finalnym, z kompilacją RC

Kanał wydań Apple datuje Xcode 27.1 (27A9275) na czwartek 15 października, godzinę 13:00 czasu pacyficznego, osiem dni przed premierą iPhone Duo 23 października; numer kompilacji to numer RC z 5 października.101214 Strona z uwagami nosi teraz tytuł „Xcode 27.1 Release Notes”, a jej Overview brzmi „Xcode 27.1 includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.” (Xcode 27.1 zawiera Swift 6.4 oraz SDK dla iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27 i visionOS 27), czyli tekst RC bez „RC”, a dwa znane problemy symulatora iPhone Duo pozostają. Wpis App Store Connect z tego samego dnia brzmi „You can now upload apps built with Xcode 27.1 using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (można już przesyłać aplikacje zbudowane w Xcode 27.1 z SDK iOS 27.1 i SDK 27.0 pozostałych platform, do App Store oraz do testów wewnętrznych i zewnętrznych w TestFlight) i dodaje „Submit your iPhone Duo optimized apps and games in App Store Connect today. Starting April 2027, any apps or games submitted will need to include screenshots for iPhone Duo.” (już dziś można przesyłać w App Store Connect aplikacje i gry zoptymalizowane pod iPhone Duo; od kwietnia 2027 każda zgłaszana aplikacja lub gra będzie musiała zawierać zrzuty ekranu dla iPhone Duo). Xcode 27 (27A266a) pozostaje w kanale jako wydanie z 14 września, a strona z uwagami do Xcode 27 nie zmieniła się względem kopii z 11 października. Wpis o 27.2 i wpis o przygotowaniu aplikacji na iPhone Duo zawierają tę samą notę.14

Aktualizacja, 26 października: systemy 27.2 wydane, a Xcode 27.2 to wciąż RC

Kanał wydań Apple datuje iOS 27.2 (24B119, z drugą kompilacją iOS 27.2, 24B91020, w tej samej minucie), iPadOS 27.2 (24B119), macOS 27.2 (26B123), tvOS 27.2 (24K122), visionOS 27.2 (24N120) i watchOS 27.2 (24S118) na poniedziałek 26 października, godzinę 10:00 czasu pacyficznego. Najnowszą pozycją Xcode w kanale nadal jest kandydat do wydania, Xcode 27.2 RC (27B48), z datą 19 października, godz. 10:00 czasu pacyficznego, a jego strona z uwagami nadal nosi tytuł „Xcode 27.2 RC Release Notes”, z Overview: „Xcode 27.2 RC includes Swift 6.4 and SDKs for iOS 27.2, iPadOS 27.2, tvOS 27.2, watchOS 27.2, macOS 27.2, and visionOS 27.2. Xcode 27.2 RC supports on-device debugging in iOS 17 and later, tvOS 17 and later, watchOS 10 and later, and visionOS. Xcode 27.2 RC requires a Mac running macOS Tahoe 26.6 or later.” (Xcode 27.2 RC zawiera Swift 6.4 oraz SDK dla wszystkich systemów 27.2, obsługuje debugowanie na urządzeniach z iOS 17 i nowszym, tvOS 17 i nowszym, watchOS 10 i nowszym oraz visionOS i wymaga Maca z macOS Tahoe 26.6 lub nowszym). Wpis App Store Connect z 20 października przyjmuje jego buildy: „You can now upload apps built with Xcode 27.2 RC using the SDK for iOS 27.2 RC, iPadOS 27.2 RC, macOS 27.2 RC, tvOS 27.2 RC, visionOS 27.2 RC, and watchOS 27.2 RC for the App Store, and for internal and external testing through TestFlight.” (można już przesyłać aplikacje zbudowane w Xcode 27.2 RC z SDK 27.2 RC, do App Store oraz do testów wewnętrznych i zewnętrznych w TestFlight). We wrześniu Xcode 27 ukazało się tego samego dnia co systemy 27.0; tym razem systemy ukazały się bez niego. Strona RC dodaje do strony bety 3 listę funkcji Device Hub (animację w zwolnionym tempie, symulowane potrząśnięcie, upadek i presję pamięci dla symulatorów, menu kontekstowe zrzutu ekranu, lepsze przeciąganie i upuszczanie ikony zrzutu ekranu, ukrywanie ramek urządzeń i grupę App Settings, 189236369), poprawki awarii Vision Pro bez runtime’u visionOS, pozycji menu ostrzeżenia o pamięci oraz zamykania się Device Hub na wcześniejszych betach macOS 27.2 (190126101), znany problem Device Hub, który „is unable to customize the text size for a device running iOS 18 or earlier” (nie potrafi dostosować rozmiaru tekstu na urządzeniu z iOS 18 lub starszym) (189261485), poprawkę symulatora iPhone Duo dla CameraCaptureAccessory używającego obu ekranów (190155353), nowy znany problem symulatora iPhone Duo, „When switching between the inner and outer display of the iPhone Duo simulator, modifier keys such as Shift and Command might stop working.” (przy przełączaniu między wewnętrznym a zewnętrznym ekranem symulatora iPhone Duo klawisze modyfikujące, takie jak Shift i Command, mogą przestać działać) (189465196), oraz po jednej poprawce dla Instruments, Memory Gauge i XCTest UI Automation. Znany problem SDK, według którego SDK macOS, watchOS, tvOS i visionOS „incorrectly report 27.1 as a valid deployment target” (błędnie podają 27.1 jako prawidłowy deployment target), się nie zmienił, podobnie jak wpis Mac Catalyst o „APIs specific to iOS 27.1”. Między tymi dwiema pozycjami Xcode ukazał się iPhone Duo: Apple Newsroom datuje jego debiut w sklepach na piątek 23 października, a strona Apple z wydaniami zabezpieczeń wymienia iOS 27.1 wyłącznie dla „iPhone Duo”, z datą 23 października i bez opublikowanych wpisów CVE; żadna pozycja iOS 27.1 nigdy nie trafiła do kanału, a indeks informacji o wydaniu wymienia tylko 27 i 27.2, więc SDK 27.1, które zawiera Xcode 27.1, na tym Macu kompilacja 24A94232, jest SDK wydania iOS, które ukazało się na jednym telefonie. TestFlight 4.4.1 z 22 października dodaje „Support for iPhone Duo.” Wpis o informacjach o wydaniu iOS 27.2 omawia uwagi do 27.2, a wpis o becie 27.2 zachowuje zapis bet.15

Co ukazało się 14 września?

Element Kompilacja Data w kanale
Xcode 27 27A266a pon. 14 wrz 2026
iOS 27.0 / iPadOS 27.0 24A437 pon. 14 wrz; wpis „iOS 27.0 RC (24A437)” w kanale nosi datę pt. 11 wrz, a App Store Connect przyjmował przesyłki z SDK RC od śr. 9 wrz
macOS 27.0 26A428 pon. 14 wrz
tvOS 27.0 24J361 pon. 14 wrz
visionOS 27.0 24M362 pon. 14 wrz
watchOS 27.0 24R364 pon. 14 wrz
App Store Connect „You can now upload apps built with Xcode 27 using the SDK for iOS 27.0, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (Można już przesyłać aplikacje zbudowane w Xcode 27 z SDK 27.0 do App Store oraz do testów wewnętrznych i zewnętrznych w TestFlight.) 14 wrz

Sekcja Overview not wydania brzmi: „Xcode 27 includes Swift 6.4 and SDKs for iOS 27, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27. Xcode 27 supports on-device debugging in iOS 17 and later, tvOS 17 and later, watchOS 10 and later, and visionOS. Xcode 27 requires a Mac running macOS Tahoe 26.6 or later.” (Xcode 27 zawiera Swift 6.4 i SDK 27, debuguje na urządzeniu od iOS 17, tvOS 17 i watchOS 10 i wymaga Maca z macOS Tahoe 26.6 lub nowszym.)2 Na tym Macu xcodebuild -version wypisuje Xcode 27.0 Build version 27A266a, a swift --version wypisuje Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1).4

Oś czasu cyklu 27: iPhone Duo zapowiedziany 9 września, iOS 27.0 RC 11 września, GA 14 września, bety 27.2 16 września, beta Xcode 27.1 z SDK iPhone Duo 18 września, wydanie Xcode 27.1 15 października (27A9275) oraz iPhone Duo trafiający do sprzedaży 23 października z systemem iOS 27.1.

Co zawierają informacje o wydaniu Xcode 27?

Informacje o wydaniu to jedna strona pod Xcode Release Notes w serwisie dokumentacji Apple dla deweloperów, i to strona długa: 41 obszarów z nagłówkami i 296 pozycji na listach, co po zliczeniu daje 134 nowe funkcje, 134 rozwiązane problemy, 19 znanych problemów i 9 oznaczeń przestarzałości. Najwięcej pozycji ma Instruments, bo 60, dalej Device Hub z 36, Coding Intelligence z 29, Previews z 27, Previews & Playgrounds z 18, Testing z 16 i Localization z 15. Dziewięć oznaczeń przestarzałości znajduje się pod C++ Standard Library, Device Hub, devicectl, Instruments, Intel Deprecation, Linking, On Demand Resources, Previews i USDKit; to wpisy z Linking i Intel zmieniają buildy, a sekcje poniżej je cytują. Liczby to moje własne zliczenie pozycji list pod każdym nagłówkiem, wykonane 26 września.2

Czego wymaga Xcode 27 w porównaniu z 26.6?

Tabela zgodności Apple to dokument, który warto sprawdzić przed aktualizacją maszyny budującej. Oba wiersze obok siebie:3

Xcode 26.6 Xcode 27
macOS do uruchomienia Tahoe 26.2 do 26.x Tahoe 26.6 lub nowszy, wyłącznie Apple silicon2
SDK iOS, tvOS, watchOS, visionOS, macOS 26.5; DriverKit 25.5 iOS, tvOS, watchOS, visionOS, macOS 27; DriverKit 27
Minimalne wersje docelowe iOS 15, tvOS 15, watchOS 8, visionOS 1, macOS 11, DriverKit 20 iOS 15, tvOS 15, watchOS 9, visionOS 1, macOS 12, DriverKit 21
Urządzenia do debugowania iOS 15, tvOS 15, watchOS 8, visionOS 1 lub nowsze iOS 17, tvOS 17, watchOS 10, visionOS 1 lub nowsze
Symulatory iOS 15, tvOS 15, watchOS 8, visionOS 1 lub nowsze iOS 17, tvOS 17, watchOS 10, visionOS 1 lub nowsze
Kompilator Swift 6.3 6.4 (tryby języka 6, 5, 4.2 i 4)

Za tymi wierszami kryją się dwie konsekwencje. Instruments odrzuca teraz urządzenia starsze niż iOS 17, watchOS 10 lub tvOS 17, więc stanowisko do profilowania zbudowane na starym iPhonie przestaje działać, zanim dojdzie do jakiegokolwiek kodu aplikacji.2 A interakcje klawiatury i wskaźnika w Device Hub Apple ogranicza jednym zdaniem: „only supported on the following OS versions and newer: macOS 15.0, iOS 18.0, tvOS 18.0, watchOS 11.0, visionOS 2.0.” (obsługiwane tylko w tych wersjach systemów lub nowszych).2

Wymóg Apple silicon nie ma obejścia dla Maca, na którym uruchamia się Xcode, i nie jest nowością dla nikogo, kto w lipcu czytał wpis o Intelu; noty GA zachowują lipcowe sformułowanie w całości: „Xcode 27 will only install and run on Apple silicon Macs. The macOS 27 SDK supports back deploying Universal (Intel and Apple Silicon) apps to macOS 12 and later. Intel development is still possible with macOS versions that support Rosetta like macOS 27.” (Xcode 27 instaluje się i działa wyłącznie na Macach z Apple silicon; SDK macOS 27 pozwala wdrażać aplikacje Universal wstecz aż do macOS 12; rozwój dla Intela pozostaje możliwy na wersjach macOS obsługujących Rosettę, takich jak macOS 27.)2 Trzecie zdanie to obejście dla Maców, na które się dostarcza, a nie dla tego, na którym się buduje.

Zmiany w Xcode 27 uporządkowane według tego, czy zatrzymują kompilację: kolejność inicjalizacji @State, kolejność akcesorów z SE-0508 i flaga -ld64 ją zatrzymują; -ld_classic, reguła skanowania nazw modułów, ARCHS_STANDARD przy celu 27.0 oraz modyfikatory PreviewProvider jej nie zatrzymują.

Co zmieniło się w łańcuchu narzędzi?

Linker. Noty GA ujmują to w jednym zdaniu: „The ld64 linker has been removed and the -ld_classic option is no longer supported.” (linker ld64 został usunięty, a opcja -ld_classic nie jest już obsługiwana).2 Tak to wygląda na 27A266a: katalog usr/bin łańcucha narzędzi zawiera jeden binarny linker, ld, który przedstawia się jako ld-27037.1 zbudowany 25 sierpnia 2026 roku. Podanie starej flagi nie przerywa linkowania. Przy hello.c z jedną linią int main(void){return 0;} polecenie clang hello.o -o hello_classic -Xlinker -ld_classic wypisuje ld: warning: -ld_classic is no longer supported and will be ignored, kończy się kodem 0 i zapisuje plik wykonywalny. Druga pisownia, którą Apple udokumentowało w Xcode 15, -ld64, wypada gorzej:8 clang hello.c -o hello_ld64 -Wl,-ld64 kończy się błędem ld: library 'd64' not found i kodem 1, bo nowy linker czyta -ld64 jako -l d64, czyli żądanie biblioteki o nazwie d64.4 Projekt, który ma -ld_classic w OTHER_LDFLAGS, buduje się więc dalej, z nowym ostrzeżeniem przy każdym linkowaniu, a wszystko, co zyskiwał dzięki staremu linkerowi, przepadło; projekt z -ld64 przestaje się linkować, z błędem, który nigdy nie wymienia linkera z nazwy. Mój wpis o ld64 sprawdza, skąd wzięły się te flagi, i dokumentuje oba przebiegi.

Domyślne architektury. Sekcja Intel Deprecation formułuje regułę: „Build targets with a min deployment target set to macOS 27.0 or DriverKit 27.0 will not build Universal by default. The ARCHS_STANDARD build setting will no longer include x86_64 when MACOSX_DEPLOYMENT_TARGET or DRIVERKIT_DEPLOYMENT_TARGET >= 27.0.” (targety z minimalną wersją docelową macOS 27.0 lub DriverKit 27.0 nie budują się domyślnie jako Universal, bo ARCHS_STANDARD przestaje zawierać x86_64).2 Odtworzyłem to w projekcie wieloplatformowym (Yawara, z SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx xros xrsimulator) poleceniem xcodebuild -showBuildSettings -sdk macosx; bez argumentu -sdk projekt nie rozwiązuje żadnego ARCHS_STANDARD, co opisuje wpis o Intelu. Przy MACOSX_DEPLOYMENT_TARGET = 26.0 ustawienie rozwiązuje się do ARCHS_STANDARD = arm64 x86_64; przy 27.0 do ARCHS_STANDARD = arm64, podczas gdy ARCHS_STANDARD_64_BIT w obu przypadkach pozostaje arm64 x86_64.4 Nic nie ostrzega. Kto dostarcza aplikacje Universal i podnosi wersję docelową, musi sam dodać x86_64 do ARCHS.

Biblioteka standardowa C++. „The minimum supported deployment target on macOS for the C++ standard library has been increased to 11.0,” (minimalna obsługiwana wersja docelowa biblioteki standardowej C++ na macOS wzrosła do 11.0), a noty wymieniają zmiany zachowania pod nagłówkiem „Potentially breaking changes”, zaczynając od multi{map,set}::find, który nie musi już zwracać pierwszego pasującego elementu.2 Lista nowości jest długa: hashowanie wartości std::chrono, zip, std::optional<T&>, std::views::indices(n) i więcej.2

Skanowanie zależności i reguła, która może je przerwać. Apple twierdzi, że zoptymalizowało skaner zależności Swifta „to avoid redundant setup work and header searches when looking up Clang modules during a single dependency-scan action,” (aby uniknąć zbędnej pracy przygotowawczej i wyszukiwania nagłówków przy odnajdywaniu modułów Clang w obrębie jednej akcji skanowania), a przyspieszenie niesie ze sobą wymóg: „every Clang module reachable from a single Swift dependency-scan action must have a unique module name. If two module maps visible to the same scan declare a Clang module with the same name, the scan may report an error. Previously, the scanner may have tolerated duplicating names.” (każdy moduł Clang osiągalny z jednej akcji skanowania musi mieć unikatową nazwę; jeśli dwie mapy modułów widoczne w tym samym skanowaniu deklarują moduł Clang o tej samej nazwie, skanowanie może zgłosić błąd, choć wcześniej skaner mógł tolerować duplikaty).2 Apple wymienia dwa kształty, które to wyzwalają: „projects or SDKs that vend the same Clang module name from more than one location on the header search path, and vendored third-party sources that ship a module.modulemap redeclaring an SDK module.” (projekty lub SDK udostępniające tę samą nazwę modułu Clang z więcej niż jednej lokalizacji na ścieżce wyszukiwania nagłówków oraz dołączone do projektu źródła firm trzecich z plikiem module.modulemap redeklarującym moduł SDK).2 Podobnie jak usunięcie linkera, reguła uruchamia się przy aktualizacji łańcucha narzędzi, a nie w zależności od wersji docelowej; mój wpis o ld64 przepuszcza przez skaner dwie kolidujące mapy modułów, kompiluje dołączony shim SQLite3, który przesłania moduł SDK, i sprawdza siedem projektów pod kątem obu kształtów. Na 27A266a pierwszy kształt zgłasza dokładnie ten błąd, który zapowiada „może” u Apple: dwie mapy modułów deklarujące module Widget na jednej ścieżce wyszukiwania sprawiają, że swiftc -scan-dependencies wypisuje error: redefinition of module 'Widget' w 20 przebiegach na 20, a zarazem w 20 na 20 kończy się kodem 0 i rozwiązuje moduł do pierwszego katalogu -I; Xcode 26.6 w lipcu w 14 z 20 przebiegów na tym samym wejściu kończył się awarią albo przerwaniem. Kompilacja i tak się zatrzymuje, bo -typecheck zawodzi w 20 na 20 z tym samym błędem. Drugi kształt, dołączona mapa redeklarująca SQLite3 z SDK, skanuje się czysto, bez niczego na stderr, i po cichu przesłania moduł SDK.4 Wpis o ld64 zawiera oba przebiegi, na 26.6 i na GA.

Co przestaje się kompilować?

Makro @State. Ta zmiana mieszka w notach wydania iOS 27, a nie Xcode, i zależy od kompilatora, którym się buduje, a nie od wersji docelowej, na którą się wdraża: „Xcode 27 introduces a new @State implementation that avoids this repeated evaluation. This new behavior back-deploys to iOS 17 aligned OSes. The new @State is implemented with a Swift macro. It is largely source compatible with the property wrapper version, with a few exceptions.” (Xcode 27 wprowadza nową implementację @State jako makro Swifta, która działa wstecz do systemów zgodnych z iOS 17 i jest w dużej mierze zgodna źródłowo z wersją opartą na property wrapperze, z kilkoma wyjątkami.)6 Apple wymienia cztery wyjątki i dla dwóch podaje listingi kodu; pozostałe dwa dostają po jednym lub dwóch zdaniach: „In rare situations, the automatic inference of generic arguments of @State is less flexible with the macro implementation. Write the type with more specificity.” (w rzadkich sytuacjach automatyczne wnioskowanie argumentów generycznych @State jest w implementacji makra mniej elastyczne; należy zapisać typ dokładniej) oraz „Composing @State with other property wrappers or macros is not supported.” (łączenie @State z innymi property wrapperami lub makrami nie jest obsługiwane).6 Dwa z listingami to te, które łapią istniejący kod. Inicjalizator przypisujący właściwość @State, która ma już wartość nadaną w deklaracji: SwiftUI zawsze odrzucało to przypisanie, a teraz „some such cases no longer compile.” (niektóre takie przypadki już się nie kompilują).6 Oraz prywatny inicjalizator memberwise, który kompilator syntetyzuje, gdy wszystkie składowe przechowywane są prywatne: „The state macro disables this synthesized initializer. So the code above no longer compiles.” (makro wyłącza ten syntetyzowany inicjalizator, więc powyższy kod już się nie kompiluje).6 Na 27A266a pierwszy przykład zawodzi w takiej postaci, w jakiej został napisany, z błędem error: variable 'self.title' used before being initialized w linii przypisującej page, bo setter makra działa na self, zanim istnieje title; po przeniesieniu self.title = title wyżej ten sam plik się kompiluje, a przypisanie @State jest odrzucane jak dawniej.46 Drugi przykład, rozszerzenie wywołujące self.init(page: page, title: title) na strukturze, której @State nie ma wartości w deklaracji, skompilował się u mnie bez zmian, a rozwinięcie makra pokazuje kształt, który na to pozwala: makro emituje private var _page: SwiftUICore.State<StickerPage> za akcesorem init z @storageRestrictions(initializes: _page), czyli konstrukcją pozwalającą inicjalizatorowi memberwise przyjąć page:.4 Notę warto czytać jako opis kształtów do sprawdzenia, a potem potwierdzić każdy z nich we własnym kodzie. Wpis o makrze @State zlicza oba wzorce w czterech wydanych aplikacjach; napisałem go w lipcu na podstawie not z bety, przed tym testem GA, a jego otwarte pytanie również tutaj się zamyka: bezpośrednie przypisanie do magazynu zapasowego, _page = State(initialValue:) wewnątrz inicjalizatora, kompiluje się na 27A266a zarówno z wartością w deklaracji, jak i bez niej.4

Niezgodność z SE-0508. W sekcji Swift Compiler, Known Issues: „A computed property with both an init accessor and an array/dictionary literal initial value will no longer compile if the getter is declared before the init accessor.” (właściwość obliczana z akcesorem init i literałem tablicy lub słownika jako wartością początkową nie skompiluje się, jeśli getter jest zadeklarowany przed akcesorem init). Dalej listing kodu, a potem atrybucja: „This is a known source break from SE-0508.” Obejście, w całości: „Swap the init accessor and the getter such that the init accessor is declared first.” (należy zamienić miejscami akcesor init i getter, tak aby akcesor init był zadeklarowany pierwszy).2 SE-0508 to „Array expression trailing closures”, zaimplementowana w Swift 6.4, a propozycja przewiduje dokładnie ten przypadek: „If the getter is declared before the init accessor, we will now attempt to parse as a trailing closure,” (jeśli getter jest zadeklarowany przed akcesorem init, parser spróbuje teraz odczytać to jako trailing closure), dodając, że „init accessors are however considered for disambiguation, so swapping the accessors is sufficient to make this valid regardless of initial value used,” (akcesory init są jednak brane pod uwagę przy ujednoznacznianiu, więc zamiana akcesorów wystarczy niezależnie od użytej wartości początkowej) i że ten przypadek „does not appear in the source compatibility suite, or for internal Swift projects at Apple.” (nie występuje w zestawie zgodności źródłowej ani w wewnętrznych projektach Swift w Apple).7 Odtwarza się go dziewięciolinijkową strukturą. Z getterem na pierwszym miejscu swiftc zawodzi w linii akcesora błędem error: initializers may only be declared within a type; po przeniesieniu akcesora init z @storageRestrictions(initializes:) nad get ten sam plik się kompiluje.4

struct Container {
    private var storage: [Int] = []
    var items: [Int] = [] {
        @storageRestrictions(initializes: storage)
        init(initialValue) { storage = initialValue }   // musi poprzedzać get
        get { storage }
        set { storage = newValue }
    }
}

PreviewProvider. Sekcja Previews wymienia jedno oznaczenie przestarzałości: „PreviewProvider and its family of preview modifiers.” (PreviewProvider i jego rodzina modyfikatorów podglądu).2 SDK je zawiera, z jednym komunikatem dla protokołu i innym dla każdego modyfikatora. W interfejsie SwiftUI w SDK iOS 27 public protocol PreviewProvider stoi pod @available(anyAppleOS, deprecated: 27.0, message: "Use #Preview instead."); previewLayout mówi „Use #Preview(traits: .sizeThatFitsLayout) or .fixedLayout(width:height:) instead.”; previewDisplayName mówi „Use #Preview("name") instead.”; previewInterfaceOrientation mówi „Use #Preview(traits: .landscapeLeft) or other orientation traits instead.”; previewDevice mówi „Use the device picker in Xcode’s canvas.” (należy użyć wyboru urządzenia na kanwie Xcode); a previewContext, wraz z protokołami PreviewContext i PreviewContextKey, mówi „Use #Preview with a Widget timeline provider or entries instead.” (należy użyć #Preview z dostawcą osi czasu lub wpisami widżetu).4 Dwa fakty decydują o tym, czy te komunikaty w ogóle się zobaczy. Kompilator porównuje wersję przestarzałości z wersją docelową, więc modyfikatory ostrzegają tylko w targecie z minimum 27.0: plik używający previewLayout, previewDisplayName i previewDevice dał trzy ostrzeżenia przy -target arm64-apple-ios27.0-simulator i żadnego przy 17.0 ani 26.0. A sam PreviewProvider nie ostrzega nigdy, z innego powodu. SDK deklaruje go z @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) bezpośrednio nad oznaczeniem anyAppleOS, a w mojej próbie protokół z taką parą nie dał żadnego ostrzeżenia ani przy konformancji, ani przy użyciu jako typ parametru przy targecie 27.0, podczas gdy ten sam protokół oznaczony samym @available(iOS, deprecated: 27.0) albo samą formą anyAppleOS ostrzegał w obu miejscach; modyfikatory noszą na własnych deklaracjach wyłącznie oznaczenie anyAppleOS (zawierające je extension SwiftUICore.View nosi atrybut wprowadzenia, a ta odziedziczona forma nie tłumi ostrzeżenia), i dlatego one ostrzegają, a protokół nie.4 Przy każdej wersji docelowej, którą faktycznie się wydaje, log budowania milczy w obu przypadkach, więc należy wyszukać PreviewProvider i modyfikatory i przejść na #Preview, które kanwa renderuje teraz w siatkach po jednym argumencie dzięki nowej składni #Preview(arguments:).24

Nowy stat() w System. Biblioteka System udostępnia teraz API Swifta dla stat, lstat, fstat i fstatat, z typem Stat i metodami instancji FilePath.stat().2 Noty wymieniają jako rozwiązany konflikt, w którym rozszerzenie wywołujące niekwalifikowane stat() zderzało się z nowymi metodami; kto dodał kwalifikację Darwin., gdy ten konflikt był żywy, może ją zostawić.2

Address Sanitizer, w drugą stronę. „Address Sanitizer might fail to launch on iOS 27.0, tvOS 27.0, watchOS 27.0, and visionOS 27.0 when building with Xcode 26.4 or older.” (Address Sanitizer może nie uruchomić się na systemach 27.0 przy budowaniu w Xcode 26.4 lub starszym). Obejściem jest Xcode 26.5 lub nowszy, co ma znaczenie dla zespołów trzymających starszego Xcode na maszynie CI, podczas gdy urządzenia aktualizują się do 27.0.2

Co zmieniło się w IDE i narzędziach?

  • Interface Builder buduje bez symulatora. Nowy tryb kompilacji, toolchain, „for UIKit (Cocoa Touch) based documents. Enabled by default, toolchain allows compiling IB documents without the need to download a simulator, which is especially useful for build servers.” (dla dokumentów opartych na UIKit; włączony domyślnie, pozwala kompilować dokumenty IB bez pobierania symulatora, co jest szczególnie przydatne na serwerach budujących).2
  • Symulatory startują szybciej i potrafią się restartować. „The simulator runtimes now contain a pre-built dyld cache. This will make first launch of a simulator much faster,” (środowiska symulatora zawierają teraz gotową pamięć podręczną dyld, więc pierwsze uruchomienie jest znacznie szybsze), a simctl zyskuje polecenie reboot.2 Jeden znany problem przetrwał, słowami Apple: „Some simulator runtimes are not completely deleted when removed, re-appearing after a reboot.” (niektóre środowiska symulatora nie są całkowicie usuwane i pojawiają się ponownie po restarcie).2
  • JSON devicectl ma wersję 5. xcrun devicectl --version zgłasza 642.16, a list devices --json-output zapisuje "jsonVersion": 5; Apple oznacza pola hardwareProperties, deviceProperties i connectionProperties jako przestarzałe na rzecz słownika properties, a każdy wynik, który nadal je zawiera, niesie _deprecationNotice.24
  • Testowanie StoreKit. Interfejs konfiguracji StoreKit pozwala definiować kody ofert, można konfigurować pakiety subskrypcji do testów lokalnych, a Transaction Manager potrafi przećwiczyć zakupy z kodami ofert bez urządzenia.2
  • Organizer. Insights Overview „summarizes high-impact performance regressions,” (podsumowuje regresje wydajności o dużym wpływie), a metryka Hitches zastępuje metrykę Scrolling.2
  • Asystent kodowania. Google Gemini dołącza do listy modeli, a „Planning with agents is now first class in Xcode,” (planowanie z agentami jest teraz w Xcode funkcją pierwszej kategorii) z planami jako edytowalnymi artefaktami Markdown, które zatwierdza się, zanim agent ruszy dalej; mój wpis o agentach kodujących opisuje ten przepływ z bety, a noty GA wymieniają edytor Markdown dokładnie dla tych artefaktów.2
  • Lokalizacja. Agenci potrafią tłumaczyć wpisy String Catalog, a eksport lokalizacji wyciąga teraz NSLocalizedString i podobne makra z plików nagłówkowych.2
  • Icon Composer. Noty nazywają go Icon Composer 2.0, „a new sharper rendering mode for upcoming 2027 operating systems” (nowy, ostrzejszy tryb renderowania dla nadchodzących systemów z 2027 roku); pakiet wewnątrz 27A266a zgłasza wersję 27.0.24
  • Testowanie. Plan testów może określać, jak Xcode traktuje awarię testowanej aplikacji podczas testów UI, od wyłączenia po błąd krytyczny, a swift test zyskuje --maximum-repetitions z --repeat-until [pass|fail] oraz podsumowanie niepowodzeń na końcu.2
  • Debugowanie. Przy bridging headerach LLDB „can now directly import explicitly built Swift modules and PCH from DerivedData,” (może teraz bezpośrednio importować jawnie zbudowane moduły Swift i PCH z DerivedData), a polecenie language swift task tree wypisuje zadania współbieżności Swifta.2

Co zrobiłbym w tym tygodniu

  1. Przeczytać wiersze zgodności, zanim dotknie się CI: macOS 26.6 na Macach budujących, wyłącznie Apple silicon, iOS 17 jako najstarsze urządzenie testowe oraz ten z progów macOS 12, watchOS 9 lub DriverKit 21, pod który podpada produkt.23
  2. Wyszukać grepem -ld_classic i -ld64 i usunąć obie flagi; pierwszą linker ignoruje z ostrzeżeniem przy każdym linkowaniu, na drugiej zawodzi od razu. Przy okazji pobytu w ustawieniach budowania warto poszukać ręcznie napisanych plików module.modulemap, które redeklarują moduł SDK, czyli kształtu, który Apple wymienia przy regule unikatowej nazwy modułu.24
  3. Jeśli jakikolwiek target macOS lub DriverKit ma ustawione 27.0, a aplikacja trafia na Intela, ustawić ARCHS jawnie; samo ARCHS_STANDARD daje arm64, co odtworzyłem dla macOS, a Apple deklaruje dla obu.24
  4. Wyszukać PreviewProvider, previewLayout, previewDisplayName i previewDevice i podążać za komunikatem każdej adnotacji: protokół na #Preview, previewLayout na #Preview(traits: .sizeThatFitsLayout) lub .fixedLayout(width:height:), previewDisplayName na #Preview("name"), a previewDevice na wybór urządzenia na kanwie. Modyfikatory ostrzegają tylko przy deployment target 27.0, a konformancja PreviewProvider nie ostrzega przy żadnym, więc log budowania wydawanego targetu pozostaje cichy.4
  5. Zbudować raz w Xcode 27 i przeczytać dwie diagnostyki: variable 'self.title' used before being initialized w inicjalizatorze, który przypisuje właściwość @State z wartością nadaną w deklaracji przed pozostałymi właściwościami przechowywanymi, co krok po kroku omawia wpis o makrze @State, oraz initializers may only be declared within a type we właściwościach z literałem tablicy lub słownika jako wartością początkową i akcesorem init, gdzie akcesor przenosi się nad getter.246
  6. Przesłać kompilację TestFlight z SDK 27, skoro App Store Connect już je przyjmuje, pamiętając o regule ekranu startowego i nakazie scen UIKit, bo oba obowiązują aplikację od chwili, gdy linkuje się z 27.56

Często zadawane pytania

Kiedy ukazał się Xcode 27?

W poniedziałek 14 września 2026 roku, jako kompilacja 27A266a, tego samego dnia co iOS 27.0, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0 i watchOS 27.0; kanał datuje wpis iOS 27.0 RC (24A437) na 11 września, dwa dni po tym, jak App Store Connect zaczął przyjmować kompilacje z SDK RC.15

Jakiego macOS wymaga Xcode 27?

macOS Tahoe 26.6 lub nowszego na Macu z Apple silicon. Nie instaluje się ani nie uruchamia na Macach z Intelem. Działa na macOS 27.0, który ukazał się tego samego dnia.23

Jakie są minimalne wersje docelowe w Xcode 27?

iOS 15, iPadOS 15, tvOS 15, watchOS 9, visionOS 1, macOS 12 i DriverKit 21. W porównaniu z Xcode 26.6 watchOS wzrósł z 8, macOS z 11, a DriverKit z 20.3

Czy Xcode 27 nadal buduje aplikacje Universal na Maca?

Tak, aż do macOS 12, ale nie domyślnie, gdy MACOSX_DEPLOYMENT_TARGET targetu wynosi 27.0: ARCHS_STANDARD rozwiązuje się wtedy do samego arm64, a x86_64 trzeba dodać do ARCHS samodzielnie.24

Czy Xcode 27.1 jest już dostępny?

Nie według stanu na 15 września 2026 roku. Kanał wydań Apple i indeks not wydania Xcode wymieniają tylko Xcode 27, a strona Apple dla deweloperów iPhone Duo nadal opisuje betę Xcode 27.1 jako „Coming later this month” (dostępna jeszcze w tym miesiącu); SDK iPhone Duo nie jest częścią tego wydania.1 (17 września: 27.1 wciąż nie ma. Beta Xcode 27.2 (27B5019j) ukazała się 16 września, a jej noty wydania mówią, że SDK iOS i obsługa symulatora dla iPhone Duo „will be available later this month in an upcoming release of Xcode 27.1.”, czyli będą dostępne jeszcze w tym miesiącu w nadchodzącym wydaniu Xcode 27.1.9) (19 września: jako beta, tak. Beta Xcode 27.1 (27A9269) wyszła 18 września z SDK iOS 27.1 oraz, słowami not wydania bety 27.2, „simulator support for iPhone Duo,” (obsługą iPhone Duo w symulatorze), a App Store Connect przyjmuje jej buildy do TestFlight; wydania 27.1 jeszcze nie ma, a wpis Apple z 16 września mówi, że iPhone Duo „will run iOS 27.1” (będzie działać z iOS 27.1) w dniu premiery 23 października.10) (1 października: wciąż jest tylko pierwsza beta 27.1, 27A9269.11) (11 października: jako RC, tak. Xcode 27.1 RC (27A9275) wyszedł 5 października ze Swift 6.4 i SDK iOS 27.1, a App Store Connect przyjmuje jego buildy do App Store; kanał wydań nie wymienia jeszcze finalnego Xcode 27.1.12) (14 października: wciąż jako RC; tego dnia ukazał się Xcode 27.2 beta 3, bez towarzyszącego mu wydania Xcode 27.1.13) (15 października: tak, jako wydanie finalne. Xcode 27.1 (27A9275), kompilacja RC, ma w kanale wydań Apple godzinę 13:00 czasu pacyficznego; strona z uwagami nosi teraz tytuł „Xcode 27.1 Release Notes”, a wpis App Store Connect z tego dnia brzmi „You can now upload apps built with Xcode 27.1 using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (można już przesyłać aplikacje zbudowane w Xcode 27.1 z SDK iOS 27.1 i SDK 27.0 pozostałych platform, do App Store oraz do testów wewnętrznych i zewnętrznych w TestFlight).14)

Gdzie są noty wydania Xcode 27?

W serwisie dokumentacji Apple dla deweloperów, pod Xcode Release Notes, jedna strona na wydanie; cytowane tu sekcje to Overview, Linking, Intel Deprecation, Previews, Swift Compiler, Address Sanitizer, Instruments, Device Hub, devicectl, Simulator, Interface Builder, C++ Standard Library, Organizer, Coding Intelligence, Source Editor, Icon Composer, StoreKit Testing in Xcode, Localization, Testing, Swift Package Manager, Debugging, System oraz, od aktualizacji z 17 września, Enhanced Security.29 Zmiana makra @State znajduje się natomiast w notach wydania iOS i iPadOS 27, w sekcji SwiftUI.6

Źródła


  1. Apple, Releases, kanał RSS pobrany 15 września 2026 roku: „Xcode 27 (27A266a)”, „iOS 27.0 (24A437)”, „iPadOS 27.0 (24A437)”, „macOS 27.0 (26A428)”, „tvOS 27.0 (24J361)”, „visionOS 27.0 (24M362)”, „watchOS 27.0 (24R364)” i „App Store Connect Update”, wszystkie z datą poniedziałku 14 września 2026; „iOS 27.0 RC (24A437)” z datą piątku 11 września 2026. Indeks Xcode Release Notes wymienia jeden wpis 27, „Xcode 27 Release Notes”; w żadnym z tych miejsc nie ma pozycji 27.1. Apple Developer, Get Ready for iPhone Duo, pobrana 15 września 2026 roku: „Xcode 27.1 beta. Get the latest SDKs to build, run, and test your app for iPhone Duo. Coming later this month”. ↩↩↩↩↩

  2. Apple, Xcode 27 Release Notes, pobrane 15 września 2026 roku po wydaniu GA. Cytowane sekcje: Overview; Linking, Deprecations („The ld64 linker has been removed and the -ld_classic option is no longer supported.” 165165518); Intel Deprecation, New Features (ARCHS_STANDARD, 161837535) i Deprecations (wyłącznie Apple silicon, cytat w całości, 162138432); Previews, Deprecations („PreviewProvider and its family of preview modifiers.” 144168701) i New Features (#Preview(arguments:), 167544057); Swift Compiler, New Features (skaner zależności i wymóg unikatowej nazwy modułu, fragmenty, 136303612) i Known Issues (SE-0508, 180969028; zdanie z obejściem cytowane w całości); System, New Features i Resolved Issues (177911316); Address Sanitizer, Known Issues (178072780); Instruments, Deprecations (166097304); Device Hub, Deprecations (160482487); devicectl, New Features (170812159) i Deprecations (183772705); Simulator, New Features (179846743, 172303413) i Known Issues (141290052); Interface Builder, New Features; C++ Standard Library, New Features i Deprecations; Organizer; Coding Intelligence (171990272, 172857081); Source Editor, New Features (edytor Markdown, 175022151); Localization; Icon Composer; StoreKit Testing in Xcode; Testing; Swift Package Manager, New Features (--maximum-repetitions, 177561078; podsumowanie niepowodzeń, 168311253); Debugging. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  3. Apple, Xcode support: minimum requirements and supported SDKs, pobrana 15 września 2026 roku. Wiersz Xcode 27: macOS Tahoe 26.6 lub nowszy; SDK iOS 27, tvOS 27, watchOS 27, visionOS 27, macOS 27, DriverKit 27; wersje docelowe iOS 15 do 27, iPadOS 15 do 27, tvOS 15 do 27, watchOS 9 do 27, visionOS 1 do 27, macOS 12 do 27, DriverKit 21 do 27; obsługa urządzeń iOS 17, tvOS 17, watchOS 10, visionOS 1 lub nowsze; symulator iOS 17, tvOS 17, watchOS 10, visionOS 1 lub nowsze; kompilator Swift 6.4 z trybami języka 6, 5, 4.2 i 4. Wiersz Xcode 26.6: macOS Tahoe 26.2 do 26.x; SDK w wersji 26.5 z DriverKit 25.5; wersje docelowe iOS 15, tvOS 15, watchOS 8, visionOS 1, macOS 11, DriverKit 20; obsługa urządzeń i symulatora od iOS 15, tvOS 15, watchOS 8, visionOS 1; Swift 6.3. ↩↩↩↩↩↩

  4. Reprodukcja autora na Xcode 27.0 (27A266a) z DEVELOPER_DIR wskazującym na tę wersję, macOS 26.6.2 (25G83), 15 września 2026 roku. xcodebuild -version: „Xcode 27.0 Build version 27A266a”; swift --version: „Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1)”; katalog usr/bin łańcucha narzędzi zawiera jeden linker, ld, a ld -v wypisuje „PROJECT:ld-27037.1” zbudowany „Aug 25 2026”; przy hello.c zawierającym int main(void){return 0;} polecenie clang hello.o -o hello_classic -Xlinker -ld_classic wypisało „ld: warning: -ld_classic is no longer supported and will be ignored” i zakończyło się kodem 0, a clang hello.c -o hello_ld64 -Wl,-ld64 wypisało „ld: library ‘d64’ not found” oraz „clang: error: linker command failed with exit code 1 (use -v to see invocation)” i zakończyło się kodem 1 bez pliku wyjściowego. xcodebuild -showBuildSettings -sdk macosx na Yawara.xcodeproj, projekcie wieloplatformowym (SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx xros xrsimulator), który bez argumentu -sdk nie wypisuje żadnej linii ARCHS_STANDARD: ARCHS_STANDARD = arm64 x86_64 przy MACOSX_DEPLOYMENT_TARGET = 26.0, ARCHS_STANDARD = arm64 przy 27.0, ARCHS_STANDARD_64_BIT = arm64 x86_64 w obu. Dziewięciolinijkowa struktura Container z var items: [Int] = [] i akcesorem @storageRestrictions(initializes: storage) init(initialValue): z getterem na pierwszym miejscu zawodzi błędem „error: initializers may only be declared within a type” w linii init; z akcesorem na pierwszym miejscu kompiluje się z kodem 0. SwiftUI.swiftmodule/arm64e-apple-ios.swiftinterface w SDK iPhoneOS 27.0: @available(anyAppleOS, deprecated: 27.0, message: "Use #Preview instead.") w liniach 14971 (public protocol PreviewProvider), 14978 (jego rozszerzenie) i 14991 (PreviewPlatform); „Use #Preview with a Widget timeline provider or entries instead.” w 15023 (PreviewContextKey), 15029 (PreviewContext) i 15069 (previewContext); „Use the device picker in Xcode’s canvas.” w 15053 (previewDevice); „Use #Preview(traits: .sizeThatFitsLayout) or .fixedLayout(width:height:) instead.” w 15058 (previewLayout); „Use #Preview("name") instead.” w 15063 (previewDisplayName); „Use #Preview(traits: .landscapeLeft) or other orientation traits instead.” w 15075 (previewInterfaceOrientation); swiftc -c prostej konformancji PreviewProvider nie dało ostrzeżenia przy -target arm64-apple-ios27.0-simulator, ios26.0 ani ios17.0; plik stosujący previewLayout(.sizeThatFits), previewDisplayName("Card") i previewDevice(PreviewDevice(rawValue: "iPhone 18 Pro")) wewnątrz PreviewProvider dał trzy ostrzeżenia [#DeprecatedDeclaration] przy ios27.0 („’previewLayout’ was deprecated in any Apple OS 27.0: Use #Preview(traits: .sizeThatFitsLayout) or .fixedLayout(width:height:) instead.” oraz odpowiadające komunikaty previewDisplayName i previewDevice) i żadnego przy ios26.0 ani ios17.0. Próba z czterema protokołami, każdy z konformującą strukturą i parametrem any P w jednej sygnaturze funkcji, skompilowana przy -target arm64-apple-ios27.0-simulator: samo @available(iOS, deprecated: 27.0), samo @available(anyAppleOS, deprecated: 27.0) oraz @available(iOS 13.0, *) nad @available(iOS, deprecated: 27.0) ostrzegały w linii konformancji i przy typie parametru any P („’P1’ was deprecated in iOS 27.0”, „’P2’ was deprecated in any Apple OS 27.0”, „’P4’ was deprecated in iOS 27.0”), podczas gdy para z SDK, @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) nad @available(anyAppleOS, deprecated: 27.0), nie dała ostrzeżenia w żadnym z tych miejsc; wywołania metod przez te egzystencjały nie dały diagnostyki dla żadnego z czterech, a przy ios26.0 żaden z czterech nie ostrzegał. W interfejsie PreviewProvider znajduje się w liniach 14970 do 14972 pod dokładnie tą parą; previewLayout w liniach 15058 do 15059 nosi na własnej deklaracji wyłącznie oznaczenie anyAppleOS, wewnątrz extension SwiftUICore.View, której atrybut wprowadzenia stoi w linii 15051. Plik z dwoma widokami przypisującymi _page = State(initialValue: StickerPage(title: title)) wewnątrz init(title:), jeden z @State private var page: StickerPage, a drugi z @State private var page = StickerPage(), skompilował się przy ios27.0 z kodem 0 i bez diagnostyki. Próby @State, każda jako StickerPageView z @State private var page i let title: String, skompilowane poleceniem swiftc -c -target arm64-apple-ios27.0-simulator względem SDK iPhoneSimulator 27.0: pierwszy przykład Apple, @State private var page = StickerPage() z init(title:) przypisującym self.page, a potem self.title, zawiódł błędem „error: variable ‘self.title’ used before being initialized” w linii self.page, kod 1; ten sam plik z self.title = title przeniesionym nad przypisanie self.page skompilował się, kod 0; drugi przykład Apple, @State private var page: StickerPage bez wartości początkowej i rozszerzenie wywołujące self.init(page: page, title: title), skompilował się, kod 0, a -Xfrontend -dump-macro-expansions pokazało, że makro emituje private var _page: SwiftUICore.State<StickerPage> z akcesorem @storageRestrictions(initializes: _page) init(initialValue). xcrun devicectl --version: 642.16; devicectl list devices --json-output zapisało "jsonVersion": 5. Info.plist Icon Composera wewnątrz 27A266a: CFBundleShortVersionString 27.0. Próby z mapami modułów względem SDK iPhoneSimulator 27.0 przy -target arm64-apple-ios27.0-simulator: dwa katalogi, każdy z plikiem module.modulemap deklarującym module Widget, plus jeden main.swift, który go importuje; z oboma katalogami na ścieżce wyszukiwania swiftc -typecheck zakończyło się kodem 1 w 20 przebiegach na 20 („error: redefinition of module ‘Widget’”, „note: previously defined here”), a swiftc -scan-dependencies zakończyło się kodem 0 w 20 przebiegach na 20, przy każdym przebiegu wypisując na stderr ten sam błąd i notę oraz zapisując graf, którego wpis Widget wskazuje mapę modułów z pierwszego katalogu, a gdy odwróciłem kolejność obu argumentów -I, mapę z drugiego katalogu; Vendor/module.modulemap deklarujący SQLite3 na ścieżce wyszukiwania skanował się z kodem 0 i pustym stderr w 20 przebiegach na 20, rozwiązywał SQLite3 do dołączonej mapy, a plik wywołujący sqlite3_open nie przechodził typechecku z „error: cannot find ‘sqlite3_open’ in scope”, dopóki katalog nie zniknął ze ścieżki wyszukiwania. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  5. Apple, App Store Connect release notes, pobrane 15 września 2026 roku. Wpis z 14 września 2026 zacytowany w całości w tabeli powyżej; wpisy z 9 września 2026 odnotowują przesyłki z SDK RC i dodają specyfikacje zrzutów ekranu oraz podglądów aplikacji dla iPhone Duo, iPhone 18 Pro Max, iPhone 18 Pro, Apple Watch Ultra 4 i Apple Watch Series 12, z zapisem „Support for uploading assets for iPhone Duo in App Store Connect will be available later this year.” (obsługa przesyłania zasobów dla iPhone Duo w App Store Connect będzie dostępna jeszcze w tym roku). ↩↩↩↩↩

  6. Apple, iOS & iPadOS 27 Release Notes, SwiftUI, New Features (105893279), pobrane 15 września 2026 roku. Źródło cytatu „Xcode 27 introduces a new @State implementation that avoids this repeated evaluation. This new behavior back-deploys to iOS 17 aligned OSes. The new @State is implemented with a Swift macro. It is largely source compatible with the property wrapper version, with a few exceptions.”; cytatu „If you provide an initial value at @State declaration, and also try to assign a value to it in an initializer, the initializer value is discarded. This behavior has not changed because of the macro, but some such cases no longer compile:” wraz z listingiem StickerPageView; cytatu „When all stored members of a struct are private, the compiler synthesizes a private init that can be used in an extension of the same type:” wraz z listingiem; oraz „The state macro disables this synthesized initializer. So the code above no longer compiles. To mitigate, assign value to members explicitly:”; a także dwóch wyjątków bez listingu, „In rare situations, the automatic inference of generic arguments of @State is less flexible with the macro implementation. Write the type with more specificity.” i „Composing @State with other property wrappers or macros is not supported.” Sekcja UIKit tego samego dokumentu zawiera dwa wymogi cytowane w kroku 6: New Features, „iOS and iPadOS apps built with the 27.0 SDK or later are required to include a launch screen.” (168247372), oraz Deprecations, „Apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch.” (141837548). ↩↩↩↩↩↩↩↩↩↩↩

  7. Cal Stephens, SE-0508: Array expression trailing closures, Swift Evolution, status „Implemented (Swift 6.4)”, implementacja swiftlang/swift#86244, pobrana 15 września 2026 roku. Podsekcja „Init accessors” jest źródłem cytatu „One other case where this can result in an error is for properties with both an init accessor and initial value that is either an array or dictionary literal. If the getter is declared before the init accessor, we will now attempt to parse as a trailing closure:”, zdania o ujednoznacznianiu cytowanego powyżej oraz „This particular case appears to be quite rare in practice, it does not appear in the source compatibility suite, or for internal Swift projects at Apple.” ↩

  8. Apple, Xcode 15 Release Notes, Linking, New Features (108915312), pobrane 15 września 2026 roku: „The classic linker can still be explicitly requested using -ld64, and will be removed in a future release.” (klasyczny linker nadal można jawnie wybrać flagą -ld64, a w przyszłym wydaniu zostanie usunięty). ↩↩

  9. Apple, Releases, kanał RSS pobrany 17 września 2026 roku, data ostatniej aktualizacji kanału Wed, 16 Sep 2026 14:00:00 PDT. Wpisy z datą Wed, 16 Sep 2026: „TestFlight Update”, „Xcode 27.2 beta (27B5019j)”, „iOS 27.2 beta (24B5084k)”, „iPadOS 27.2 beta (24B5084k)”, „macOS 27.2 beta (26B5086k)”, „tvOS 27.2 beta (24K5088l)”, „visionOS 27.2 beta (24N5088l)”, „watchOS 27.2 beta (24S5086l)”; żaden tytuł wpisu nie zawiera 27.1. Apple, Xcode 27.2 Beta Release Notes, pobrane przez punkt końcowy JSON dokumentacji 17 września 2026 roku: Overview (zdanie o iPhone Duo i wymóg macOS Tahoe 26.6), Project Format, New Features (184661114), SDK, Known Issues (187160501). Sekcje tych not to General, Device Hub, Previews, Previews & Playgrounds, Project Format, SDK i Simulator; żadna nie wspomina o ld64, nazwach modułów, @State ani PreviewProvider. Xcode 27 Release Notes, pobrane ponownie tego samego dnia, zawierają cytowane tutaj wpisy z not Xcode 27 w niezmienionej postaci oraz jeden wpis nieobecny 16 września: Enhanced Security, Known Issues (187057599), cytowany w aktualizacji. Znany problem z sekcji Simulator w notach bety 27.2 to 141290052. ↩↩↩↩↩↩↩↩

  10. Apple, Releases, kanał RSS pobrany 19 września 2026, ostatnia data budowy Fri, 18 Sep 2026 14:00:00 PDT: „Xcode 27.1 beta (27A9269)” z datą Fri, 18 Sep 2026 10:00:00 PDT oraz „TestFlight Update” z datą Fri, 18 Sep 2026 14:00:00 PDT. Apple, Xcode 27.1 Beta Release Notes, pobrane przez punkt końcowy JSON dokumentacji 19 września 2026: Overview (cytowany dla listy SDK i wymagania macOS Tahoe 26.6); Mac Catalyst, Known Issues (185924957, 187046347, każdy z obejściem); Previews, New Features (182598534); Simulator, Known Issues (187708500, 187708663, 187708767); uwagi nie mają innych sekcji. Pobrany tego samego dnia indeks informacji o wydaniu Xcode wymienia Xcode 27 Release Notes, Xcode 27.1 Beta Release Notes i Xcode 27.2 Beta Release Notes. Apple, informacje o wydaniu App Store Connect, 18 września 2026, TestFlight update, zacytowane w całości. Apple, Xcode 27.2 Beta Release Notes, pobrane 17 i 19 września 2026: oba pobrania różnią się tylko w Overview, gdzie zdanie z 17 września „The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.” zastąpiła ramka „Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo.”, której odnośnik prowadzi do https://developer.apple.com/download/applications/. Xcode 27 Release Notes pobrane 19 września są identyczne z pobraniem z 17 września. Apple, „Get ready with the latest beta releases”, aktualności, 16 września 2026: „When iPhone Duo becomes available on October 23, it will run iOS 27.1.” Apple, „App Store submissions now open for the latest OS releases”, aktualności, 9 września 2026, akapit zaczynający się od „Starting April 2027”, zacytowany; Apple, Upcoming Requirements, pobrane 19 września 2026, najnowsza pozycja „SDK minimum requirements”, „Since April 28, 2026”. Apple, ArrangementView, JSON dokumentacji pobrany 19 września 2026, dostępność iOS 27.1 i iPadOS 27.1, oznaczona jako beta. Ta sama dostępność, iOS 27.1 i iPadOS 27.1 w becie, pojawia się na stronach UIArrangementViewController, reservedRegions(kind:options:layoutDirectionBehavior:), reservedRegions(kind:options:) oraz toolbarVerticalBehavior(_:), z których każda została pobrana tego samego dnia. ↩↩↩↩↩↩↩↩↩↩

  11. Apple, Releases, kanał RSS pobrany 1 października 2026: „Xcode 27.2 beta 2 (27B5028f)” z datą Mon, 28 Sep 2026 10:00:00 PDT obok „iOS 27.0.1 (24A446)”, „iPadOS 27.0.1 (24A446)”, „macOS 27.0.1 (26A434)”, „visionOS 27.0.1 (24M372)” oraz, o 13:00:00 PDT, „watchOS 27.0.1 (24R365)”; pozycje Xcode w kanale to „Xcode 27.2 beta 2 (27B5028f)”, „Xcode 27.1 beta (27A9269)”, „Xcode 27 (27A266a)” i „Xcode 26.6 (17F113)”. Apple, Xcode 27.2 Beta 2 Release Notes oraz Xcode 27 Release Notes, pobrane przez endpoint JSON dokumentacji 1 października 2026; tekst strony Xcode 27 zgadza się z pobraniem z 26 września. ↩↩↩↩

  12. Apple, Releases, kanał RSS pobrany 11 października 2026, data ostatniej aktualizacji kanału Tue, 06 Oct 2026 10:00:00 PDT: „Xcode 27.1 RC (27A9275)” z datą Mon, 05 Oct 2026 10:00:00 PDT; pozycje Xcode w kanale to „Xcode 27.1 RC (27A9275)”, „Xcode 27.2 beta 2 (27B5028f)”, „Xcode 27.1 beta (27A9269)”, „Xcode 27 (27A266a)” i „Xcode 26.6 (17F113)”. Apple, App Store Connect release notes, pobrane 11 października 2026, wpis z datą 5 października 2026, „App Store Connect updates”, zacytowany. Apple, Xcode 27.1 RC Release Notes, pobrane 11 października 2026, Overview: „Xcode 27.1 RC includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.” ↩↩↩

  13. Apple, Releases, kanał RSS pobrany 15 października 2026 o 04:36 UTC (14 października, 21:36 czasu pacyficznego): „Xcode 27.2 beta 3 (27B5038j)” z datą Wed, 14 Oct 2026 10:00:00 PDT; „iOS 27.2 beta 4 (24B5110a)”, „iPadOS 27.2 beta 4 (24B5110a)”, „macOS 27.2 beta 4 (26B5112a)”, „visionOS 27.2 beta 4 (24N5114a)” i „watchOS 27.2 beta 4 (24S5112a)” z datą Tue, 13 Oct 2026 10:00:00 PDT; pozycje Xcode w kanale to „Xcode 27.2 beta 3 (27B5038j)”, „Xcode 27.1 RC (27A9275)”, „Xcode 27.1 beta (27A9269)”, „Xcode 27 (27A266a)” i „Xcode 26.6 (17F113)”. Apple, Xcode 27.2 Beta 3 Release Notes, pobrane przez endpoint JSON dokumentacji 15 października 2026 o 04:38 UTC (14 października, 21:38 czasu pacyficznego) i porównane z kopią bety 2 zapisaną 14 października 2026 o 05:09 UTC (13 października, 22:09 czasu pacyficznego) na potrzeby wpisu o HomeView: brak ramki; Interface Builder, Resolved Issues (186354589, 187747632); Simulator Runtimes, Known Issues (188407822); Simulator, Resolved Issues in Xcode 27.2 Beta 2 (141290052, 187950199). Apple, Xcode 27 Release Notes, pobrane przez endpoint JSON dokumentacji 15 października 2026 o 05:03 UTC (14 października, 22:03 czasu pacyficznego): treść jest identyczna z kopią zapisaną 11 października 2026, a 141290052 nadal figuruje w Simulator, Known Issues. Apple, App Store Connect release notes, pobrane 15 października 2026 o 05:04 UTC (14 października, 22:04 czasu pacyficznego), wpis z datą 14 października 2026, „TestFlight update”: „You can now submit apps built with Xcode 27.2 beta 3 using the SDK for iOS 27.2 beta 4, iPadOS 27.2 beta 4, macOS 27.2 beta 4, tvOS 27.2 beta 3, visionOS 27.2 beta 4, and watchOS 27.2 beta 4 for internal and external testing.” ↩↩↩↩

  14. Apple, Releases, kanał RSS pobrany 15 października 2026 o 17:16 czasu pacyficznego (00:16 UTC, 16 października): „Xcode 27.1 (27A9275)” z datą Thu, 15 Oct 2026 13:00:00 PDT, z tym samym numerem kompilacji co pozycja RC z 5 października z pobrania 11 października, której kanał już nie zawiera. Apple, Xcode 27.1 Release Notes, pobrane przez endpoint JSON dokumentacji 15 października 2026 o 17:21 czasu pacyficznego, z tytułem zmienionym z „Xcode 27.1 RC Release Notes”; Overview: „Xcode 27.1 includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.”; dwa Known Issues symulatora iPhone Duo, 187708663 i 187708767, bez zmian. Apple, App Store Connect release notes, pobrane 15 października 2026 o 17:20 czasu pacyficznego, wpis z datą 15 października 2026, „App Store Connect updates”: „You can now upload apps built with Xcode 27.1 using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” i „Submit your iPhone Duo optimized apps and games in App Store Connect today. Starting April 2027, any apps or games submitted will need to include screenshots for iPhone Duo.” Kanał aktualności Apple dla deweloperów, pobrany w tej samej godzinie, nie zawiera żadnej pozycji o tym wydaniu. Apple, Xcode 27 Release Notes, pobrane przez endpoint JSON dokumentacji 15 października 2026 o 17:26 czasu pacyficznego: treść jest identyczna z kopią zapisaną 11 października 2026. Pozycje Xcode w kanale przy pobraniu o 17:16: „Xcode 27.1 (27A9275)”, „Xcode 27.2 beta 3 (27B5038j)”, „Xcode 27.1 beta (27A9269)”, „Xcode 27 (27A266a)” i „Xcode 26.6 (17F113)”. ↩↩↩↩

  15. Apple, Releases, kanał RSS pobrany 26 października 2026 o 16:12 czasu pacyficznego: „iOS 27.2 (24B91020)”, „iOS 27.2 (24B119)”, „iPadOS 27.2 (24B119)”, „macOS 27.2 (26B123)”, „tvOS 27.2 (24K122)”, „visionOS 27.2 (24N120)” i „watchOS 27.2 (24S118)” z datą Mon, 26 Oct 2026 10:00:00 PDT; „TestFlight 4.4.1” z datą Thu, 22 Oct 2026 14:00:00 PDT; „Xcode 27.2 RC (27B48)” z datą Mon, 19 Oct 2026 10:00:00 PDT, najnowsza pozycja Xcode; żaden tytuł pozycji nie wymienia wydania iOS 27.1. Apple, Xcode 27.2 RC Release Notes, pobrane przez punkt końcowy JSON dokumentacji 26 października 2026, serwowane z nagłówkiem Last-Modified Mon, 19 Oct 2026 04:56:10 GMT: Overview, cytowany; Device Hub, New Features (189236369), Resolved Issues (188313956, 188326513), Known Issues (189261485 z FB25077755, 189465196 z obejściem), cytowane; Instruments (168530263), Memory Gauge (187611943), XCTest UI Automation (188422137); Mac Catalyst, Known Issues (185924957); SDK, Known Issues (187160501), cytowane; Simulator, Resolved Issues (190126101, 190155353). Apple, App Store Connect release notes, pobrane 26 października 2026: wpis z 20 października 2026, cytowany w całości; 22 października 2026, „TestFlight update”: „TestFlight 4.4.1 is now available on the App Store for iPhone and iPad. This update includes: Support for iPhone Duo. Stability improvements and bug fixes.” Apple Support, „Apple security releases”, pobrane 26 października 2026: wiersz „iOS 27.1,” „This update has no published CVE entries.,” „iPhone Duo,” „23 Oct 2026.” Apple Newsroom, „iPhone Duo arrives at Apple Store locations worldwide”, 23 października 2026: „On Friday, October 23, the highly anticipated iPhone Duo made its debut at Apple Store locations worldwide.” Indeks iOS & iPadOS Release Notes, pobrany 26 października, wymienia tylko „iOS & iPadOS 27 Release Notes” i „iOS & iPadOS 27.2 Release Notes”. Mac autora, 26 października 2026, Xcode 27.1 (27A9275): SystemVersion.plist w SDK iPhoneOS i iPhoneSimulator 27.1 podają ProductBuildVersion 24A94232. ↩

Powiązane artykuły

macOS 27 Golden Gate już dostępny: co zmienia się dla deweloperów

macOS 27 Golden Gate wyszedł 14 września, tylko na Apple silicon: ostatnie ogólne wydanie z Rosettą, instalatory domyśln…

29 min czytania

Makro @State: co przestaje się kompilować w Xcode 27

Xcode 27 przepisuje @State ze SwiftUI na makro Swift. Łamie to zgodność przy zmianie toolchainu, nie deployment target; …

17 min czytania

Światło w pixel art: dzień, noc, pogoda i cienie

Jak Pokémon Crystal i Emerald prowadzą dzień, deszcz i cień, zmierzone w ich kodzie źródłowym, oraz brief na dzień, pogo…

133 min czytania