Czy aplikacje oparte na Swift działają na OS X 10.9 / iOS 7 i niższych?

616

Czy aplikacje oparte na Swift będą działać na OS X 10.9 (Mavericks) / iOS 7 i niższych?

Na przykład mam komputer z systemem OS X 10.8 (Mountain Lion) i zastanawiam się, czy aplikacja napisana w Swift będzie na nim działała.

Lub co powinienem stworzyć, aby stworzyć aplikację Swift w systemie Mac OS?

Meir
źródło
51
Zakładając, że Swift jest skompilowany w „normalny” plik wykonywalny i przy założeniu, że w systemie operacyjnym nie jest potrzebna specyficzna biblioteka środowiska wykonawczego Swift, to tak, powinien on działać na starszych systemach. Po prostu jeszcze nie wiemy. Pobierz Xcode 6 i wypróbuj.
rmaddy
12
Oficjalna odpowiedź znajduje się w filmie o stanie Unii.
Steven Fisher
3
@rmaddy FWIW: w WWDC w prezentacji Swift najwyraźniej stwierdzono, że Swift i Objective-C mają ten sam czas działania.
11684
1
Jest to wiedza publiczna, o której wspominano nawet w myślach, że działa na tych systemach operacyjnych.
rhummelmose
3
To pytanie jest używane jako przykład na stronie wycieczki .
Kaczor Donald

Odpowiedzi:

520

Właśnie go przetestowałem, aplikacje Swift kompilują się w standardowe pliki binarne i można je uruchomić w systemie OS X 10.9 i iOS 7.


Prosta aplikacja Swift używana do testowania:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

    var controller = UIViewController()
    var view = UIView(frame: CGRectMake(0, 0, 320, 568))
    view.backgroundColor = UIColor.redColor()
    controller.view = view

    var label = UILabel(frame: CGRectMake(0, 0, 200, 21))
    label.center = CGPointMake(160, 284)
    label.textAlignment = NSTextAlignment.Center
    label.text = "I'am a test label"
    controller.view.addSubview(label)

    self.window!.rootViewController = controller
    self.window!.makeKeyAndVisible()
    return true
}
Leandros
źródło
13
Zobacz stackoverflow.com/questions/24007050/… - koliduje z tą odpowiedzią (przynajmniej część „lub nawet niższa”).
rmaddy
14
Testowałem tylko iOS 7.0 i OS X 10.9. Jak powiedzieliśmy w odpowiedzi.
Leandros,
@Leandros Używając słowa kluczowego var, dlaczego musimy wpisać UIViewController dwa razy w tym wierszu „var controller: UIViewController = UIViewController ()”? Czy var nie jest tym samym co JavaScript / C # (jeśli nie, to takie smutne)? Czy to rzutowanie, ale typy obiektów są takie same po obu stronach znaku równości?
Tien Do
3
@TienDo Nie mam doświadczenia Swift, ale przypuszczam, że pierwszy UIViewControllerpo dwukropku reprezentuje typ zmiennej, a drugie wystąpienie po =znaku wywołuje konstruktor (inicjuje zmienną).
ComFreek,
2
Dla iOS: w Xcode 6 beta istnieją cele wdrożenia do iOS 6. Przetestowałem je wszystkie, sprawdziłem, że znalazłem. Istnieje kilka odpowiedzi na to samo.
ySiggen
197

Kod Swift można wdrożyć w systemie OS X 10.9 i iOS 7.0. Zwykle ulega awarii podczas uruchamiania w starszych wersjach systemu operacyjnego.

