Swift tabanlı uygulamalar OS X 10.9 / iOS 7 ve önceki sürümlerde çalışır mı?


616

Swift tabanlı uygulamalar OS X 10.9 (Mavericks) / iOS 7 ve daha düşük sürümlerde çalışır mı?

Örneğin, OS X 10.8 (Mountain Lion) çalıştıran bir makinem var ve Swift'te yazdığım bir uygulamanın üzerinde çalışıp çalışmayacağını merak ediyorum.

Veya Mac OS kullanarak bir Swift uygulaması oluşturmak için ne yapmam gerekir?


51
Swift'in "normal" bir yürütülebilir dosyada derlendiğini ve işletim sisteminde Swift'e özgü bir çalışma zamanı kütüphanesi olmadığını varsayarsak, evet, eski sistemlerde çalışmalıdır. Henüz bilmiyoruz. Xcode 6'yı indirin ve deneyin.
rmaddy

12
Birlik Devleti videosunda resmi bir cevap bulunacaktır.
Steven Fisher

3
@rmaddy FWIW: WWDC'de Swift sunumunda Swift ve Objective-C'nin aynı çalışma süresine sahip olduğu açıkça belirtildi.
11684

1
Bu kamusal bilgidir ve bu işletim sistemlerinde çalıştığı açılış konuşmasında bile belirtilmiştir.
rhummelmose

3
Bu soru, tur sayfasında örnek olarak kullanılan sorudur .
Donald Duck

Yanıtlar:


520

Sadece sizin için test ettim, Swift uygulamaları standart ikili dosyalara derlendi ve OS X 10.9 ve iOS 7'de çalıştırılabilir.


Test için kullanılan basit Swift uygulaması:

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
}

13
Bkz. Stackoverflow.com/questions/24007050/… - bu yanıtla çakışıyor (en azından "veya daha düşük" kısmı).
rmaddy

14
Yalnızca iOS 7.0 ve OS X 10.9'u test ettim. Cevabın dediği gibi.
Leandros

@Leandros var anahtar sözcüğünü kullanarak, neden "var controller: UIViewController = UIViewController ()" bu satıra UIViewController iki kez yazmamız gerekiyor? Var JavaScript / C # ile aynı değil mi (hayır ise, o zaman çok üzücü)? Bu döküm, ancak nesne tipleri eşittir işaretinin her iki tarafında aynı mı?
Tien Do

3
@TienDo Herhangi bir Swift deneyimim yok, ancak UIViewControlleriki nokta üst üste değişkenin türünü ve işaretin yapıcıyı çağırdıktan sonra ikinci oluşumu =(değişkeni başlatır) varsayalım .
ComFreek

2
İOS için: Xcode 6 beta'da iOS 6'ya kadar dağıtım hedefleri var. Hepsini test ettim, bulduk. Aynı şeyi cevaplayan bazı cevaplar var.
ySiggen

197

Swift kodu OS X 10.9 ve iOS 7.0'a dağıtılabilir. Genellikle eski işletim sistemi sürümlerinde başlatıldığında kilitlenir.


4
Greg, soruları cevaplamak için buraya geldiğin için teşekkürler. Swift'ten oluşturulan kodun çalışmasına izin veren 10.8-> 10.9 ve 6.x-> 7.0'da neler değiştiğini biraz söyleyebilir misiniz?
Ivan Vučica

20
Swift, Swift sınıflarını işaretlemek için Objective-C meta verilerindeki bazı bitleri ayarlar. OS X 10.9 ve iOS 7.0'daki libobjc, Swift'in gelişine hazırlanırken bu bitleri göz ardı edecek şekilde değiştirildi. Eski işletim sistemi sürümleri bu bitlerle karıştırılacaktır.
Greg Parker

9
Ben istiyorum FAZLA Elma Swift (OSX 10.7 itibaren en az) çok eski platformlar üzerinde çalışmaya uygulamaları yaparak ele alacak olursa teşekkür ederiz. Nedeni, bu işletim sistemi ile hala birçok müşterimiz olduğu için, 10.9 desteklenen en düşük işletim sistemi ise, Swift ile yıllarca gelişmeye başlayamayız!
Mike Lischke

2
@GregParker Çalışma zamanı gereksinimleri değişmiş olsun veya olmasın Swift 2 için bu yanıtı güncelleme şansınız var mı?
Andrey Tarantsov

