ImageCreator zostaje wycofany: co przestaje działać w iOS 27
Apple opublikowało dziś zawiadomienie o wycofaniu, które wymaga uwagi jeszcze przed jesienią: klasa ImageCreator, czyli API Image Playground służące do programistycznego generowania obrazów bez UI, „jest wycofywana i przestanie działać w iOS 27, iPadOS 27, macOS 27 oraz visionOS 27 i nowszych”.1 Zawiadomienie jest wyjątkowo konkretne co do tego, jak przebiega awaria. W trakcie wydań beta systemu kod korzystający z ImageCreator nadal się kompiluje, choć Xcode zgłasza ostrzeżenia, jednak aplikacje „nie będą działać w kompilacjach TestFlight i spowodują błąd czasu wykonania”.1 W publicznych wydaniach systemu kod przestaje się kompilować całkowicie.1 API, które trafiło do iOS 18.4, znika jedną główną wersję później, a sesja WWDC, która tłumaczy dlaczego, prowadzi również przez ścieżkę migracji.
Ogłoszenie o wycofaniu w 4:34 sesji 375.
TL;DR
- Apple wycofuje
ImageCreator, programistyczne API do generowania obrazów we frameworku Image Playground. Przestaje ono działać w iOS 27, iPadOS 27, macOS 27 oraz visionOS 27.1 Dokumentacja Apple oznacza wycofanie na poziomie 27.0 na pięciu platformach, w tym Mac Catalyst.2 - Awaria przebiega etapami: wydania beta kompilują się z ostrzeżeniami, ale zawodzą w czasie wykonania w TestFlight; publiczne wydania odmawiają kompilacji.1 Instrukcja Apple brzmi: zmigrować „przed publicznym wydaniem”.1
- Powód jest architektoniczny. Modele Image Playground przeniesiono w tym roku na Private Cloud Compute, a jak ujmuje to sesja: „Przeniesienie modeli na Private Cloud Compute oznaczało również przemyślenie API od nowa”.3
- Zamiennikiem jest systemowy interfejs: modyfikator SwiftUI
imagePlaygroundSheetalboImagePlaygroundViewControllerdla aplikacji UIKit i AppKit.3 Alternatywna sugestia Apple jest dosadna: zintegrować „inną wybraną przez siebie usługę generowania obrazów”.1 - Nowy sheet ma większe możliwości niż poprzedni: style fotorealistyczne, zasiewanie koncepcjami, rysunkami i obrazami źródłowymi, konfigurację rozmiaru i stylu oraz opcjonalny styl
externalProvider, który udostępnia zewnętrznego dostawcę, takiego jak ChatGPT.3
Co dokładnie ogłosiło Apple
Zawiadomienie z 11 czerwca w kanale wiadomości dla deweloperów Apple przedstawia dwuetapowy harmonogram.1 W wydaniach beta systemu kod nadal się kompiluje, Xcode zaczyna zgłaszać ostrzeżenia, a aplikacje wywołujące ImageCreator napotykają błąd czasu wykonania w kompilacjach TestFlight. W publicznych wydaniach systemu kod odwołujący się do tej klasy przestaje się kompilować, a każda zbudowana na niej funkcja przestaje działać dla użytkowników. Punkt do działania Apple wskazuje termin: należy zaktualizować swoją implementację „przed publicznym wydaniem iOS 27, iPadOS 27, macOS 27 i visionOS 27”.1
Dokumentacja opowiada tę samą historię w formie odniesienia do API. ImageCreator pojawił się w iOS i iPadOS 18.4, macOS 15.4 oraz visionOS 2.4, a każdy wiersz platformy zawiera teraz wycofanie na poziomie 27.0, przy czym Mac Catalyst dołącza do czterech platform wymienionych w poście z wiadomościami.2 Abstrakt klasy opisuje dokładnie to, co zostaje utracone: „generuje obrazy programistycznie na podstawie opisu i informacji o stylu, które określisz”.2 Nie ma programistycznego zamiennika. Aplikacje, które generowały obrazy bezgłowo, bez prezentowania UI, nie mają bezpośredniego odpowiednika w tym frameworku.
Dla deweloperów, którzy już odeszli od tej klasy, zawiadomienie domyka temat: „Żadne dalsze działania nie są wymagane”.1
Dlaczego: modele przeniesiono na Private Cloud Compute
Sesja 375, „Create high quality images using Image Playground”, podaje powód oficjalnie. Image Playground zostało w tym roku przebudowane wokół potężniejszych modeli obrazu, które tworzą „wysokiej jakości obrazy w praktycznie dowolnym stylu, nawet fotorealistycznym”, a modele te działają na Private Cloud Compute, chroniącej prywatność infrastrukturze chmurowej Apple, a nie na urządzeniu.3 Następnie sesja łączy kropki: „Przeniesienie modeli na Private Cloud Compute oznaczało również przemyślenie API od nowa. ImageCreator, API bez UI do generowania obrazów bezpośrednio w kodzie, zostaje wycofane”.3
Ekonomia tłumaczy ten wybór projektowy. Image Playground ma teraz limit użycia, „ponieważ opiera się na potężnych modelach serwerowych”, przy czym zwiększony dostęp jest dostępny w ramach większości planów subskrypcji iCloud+.3 System zarządza tymi limitami w imieniu użytkownika, a sesja jednoznacznie mówi, że deweloper nigdy nie buduje UI związanego z użyciem.3 Bezgłowe API, które aplikacje mogłyby wywoływać w pętli, niezręcznie wpisuje się w ten model; systemowo prezentowany sheet sterowany przez użytkownika — już nie. Niezależnie od wewnętrznego uzasadnienia, dostarczony rezultat jest taki, że generowanie obrazów we frameworku odbywa się teraz poprzez doświadczenie systemowe.
Warto wymienić jeszcze jeden efekt uboczny: ImageCreator uruchamiał generowanie na urządzeniu, podczas gdy nowe doświadczenie działa na Private Cloud Compute, z zapewnieniem sesji, że „twoje dane nigdy nie są przechowywane ani udostępniane, nawet Apple”.3 To właśnie aplikacjom z twardym wymogiem generowania obrazów na urządzeniu framework już nie służy.
Migracja: jeden modyfikator widoku
W przypadku aplikacji SwiftUI przyjęcie zamiennika jest niewielkie. Aplikacja demonstracyjna z sesji dołącza .imagePlaygroundSheet do przycisku z powiązaniem do wartości logicznej @State; gdy powiązanie zmienia się na true, pojawia się sheet, a domknięcie zakończenia otrzymuje URL do wygenerowanego pliku.3 URL wskazuje na lokalizację tymczasową wewnątrz kontenera aplikacji, więc sesja ostrzega, aby zapisać go w innym miejscu przed zakończeniem sesji.3 Aplikacje UIKit i AppKit otrzymują to samo doświadczenie poprzez ImagePlaygroundViewController, ustawiając koncepcje i opcje jako właściwości oraz odbierając rezultat poprzez metodę delegata.3
To, co sheet traci w programowalności, częściowo odzyskuje w zasiewaniu. ImagePlaygroundConcept wnosi kontekst aplikacji do sheetu: text opakowuje bezpośredni opis, extracted przyjmuje dłuższy tekst i pozwala systemowi wydobyć istotne idee, a drawing przyjmuje PKDrawing z PencilKit jako wizualną sugestię.3 Parametr sourceImage zasiewa sheet dowolnym Image z SwiftUI jako inspiracją.3 ImagePlaygroundOptions i ImagePlaygroundStyle konfigurują resztę: żądanie rozmiaru closest(to:) mapuje dowolny CGSize na najbliższą obsługiwaną rozdzielczość i proporcje obrazu, a styl generowania przyjmuje wartość domyślną plus dozwoloną listę, blokując selektor na pojedynczym stylu, gdy lista ma jeden wpis.3
Dwie nowsze możliwości osładzają tę zamianę. Styl externalProvider to opcjonalny wpis udostępniający dowolnego zewnętrznego dostawcę skonfigurowanego przez użytkownika w Ustawieniach, na przykład ChatGPT, przy czym system obsługuje konfigurację, gdy żaden dostawca nie istnieje.3 Z kolei styl emoji uruchamia oddzielne domknięcie zakończenia, które zwraca NSAdaptiveImageGlyph, możliwe do osadzenia w tekście tak jak emoji.3
Obsługa dostępności pozostaje prosta: wartość środowiskowa supportsImageGeneration zwraca true tylko wtedy, gdy urządzenie ma daną możliwość, język i region są obsługiwane, a użytkownik ma włączone generowanie obrazów, więc pojedyncza instrukcja warunkowa obejmuje ścieżkę awaryjną.3
Decyzja dla dotkniętych aplikacji
Zawiadomienie podaje dwie opcje migracji, a sesja dostarcza materiału do oceny. Aplikacje, w których generowanie obrazów było funkcją kreatywną widoczną dla użytkownika, powinny sięgnąć po sheet: nowe modele są mocniejsze niż to, co wywoływał ImageCreator, API zasiewania wnosi kontekst aplikacji, a system za darmo przejmuje limity użycia, selektory stylów i personalizację osób.3 Aplikacje, które polegały na generowaniu bezgłowym, tworzące obrazy w przepływie w tle bez interakcji użytkownika, nie mają ścieżki wewnątrz frameworku; dla nich druga opcja Apple, czyli zintegrowanie „innej wybranej przez siebie usługi generowania obrazów”, jest uczciwą odpowiedzią.1
Wycofanie wpisuje się również we wzorzec tego cyklu. Apple oznaczyło MXMetricManager jako wycofane na poziomie 27.0 w tym samym tygodniu, w którym dostarczyło zastępcze API raportowania, omówione w raportowaniu stanu w MetricKit w iOS 27. Platforma przycina API jeden cykl po pojawieniu się ich zamienników, a okres beta jest oknem migracji.
FAQ
Kiedy dokładnie ImageCreator przestaje działać?
Etapami.1 W trakcie wersji beta iOS 27, iPadOS 27, macOS 27 i visionOS 27 kod kompiluje się z ostrzeżeniami Xcode, ale kompilacje TestFlight napotykają błąd czasu wykonania. W publicznych wydaniach tej jesieni kod przestaje się kompilować, a funkcje przestają działać dla użytkowników. Dokumentacja Apple oznacza wycofanie na poziomie 27.0 w iOS, iPadOS, macOS, Mac Catalyst i visionOS.2
Dlaczego Apple usunęło programistyczne generowanie obrazów?
Sesja wiąże to ze zmianą architektury: modele Image Playground przeniesiono na Private Cloud Compute, a „przeniesienie modeli na Private Cloud Compute oznaczało również przemyślenie API od nowa”.3 Nowy system zarządza limitami użycia modeli serwerowych w imieniu użytkownika, ze zwiększonym dostępem poprzez plany iCloud+ — model, który lepiej pasuje do sheetu sterowanego przez użytkownika niż do bezgłowego API.3
Co go zastępuje?
Systemowy interfejs: modyfikator imagePlaygroundSheet w SwiftUI albo ImagePlaygroundViewController w UIKit i AppKit.3 Można go zasiać koncepcjami tekstowymi, wyodrębnionym tekstem, rysunkami PencilKit oraz obrazem źródłowym, a także skonfigurować rozmiar, style i personalizację. W przypadku generowania bezgłowego deklarowaną przez Apple alternatywą jest zewnętrzna usługa generowania obrazów.1
Czy cokolwiek nadal jest generowane na urządzeniu?
Sesja opisuje nowe generowanie obrazów jako działające na Private Cloud Compute, z zapewnieniem, że dane „nigdy nie są przechowywane ani udostępniane, nawet Apple”.3 Aplikacje wymagające ściśle generowania obrazów na urządzeniu nie mają już dla niego ścieżki we frameworku.
Przejście na Private Cloud Compute napędzające tę zmianę jest tym samym, które przekształca tekstową stronę Apple Intelligence, omówioną w Foundation Models i Private Cloud Compute. Inne wycofanie, które Apple dostarczyło w tym cyklu wraz z zamiennikiem, opisuje raportowanie stanu w MetricKit w iOS 27. Centrum całej serii to Seria Apple Ecosystem.
Źródła
-
Apple, Deprecation of the ImageCreator class, Apple Developer News, 11 czerwca 2026. Źródło dla wycofania („the ImageCreator class is being discontinued and will no longer work in iOS 27, iPadOS 27, macOS 27, and visionOS 27 or later”), etapowego harmonogramu (wydania beta: kod kompiluje się z ostrzeżeniami Xcode, aplikacje „will not function in TestFlight builds and will cause a runtime error”; publiczne wydania: kod nie skompiluje się, a funkcje przestają działać), instrukcji aktualizacji przed publicznym wydaniem, dwóch opcji migracji (sheet Image Playground albo „another image generation service of your choice”) oraz uwagi, że już zmigrowane aplikacje nie wymagają dalszych działań. ↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple, ImageCreator documentation, Apple Developer Documentation. Źródło dla macierzy dostępności platform (wprowadzone w iOS 18.4, iPadOS 18.4, macOS 15.4, visionOS 2.4; wycofane na poziomie 27.0 w iOS, iPadOS, macOS, Mac Catalyst i visionOS) oraz abstraktu klasy („Generates images programmatically from the description and style information you specify”). ↩↩↩↩
-
Apple, WWDC 2026 sesja 375, Create high quality images using Image Playground. Oficjalny transkrypt. Źródło dla oświadczenia o wycofaniu i jego uzasadnienia („Moving the models to Private Cloud Compute also meant rethinking the API. ImageCreator, the non-UI API for generating images directly in your code, is deprecated”), możliwości nowych modeli („high quality images in virtually any style, even photorealistic ones”), wykonania na Private Cloud Compute z zapewnieniem prywatności („your data is never stored or shared, even with Apple”), limitów użycia i dostępu iCloud+ z systemowo zarządzanym UI limitów, przepływu przyjęcia
imagePlaygroundSheet(prezentacja sterowana powiązaniem, URL zakończenia w tymczasowej lokalizacji kontenera aplikacji),ImagePlaygroundViewControllerdla UIKit i AppKit z wynikami opartymi na delegacie, zasiewaniaImagePlaygroundConcept(text,extracted,drawingz PencilKit), parametrusourceImage,ImagePlaygroundOptionsz mapowaniem rozmiaruclosest(to:), wartości domyślnych stylu i dozwolonych list, w tym blokowania na pojedynczym stylu, opcjonalnego styluexternalProviderz ChatGPT jako przykładem i systemowo obsługiwaną konfiguracją, domknięciaNSAdaptiveImageGlyphdla stylu emoji oraz wartości środowiskowejsupportsImageGenerationobejmującej daną możliwość, język i region oraz ustawienie użytkownika. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