Greg Parker
źródło
4
Greg, dziękuję za przybycie tutaj, aby odpowiedzieć na pytania. Czy możesz powiedzieć coś o zmianach 10,8-> 10,9 i 6.x-> 7.0, które pozwalają na uruchomienie kodu wygenerowanego z Swift?
Ivan Vučica
20
Swift ustawia niektóre bity w metadanych Objective-C, aby oznaczyć klasy Swift. libobjc w OS X 10.9 i iOS 7.0 został zmieniony, aby zignorować te bity w ramach przygotowań do przybycia Swift. Starsze wersje systemu operacyjnego będą mylone przez te bity.
Greg Parker
9
Chciałbym DUŻO docenić jeśli Apple będzie rozważyć Swift apps pracować na starszych platformach zbyt (przynajmniej z OSX 10,7 roku). Powodem jest to, że wciąż mamy wielu klientów z tym systemem operacyjnym, więc nie możemy zacząć rozwijać się z Swift od lat, jeśli 10,9 to minimalnie obsługiwany system operacyjny!
Mike Lischke,
2
@GregParker Czy jest szansa, że ​​możesz zaktualizować tę odpowiedź dla Swift 2, niezależnie od tego, czy zmieniły się wymagania dotyczące czasu wykonywania?
Andrey Tarantsov
1
Minimalne obsługiwane cele wdrażania dla plików wykonywalnych Swift to iOS 7.0 i OSX 10.9. Interfejsy API przestarzałe w iOS 7 / OSX 10.9 lub wcześniejszych będą niedostępne. Podczas budowania Swift obsługuje tylko zestaw SDK, z którym jest dostarczany w Xcode.
Flash Sheridan,
103

Apple ogłosiło, że aplikacje Swift będą wstecznie kompatybilne z iOS 7 i OS X Mavericks. Aplikacja WWDC jest napisana w Swift.

Ben Gottlieb
źródło
11
Naprawdę WWDC jest napisane w Swift?
Satheeshwaran
7
Tak, aplikacja WWDCC jest napisana w Swift. Jak powiedzieli wczoraj.
Shial
22
Jay Freeman twierdzi inaczej: twitter.com/saurik/status/473785847926374400
Ivan Vučica
2
Jednak taktyka marketingowa Apple jest często stosowana przez firmy. Windows został napisany w asemblerze! Cóż, tylko bootloader i kilka innych rzeczy, ale został napisany w asemblerze.
Cole Johnson
4
@ IvanVučica, ale 4 klasy wystarczą, aby odpowiedzieć na pytanie dotyczące zgodności.
ilya n.
100

Aktualizacja - zgodnie z Xcode 6 Beta 4

Minimalne miejsce docelowe wdrożenia w systemie iOS 7 i OS X 10.9

Kompilator Swift i Xcode egzekwują teraz minimalny cel wdrożenia systemu iOS 7 lub OS X Mavericks. Ustawienie wcześniejszego celu wdrożenia powoduje niepowodzenie kompilacji.

Z informacji o wersji Xcode 6

Moja poprzednia odpowiedź (pokazana poniżej) nie będzie miała zastosowania do dalszego rozwoju. Swift nie będzie już dostępny dla iOS6 i niższych


Aplikację Swift można uruchomić na iOS 6. Chociaż wiele osób twierdzi, że Swift będzie obsługiwać tylko iOS 7+ i OS X 10.9+, z mojego doświadczenia wynika, że ​​nie.

Przetestowałem prostą aplikację napisaną całkowicie w Swift na urządzeniu z systemem iOS 6. Działa idealnie dobrze . Jak mówi Apple, kod Swift jest binarnie zgodny z kodem Objective-C. Do utworzenia pliku binarnego używa tego samego kompilatora i środowiska wykonawczego.

Oto kod, który przetestowałem:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {

        super.viewDidLoad()

        let button   = UIButton.buttonWithType(UIButtonType.System) as UIButton
        button.frame = CGRectMake(100, 100, 100, 50)
        button.backgroundColor = UIColor.greenColor()
        button.setTitle("Test Button", forState: UIControlState.Normal)
        button.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside)

        self.view.addSubview(button)
    }

    func buttonTapped(sender: UIButton!) {
        println("buttonTapped")
    }
}

Jest to prosta aplikacja, po prostu programowo dodająca przycisk. Moja aplikacja zawiera tylko dwa pliki AppDelegate.swifti ViewController.swift.

Jeśli więc nie używasz żadnych nowych interfejsów API dodanych jako część zestawu SDK systemu iOS 8 lub niektórych interfejsów API Swift (odpowiedni interfejs API nie jest dostępny dla Objective-C), aplikacja będzie bezproblemowo działać na iOS 6 lub nowszym (przetestowanym i działającym), nawet na iOS 5 (nie testowane). Większość interfejsów API w Swift to tylko zamiana istniejących interfejsów API Objective-C. W rzeczywistości są one takie same w systemie binarnym.