1
Swift tarafından oluşturulan yürütülebilir dosyalar için desteklenen minimum dağıtım hedefleri iOS 7.0 ve OSX 10.9 olarak kalır. İOS 7 / OSX 10.9 veya önceki sürümlerde kullanımdan kaldırılan API'ler kullanılamayacak. İnşa ederken Swift, yalnızca Xcode ile birlikte gelen SDK'yı destekler.
Flash Sheridan

103

Apple, Swift uygulamalarının iOS 7 ve OS X Mavericks ile geriye dönük uyumlu olacağını duyurdu. WWDC uygulaması Swift yazılmıştır.


11
Gerçekten WWDC Swift yazılmış?
Satheeshwaran

7
Evet, WWDCC uygulaması Swift'te yazılmıştır. Dün söyledikleri gibi.
Shial

22
Jay Freeman aksini iddia ediyor: twitter.com/saurik/status/473785847926374400
Ivan Vučica

2
Apple'ın pazarlama taktiği, işletmeler tarafından yaygın olarak kullanılan bir taktiktir. Windows Assembly'de yazıldı! Eh, sadece bootloader ve bazı diğer şeyler, ama oldu montaj yazılmış.
Cole Johnson

4
@ IvanVučica ancak 4 sınıf uyumluluk sorusunu cevaplamak için yeterlidir.
ilya n.

100

Güncelleme - Xcode 6 Beta 4 uyarınca

iOS 7 ve OS X 10.9 minimum dağıtım hedefi

Swift derleyici ve Xcode şimdi iOS 7 veya OS X Mavericks için minimum dağıtım hedefini zorunlu kılıyor. Daha erken bir dağıtım hedefi belirlemek derleme hatasıyla sonuçlanır.

Xcode 6 sürüm notundan

Bu yüzden önceki cevabım (aşağıda gösterilmiştir) daha fazla geliştirme için geçerli olmayacaktır. Swift artık iOS6 ve daha düşük sürümlerde kullanılamayacak


Bir Swift uygulaması iOS 6'da çalıştırılabilir. Birçok kişi Swift'in yalnızca iOS 7+ ve OS X 10.9+ 'ı destekleyeceğini söylese de, deneyimimden değil.

Swift'te yazılmış basit bir uygulamayı bir iOS 6 cihazında test ettim. Mükemmel çalışıyor . Apple'ın dediği gibi Swift kodu Objective-C koduyla ikili olarak uyumludur. İkili oluşturmak için aynı derleyici ve çalışma zamanını kullanır.

İşte ben test kod:

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")
    }
}

Programlı bir düğme ekleyerek basit bir uygulamadır. Uygulamam sadece iki dosya içeriyor AppDelegate.swiftve ViewController.swift.

Dolayısıyla, iOS 8 SDK'sının veya bazı Swift'e özgü API'lerin bir parçası olarak eklenen yeni API'ları kullanmıyorsanız (Objective-C için karşılık gelen API kullanılamıyorsa) uygulamanız iOS 6 veya sonraki sürümlerde (test edilmiş ve çalışıyor) sorunsuz bir şekilde çalışacaktır iOS 5'te (test edilmedi). Swift'teki API'lerin çoğu, sadece mevcut Objective-C API'lerinin yerini almaktadır. Aslında ikili olarak aynıdırlar.

Not: Hızlı uygulamalar için Xcode 6 beta 4'e göre dağıtım hedefi iOS 7 veya OS X 10.9 olmalıdır (yukarıdaki güncellemeye bakın). Dolayısıyla, iOS6 ve daha düşük sürümler için artık hızlı kullanılamaz



Önceki sistem güncellemelerinde olduğu gibi, bazı çerçeveler / sınıflar durdurulur ve koşullu olarak desteklenmeleri gerekir.
Miriam H.

@TienDo Noktalı virgüllere gerek yok :) Yanlışlıkla koyarsanız bile (bu bir gelenek) bu bir sorun olmayacak
Anil Varghese

3
Ama gerçekten isterseniz noktalı virgül kullanabilirsiniz. bir satırdaki iki ifade noktalı virgülle ayrılır
PaulWoodIII

33

Kısaca:

Swift tabanlı uygulamalar, aynı uygulamayla OS X Mavericks veya iOS 7'yi hedefleyebilir .

Bu nasıl mümkün olaiblir ?

Xcode, küçük bir Swift çalışma zamanı kitaplığını uygulamanızın paketine gömer . Kütüphane gömülü olduğundan, uygulamanız geçmiş, şimdiki ve gelecekteki işletim sistemi sürümlerinde çalışan Swift'in tutarlı bir sürümünü kullanır.

Bu cevaba neden güveneyim?

Çünkü bu cevabı bir elma adamının Twitter'da söylediği gibi söylemiyorum ya da merhaba dünya yazdım ve test ettim.

Elma geliştirici blogundan aldım .

böylece buna güvenebilirsiniz.


2
"küçük" ~ 20 mb falan alır. :)
BangOperator

1
Tüm çalışma zamanını ikili dosyaya dahil etmek biraz şişmiş gibi görünebilir, ancak Swift hala tamamen kararlı olmadığından, geliştiricilerin bazı paylaşılan kütüphaneleri güncellemek yerine Swift'in yeni sürümüyle yeniden derlemelerine izin vermek mantıklıdır. herkesin uygulamalarını kırıyor. Swift sabitlendiğinde, çalışma zamanının başka bir yerde bir dylib'de her şeyin yanında saklanacağını varsayıyorum.
William T Froggard

@WilliamTFroggard - Evet umut çok
Durai Amuthan.H

30

Swift, Objective-C ile aynı çalışma zamanını kullanır ve aynı uygulamada (WWDC 2014 açılış notuna göre) yan yana Objective-C bile yaşayabilir.

Son bir cevap bulmak için bunun Xcode 6 ve yeni SDK kullanılarak kontrol edilmesi / doğrulanması gerekecektir .


1
Xcode Beta 6 kullanmanın 10.9.3'te hızlı uygulamalar çalıştırmanıza izin vereceği anlaşılıyor, ancak hızlı bir uygulamanın ne kadar geri çalışacağından emin değilim, eski 10.7 veya 10.8?
John

22

Şu yanıtları okudum: Hayır, Swift iOS 7'den daha azıyla çalışmıyor. Ama EVET dedim , Xcode 5'de 6.0 dağıtım hedefi ile çalışan bir Swift projesi oluşturdum.

  • Ben sadece Swift programlama dili seçili olarak Xcode 6 BETA'da bir demo projesi oluşturuyorum .
  • Xcode 6 beta'yı kapatın ve bu demo projesini dağıtım hedefi 6.0 ile Xcode 5'te açıyorum
  • Ve ayrıca simülatör 6.1'i seçin .

Sonra bu proje simülatör 6.1'de iyi çalışır . Benim MacOS X 10.9.3 olduğunu evet dedim bu yüzden, daha düşük de çalışır 10.9.3 Mac OS X ile iOS 7'de .

İşte simülatörün bir ekran görüntüsü:

Resim açıklamasını buraya girin

İşte bir demo


3
Soru: Hızlı destek olmadan XCode-5 hızlı kaynağı nasıl oluşturur?
Subin Sebastian

simulatore ekran görüntüsünü görebilirsiniz :) Photoshop'ta yukarıdaki ekli ekran görüntüsünü oluşturmadım
Nitin Gohel

i hızlı ve ios 6 orada müşteriler var bir objektif c uygulaması dönüştürdüm demek. Hızlı uygulama işe yarayacak mı?
Maneesh Sharma

önce bu çalışırsa demo kodu ile deneyin sonra evet bu definaty çalışır
Nitin Gohel

20

Kod bunu doğrulasa da Apple, Swift'in WWDC 2014'teki teknik anahtar notlarında ( platformların durumu , oturum 102, 34 dakika 00 saniye civarında) iOS 7 ve Mavericks ile uyumlu olacağını söyledi .


15

Hızlı uygulamalar, Beta 4 sürüm notlarında belirtildiği gibi iOS 7 ve üstü sürümlerde desteklenir . Xcode 6 Beta sürümünde iOS 6.0, 6.1, 7.0, 7.1, 8.0

Hızlı uygulamalar OS X 10.9 ve üstü platformlarda desteklenir . Dağıtım Hedefinde OS X 10.4 ila 10.10. 10.5 ile 10.10 arasında hedeflemeyi test ettim ve 10.9.3'te çalıştım