Uwaga: Zgodnie z Xcode 6 beta 4 celem szybkiego wdrożenia aplikacji powinien być system iOS 7 lub OS X 10.9 (patrz powyższa aktualizacja). Więc swift nie będzie już dostępny dla iOS6 i niższych


Anil Varghese
źródło
Podobnie jak w przypadku poprzednich aktualizacji systemu, niektóre frameworki / klasy są wycofywane i muszą być warunkowo obsługiwane.
Miriam H.,
@TienDo Nie potrzeba średników :) Nawet jeśli przez pomyłkę (to tradycja) nie będzie problemu
Anil Varghese
3
Ale nadal możesz używać średników, jeśli naprawdę chcesz. dwie wypowiedzi w jednym wierszu są oddzielone średnikiem
PaulWoodIII
33

W skrócie:

Dzięki tej samej aplikacji aplikacje oparte na systemie Swift mogą być kierowane z powrotem na system OS X Mavericks lub iOS 7 .

Jak to jest możliwe ?

Xcode osadza małą bibliotekę środowiska wykonawczego Swift w pakiecie aplikacji . Ponieważ biblioteka jest osadzona, Twoja aplikacja korzysta ze spójnej wersji Swift, która działa w poprzednich, obecnych i przyszłych wersjach systemu operacyjnego.

Dlaczego mam ufać tej odpowiedzi?

Ponieważ nie mówię tej odpowiedzi, jak ktoś z jabłek powiedział mi na Twitterze lub napisałem cześć światu i przetestowałem.

Wziąłem go z blogu programistów Apple .

więc możesz temu zaufać.

Durai Amuthan.H
źródło
2
„mały” zajmuje około 20 MB lub coś takiego. :)
BangOperator,
1
Włączenie całego środowiska wykonawczego do pliku binarnego może wydawać się nieco rozdęte, ale ponieważ Swift wciąż nie jest całkowicie stabilny, sensowne jest, aby pozwolić programistom na rekompilację z nową wersją Swift w ich własnym czasie, zamiast aktualizować niektóre biblioteki współdzielone i niszcząc aplikacje wszystkich. Kiedy Swift się ustabilizuje, zakładam, że środowisko wykonawcze będzie przechowywane obok wszystkiego innego, gdzieś w dylib.
William T Froggard
@WilliamTFroggard - Tak, mam nadzieję
Durai Amuthan.H
30

Swift używa tego samego środowiska wykonawczego co Objective-C i może nawet żyć obok siebie Objective-C w tej samej aplikacji (zgodnie z uwagą WWDC 2014).

Będzie to wymagało sprawdzenia / weryfikacji za pomocą Xcode 6 i nowego zestawu SDK, aby znaleźć ostateczną odpowiedź.

Chris Pietschmann
źródło
1
Wygląda na to, że użycie Xcode Beta 6 pozwoli Ci uruchomić szybkie aplikacje na 10.9.3, ale nie jestem pewien, jak daleko wstecz będzie mogła działać szybka aplikacja, np. 10.7 lub 10.8?
John
22

Przeczytałem wszystkie odpowiedzi, które brzmiały: Nie, Swift nie działa z wersją mniejszą niż iOS 7. Ale powiedziałem TAK , właśnie stworzyłem projekt Swift, który działa w Xcode 5 z celem wdrożenia 6.0.

  • Właśnie stworzyłem projekt demonstracyjny w Xcode 6 BETA z wybranym językiem programowania Swift.
  • Zamknij Xcode 6 beta, a ja otworzę ten projekt demonstracyjny w Xcode 5 z celem wdrożenia 6.0
  • A także wybierz symulator 6.1 .

Następnie projekt działa dobrze w symulatorze 6.1 . My MacOS X 10.9.3 , więc powiedziałem tak, że przebiega w niższej niż iOS 7. 10.9.3 Mac OS X .

Oto zrzut ekranu symulatora:

Wpisz opis zdjęcia tutaj

Oto również demo