1
Çeşitli dağıtım hedeflerinin henüz doğru olmadığını düşünüyorum (XCode 6 bir beta). Değeri seçmeniz işe yaradığı anlamına gelmez. Ben hedef olarak OSX 10.7 ile çalıştı ve onu vermedi değil çalışır. Ayrıca platformlar hakkında yetkili bir onayın yukarıda Greg Parker tarafından verildiğini unutmayın.
Mike Lischke

@Mike Lischke, yine, argümanlarımı yedeklemek için birkaç test yaptım. Ve Dağıtım Hedefi 10.7'yi seçtiğimde OS X uygulamasını çalıştırabilirim. Ancak OS X uygulama desteklerinin konusunu açtığınızı takdir ediyorum.
vladof81

O zaman sonuçlarımı nasıl açıklıyorsunuz? Peki ya Greg Parker ne yazmıştı? Swift Apps 10.7 üzerinde çalışırsa çok mutlu olurum ama şimdiye kadar çalışan bir örnek gördüm. Tabii ki 10.7'yi de dağıtım hedefi olarak ayarlayabilirim, ancak bir fark yaratmaz. Uygulama crahs.
Mike Lischke

@Mike Lischke, iOS uygulamalarını cihazlarda test ettiniz mi?
vladof81

1
Ayrıca gördüm ve Xcode 6 beta'daki tüm dağıtım hedefini test ettim (cevapla aynı). 2 farklı test uygulaması kullanarak iyi çalıştı.
ySiggen

14

Swift uygulamaları görünür olmayan çalıştırmak OS X 10.7 . Mavericks üzerinde iyi çalışan basit bir GUI uygulaması (görünüm, etikel, düğme) oluşturdum. Temel SDK değeri 10.9 ve dağıtım hedefi 10.7 olarak ayarlanmıştır. Bu uygulamayı DerivedData klasöründen 10.7 sanal makineme kopyaladım ve başlatıldığında çöküyor, şu hatayı göster:

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
...

Bununla birlikte, bu VM'de kesinlikle bir CoreGraphics kütüphanesi olduğu için bu mesaj rahatsız edici. CoreGraphics'i yoğun kullanan diğer uygulamalar gayet iyi çalışıyor.


14

Bu, Apple Swift blogundan okuduğum yazı, yardımcı olabilir:

Uygulama Uyumluluğu :

Bir Swift uygulaması yazarsanız, uygulamanızın gelecekte iyi çalışacağına güvenebilirsiniz. Aslında, aynı uygulamayla OS X Mavericks veya iOS 7'yi tekrar hedefleyebilirsiniz . Bu mümkündür, çünkü Xcode küçük bir Swift çalışma zamanı kitaplığını uygulamanızın paketine gömer. Kütüphane gömülü olduğundan, uygulamanız geçmiş, şimdiki ve gelecekteki işletim sistemi sürümlerinde çalışan Swift'in tutarlı bir sürümünü kullanır.

İkili Uyumluluk ve Çerçeveler:

Uygulamanızın çalışma zamanı uyumluluğu sağlanmış olsa da, Swift dilinin kendisi gelişmeye devam edecek ve ikili arayüz de değişecektir. Güvende olmak için, uygulamanızın tüm bileşenleri, birlikte çalıştıklarından emin olmak için Xcode ve Swift derleyicisinin aynı sürümüyle oluşturulmalıdır.

Bu, çerçevelerin dikkatle yönetilmesi gerektiği anlamına gelir. Örneğin, projeniz gömülü bir uzantıyla kodu paylaşmak için çerçeveler kullanıyorsa, çerçeveleri, uygulamayı ve uzantıları birlikte oluşturmak istersiniz. Swift'i kullanan ikili çerçevelere güvenmek tehlikeli olurdu - özellikle üçüncü taraflardan. Swift değiştikçe, bu çerçeveler uygulamanızın geri kalanıyla uyumsuz olacaktır. İkili arabirim bir veya iki yıl içinde sabitlendiğinde, Swift çalışma zamanı ana işletim sisteminin bir parçası olacak ve bu sınırlama artık mevcut olmayacaktır.


12