Nitin Gohel
źródło
3
Pytanie: Bez szybkiego wsparcia, w jaki sposób XCode-5 buduje szybkie źródło?
Subin Sebastian,
możesz zobaczyć zrzut ekranu symulatora :) Nie utworzyłem powyższego zrzutu ekranu w Photoshopie
Nitin Gohel
mam na myśli, że przekonwertowałem aplikację c na szybką i mam klientów, którzy są tam na iOS 6. Czy więc szybka aplikacja będzie działać?
Maneesh Sharma
najpierw próbujesz z kodem demonstracyjnym, jeśli to działa, a następnie tak, że definity działa
Nitin Gohel
20

Podczas gdy kod to potwierdza, sam Apple powiedział, że Swift będzie kompatybilny z iOS 7 i Mavericks w swoim głównym wystąpieniu technicznym ( stan platform , sesja 102, około 34 minut 00 sekund) na WWDC 2014 .

virindh
źródło
15

Aplikacje Swift są obsługiwane w systemie iOS 7 i nowszych, jak podano w informacjach o wersji Beta 4. iOS 6.0, 6.1, 7.0, 7.1, 8.0 w Xcode 6 Beta

Aplikacje Swift są obsługiwane na platformach OS X 10.9 i nowszych . OS X 10.4–10.10 w obszarze docelowym wdrażania. Testowałem na celowaniu od 10.5 do 10.10 i na 10.9.3

vladof81
źródło
1
Myślę, że różne cele wdrażania nie są jeszcze poprawne (XCode 6 to wersja beta). To, że możesz wybrać tę wartość, nie oznacza, że ​​działa. Próbowałem z OSX 10.7 jako celem i nie działało. Należy również pamiętać, że autorytatywne potwierdzenie dotyczące platform zostało podane powyżej przez Grega Parkera.
Mike Lischke,
@Mike Lischke, znowu, miałem kilka testów na poparcie moich argumentów. Mogę uruchomić aplikację OS X po wybraniu Deployment Target 10.7. Ale doceniam to, że poruszyłeś wątek obsługi aplikacji OS X.
vladof81
Jak zatem wyjaśnisz moje wyniki? A co napisał Greg Parker? Byłbym bardzo szczęśliwy, gdyby Swift Apps działał na 10.7, ale jak dotąd nie widziałem działającego przykładu. Oczywiście mogę również ustawić 10.7 jako cel wdrażania, ale to nie robi różnicy. Aplikacja crahs.
Mike Lischke,
@Mike Lischke, czy testowałeś aplikacje na iOS na urządzeniach?
vladof81
1
Widziałem to i przetestowałem wszystkie cele wdrażania w Xcode 6 beta (tak samo jak odpowiedź). Działa dobrze, używając 2 różnych aplikacji testowych.
ySiggen
14

Wygląda na to, że aplikacje Swift nie działają w systemie OS X 10.7 . Właśnie stworzyłem prostą aplikację GUI (widok, etykieta, przycisk), która działa dobrze na Mavericks. Podstawowy zestaw SDK jest ustawiony na 10,9, a docelowy poziom wdrożenia na 10,7. Skopiowałem tę aplikację z folderu DerivedData na maszynę wirtualną w wersji 10.7 i ulega awarii podczas uruchamiania, pokaż ten błąd:

Crashed Thread:  0

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
dyld: launch, loading dependent libraries

    Dyld Error Message:

  Library not loaded: /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
  Referenced from: /Users/USER/Desktop/Swift-Test.app/Contents/MacOS/../Frameworks/libswiftAppKit.dylib
  Reason: image not found

Binary Images:
       0x109c65000 -        0x109c6afff +private.Swift-Test (1.0 - 1) <649695D0-58FD-3D02-9176-2D40D4E711F2> /Users/USER/Desktop/Swift-Test.app/Contents/MacOS/Swift-Test
       0x109c83000 -        0x109dbffff +libswift_stdlib_core.dylib (1.0 - 600.0.34.4.5) <10AAC369-9404-321D-A892-49F65856D7AF> /Users/USER/Desktop/Swift-Test.app/Contents/Frameworks/libswift_stdlib_core.dylib
...

Jednak ta wiadomość jest irytująca, ponieważ z pewnością w tej maszynie wirtualnej jest biblioteka CoreGraphics. Inne aplikacje wykorzystujące CoreGraphics działają dobrze.

Mike Lischke
źródło
14

Oto post, który przeczytałem z bloga Apple Swift, może być pomocny:

Kompatybilność aplikacji :