İPod Touch (3. nesil) bir cihazda çıplak kemikli, Swift tabanlı bir uygulamayı çalıştırmayı test ettim. Swift tabanlı uygulamalar görünür değil iOS 5.x ile işi ama do iOS 6.x ile çalışmalarını

İOS 5.0.1 ile test uygulamasını başlatmaya çalıştığımda hata ayıklama günlüğünde şunlar görünüyor:

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

İOS 6.1.6 için, uygulama bu hata mesajlarını görüntülemeden iyi çalışır.


12

Burada çok sayıda eski yanıt var gibi görünüyor, bu yüzden Swift ekibinden resmi yanıt göndermek istiyorum. Swift, OS X Mavericks ve iOS 7 ile geriye dönük olarak uyumludur

Apple geliştirici hızlı blog: Swift Any olarak Objective-C kimliği

11 Temmuz 2014

uygunluk

WWDC'de duyduğumuz en yaygın sorulardan biri “Swift için uyumluluk hikayesi nedir?” İdi. Bu harika bir ilk konu gibi görünüyor.

Uygulama Uyumluluğu Basitçe söylemek gerekirse, bugün bir Swift uygulaması yazıp iOS 8 ve OS X Yosemite yayınlandığında bu sonbaharda App Store'a gönderirseniz, uygulamanızın gelecekte iyi çalışacağına güvenebilirsiniz. Aslında, aynı uygulamayla OS X Mavericks veya iOS 7'yi tekrar hedefleyebilirsiniz. Bu mümkündür, çünkü Xcode küçük bir Swift çalışma zamanı kitaplığını uygulamanızın paketine gömer. Kütüphane gömülü olduğundan, uygulamanız geçmiş, şimdiki ve gelecekteki işletim sistemi sürümlerinde çalışan Swift'in tutarlı bir sürümünü kullanır.


11

Ayrıca 10.8 üzerinde çok basit bir uygulama denedim (bir düğme, bir etikette metin ayarlar). Greg Parker'ın belirttiği gibi başlangıçta çöktü:

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

(Bu, 10,7'lik bir dağıtım hedefi kullanıyordu)


10

Aşağıdaki kodu deneyin:

StoryBoard olmadan çalışıyor:

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
}

Ve nav.rootviewcontroller nasıl kullanılır?
Allan

8

Evet, aslında Apple Swift uygulamalarının iOS 7 ve OS X Mavericks ile geriye dönük uyumlu olacağını duyurdu. Ayrıca WWDC uygulaması Swift programlama dilinde yazılmıştır.


8

Swift Frameworks söz konusu olduğunda. Bugün gelince, Xcode sürüm 6.1.1 (6A2008a) ile, Swift çerçevesi iOS 7.1'i hedefliyorsa, bağlayıcı raporu uyarısı

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

ve uygulama AppStore'a gönderilemez. Bu sorunu kontrol edin: Dinamik kitaplıkların ve çerçevelerin iOS 7 ile geçmesini önlemek için tüy bırakmayan


Bununla birlikte, Swift Framework'ler iOS 7'nin Yalnızca kabul ettiği Mach-O Typeolmalıdır . Dynamic LibraryStatic Library
DawnSong

7

Hızlı Güncelleme, 15 Şubat 2015 tarihinden itibaren geçerlidir, iOS 8'den önce bir SDK kullanılarak geliştirilen mağazaya uygulama gönderemiyoruz . Bu nedenle, birçok kişi Swift'te yapılan uygulamaların OS X 10.9 ve iOS 7.0'a da dağıtılabileceğini önerdiği için, bu sorun hakkında endişelenmemek daha iyidir .


Bize bir kaynak sağlar mısınız?
Binus

1
Temel SDK ile Dağıtım Hedefi arasında bir fark vardır. Sen bir Baz SDK olabilir iOS 9 ve bir Dağıtım Hedefi iOS 7 ve iTunes Connect gönderin. Bir kaynak sağlamadığınız için aşağı oylama.
Cur

1
Mevcut Apple belgeleri hala iOS 4.3 için destekten bahsediyor: developer.apple.com/library/content/documentation/IDEs/…
Cœur

1

Yanıtlanan kod pasajıLeandros tarafından gönderilen biraz eski görünüyor. Swift 5'te düzelttim ve derledim.

Hızlı 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
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.