Jeśli napiszesz aplikację Swift, możesz mieć pewność, że będzie ona dobrze działać w przyszłości. W rzeczywistości możesz kierować z powrotem na OS X Mavericks lub iOS 7 za pomocą tej samej aplikacji. Jest to możliwe, ponieważ Xcode osadza małą bibliotekę środowiska wykonawczego Swift w pakiecie aplikacji. Ponieważ biblioteka jest osadzona, Twoja aplikacja korzysta ze spójnej wersji Swift, która działa w poprzednich, obecnych i przyszłych wersjach systemu operacyjnego.

Kompatybilność binarna i ramy:

Podczas gdy zapewniona jest kompatybilność środowiska wykonawczego aplikacji, sam język Swift będzie nadal ewoluował, a interfejs binarny również się zmieni. Ze względów bezpieczeństwa wszystkie komponenty aplikacji powinny być zbudowane przy użyciu tej samej wersji Xcode i kompilatora Swift, aby zapewnić ich współpracę.

Oznacza to, że ramami należy ostrożnie zarządzać. Na przykład, jeśli twój projekt korzysta ze szkieletów do współdzielenia kodu z osadzonym rozszerzeniem, będziesz chciał zbudować razem szkielety, aplikację i rozszerzenia. Opieranie się na strukturach binarnych korzystających z Swift byłoby niebezpieczne - zwłaszcza od stron trzecich. Gdy zmieni się Swift, te frameworki będą niekompatybilne z resztą Twojej aplikacji. Kiedy interfejs binarny ustabilizuje się za rok lub dwa, środowisko wykonawcze Swift stanie się częścią systemu operacyjnego hosta i to ograniczenie przestanie istnieć.

Yatheesha BL
źródło
12

Testowałem uruchomienie aplikacji Swift bez podstaw na urządzeniu iPod Touch (3. generacji). Wydaje się, aplikacje oparte Swift nie zrobić pracę z iOS 5.x ale zrobić pracę z iOS 6.x.

Oto, co pojawia się w dzienniku debugowania, gdy próbowałem uruchomić aplikację testową z iOS 5.0.1:

dyld: F_ADDFILESIGS failed for /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswift_stdlib_core.dylib with errno=1
dyld: F_ADDFILESIGS failed for /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswiftCoreGraphics.dylib with errno=1
dyld: F_ADDFILESIGS failed for /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswiftDarwin.dylib with errno=1
dyld: F_ADDFILESIGS failed for /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswiftDispatch.dylib with errno=1
dyld: F_ADDFILESIGS failed for /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswiftFoundation.dylib with errno=1
dyld: F_ADDFILESIGS failed for /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswiftObjectiveC.dylib with errno=1
dyld: F_ADDFILESIGS failed for /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswiftUIKit.dylib with errno=1
dyld: Symbol not found: _OBJC_CLASS_$_NSObject
  Referenced from: /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswift_stdlib_core.dylib
  Expected in: /usr/lib/libobjc.A.dylib
 in /private/var/mobile/Applications/59E31E79-9525-43B0-9DF6-8FEF3C0080F1/SwiftTestApp.app/Frameworks/libswift_stdlib_core.dylib

W systemie iOS 6.1.6 aplikacja działa poprawnie bez wyświetlania tych komunikatów o błędach.

David H.
źródło
12

Wydaje się, że jest tu wiele starych odpowiedzi, więc chciałem tylko opublikować oficjalną odpowiedź zespołu Swift. Swift jest wstecznie kompatybilny z OS X Mavericks i iOS 7

Swift blog programisty Apple: Identyfikator celu C jako Swift Any

11 lipca 2014 r

Zgodność

Jednym z najczęstszych pytań, jakie słyszeliśmy w WWDC było: „Jaka jest historia kompatybilności Swift?”. To wydaje się świetnym pierwszym tematem.

Zgodność aplikacji Mówiąc najprościej, jeśli napiszesz dziś aplikację Swift i prześlesz ją do App Store jesienią tego roku, kiedy zostaną wydane iOS 8 i OS X Yosemite, możesz mieć pewność, że Twoja aplikacja będzie działać dobrze w przyszłości. W rzeczywistości możesz kierować z powrotem na OS X Mavericks lub iOS 7 za pomocą tej samej aplikacji. Jest to możliwe, ponieważ Xcode osadza małą bibliotekę środowiska wykonawczego Swift w pakiecie aplikacji. Ponieważ biblioteka jest osadzona, Twoja aplikacja korzysta ze spójnej wersji Swift, która działa w poprzednich, obecnych i przyszłych wersjach systemu operacyjnego.

Oren
źródło
11

Próbowałem też bardzo prostej aplikacji na 10,8 (jeden przycisk, ustawia tekst na etykiecie). Rozbił się przy starcie, jak stwierdził Greg Parker:

Dyld Error Message:
  Symbol not found: __dispatch_source_type_memorypressure
  Referenced from: /Volumes/*/SwifTest.app/Contents/MacOS/../Frameworks/libswiftDispatch.dylib
  Expected in: /usr/lib/libSystem.B.dylib
in /Volumes/*/SwifTest.app/Contents/MacOS/../Frameworks/libswiftDispatch.dylib

(Użyto celu wdrożenia 10,7)

Valdar Moridin
źródło
10

Wypróbuj następujący kod:

Działa bez StoryBoard:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window!.backgroundColor = UIColor.whiteColor()

    // Create a nav/vc pair using the custom ViewController class

    let nav = UINavigationController()
    let vc = ViewController(nibName: "ViewController", bundle: nil)

    // Push the vc onto the nav
    nav.pushViewController(vc, animated: false)

    // Set the window’s root view controller
    self.window!.rootViewController = nav

    // Present the window
    self.window!.makeKeyAndVisible()
    return true
}
PREMKUMAR
źródło
I jak korzystać z nav.rootviewcontroller ??
Allan
8

Tak, w rzeczywistości Apple ogłosił, że aplikacje Swift będą wstecznie zgodne z iOS 7 i OS X Mavericks. Ponadto aplikacja WWDC jest napisana w języku programowania Swift.

Bodi Osman
źródło
8

Jeśli chodzi o Swift Frameworks. Na dzień dzisiejszy, w przypadku Xcode w wersji 6.1.1 (6A2008a), jeśli środowisko Swift jest ukierunkowane na system iOS 7.1, ostrzeżenie o raporcie linkera

ld: warning: embedded dylibs/frameworks only run on iOS 8 or later.

i aplikacji nie można przesłać do AppStore. Sprawdź ten problem: Lint, aby zapobiec przekazywaniu bibliotek dynamicznych i frameworków z iOS 7

Marcin
źródło
Swift Framework Mach-O Typemusi być Dynamic Libraryjednak iOS 7 akceptuje Static Librarytylko.
DawnSong
7

Szybka aktualizacja, obowiązująca od 15 lutego 2015 r. , Nie możemy przesyłać do sklepu aplikacji, które zostały opracowane przy użyciu pakietu SDK wcześniejszego niż iOS 8 . Mając to na uwadze, lepiej nie martwić się tym problemem, ponieważ wiele osób sugerowało, że aplikacje utworzone w Swift można wdrożyć również w systemie OS X 10.9 i iOS 7.0 .

13. duch
źródło
Czy podasz nam źródło?
Binus,
1
Istnieje różnica między podstawowym zestawem SDK a celem wdrażania. Możesz mieć podstawowy zestaw SDK systemu iOS 9 i docelowy cel wdrożenia systemu iOS 7 i przesłać go do iTunes Connect. Downvoting, ponieważ nie podałeś źródła.
Cœur
1
Aktualna dokumentacja firmy Apple nadal wspomina wsparcie dla iOS 4.3: developer.apple.com/library/content/documentation/IDEs/...
Coeur
1

Fragment kodu wysłany przez Leandrosa wydaje się nieco stary. Naprawiłem i uczyniłem go kompilowalnym w Swift 5.

Szybki 5

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.main.bounds)
    let controller = UIViewController()
    let view = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 568))
    view.backgroundColor = UIColor.red
    controller.view = view

    let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
    label.center = CGPoint(x: 160, y: 284)
    label.textAlignment = NSTextAlignment.center
    label.text = "I'am a test label"
    controller.view.addSubview(label)

    self.window!.rootViewController = controller
    self.window!.makeKeyAndVisible()
    return true
}
Sazzad Hissain Khan
źródło