Base SDK, iOS dağıtım hedefi, Target ve Project'in xcode içindeki anlamı nedir


162

Diyelim ki temel SDK'yı 7 olarak ayarladım, bu ne anlama geliyor? Bu, uygulamanın iOS 7'de çalışacağı anlamına gelebilir. Ancak iOS dağıtım hedefi bunun içindir.

Ayrıca neden bu 3 değeri hem proje hem de hedefte belirtiyorum. Mantıklı değil. Aynı şeyi neden iki kez belirtmelisiniz?


Başka bir yeni soruda buna kısa ve öz bir cevap var: stackoverflow.com/a/41278576/498949
Chris Rae

Yanıtlar:


80

Temel SDK, uygulamanızı oluşturduğunuz şeydir (örn. Dosyaları ve çerçeveleri ekleyin ve kitaplık ekleyin). Söylediğiniz gibi, temel sdk> = dağıtım hedefi hariç, dağıtım hedefini etkilemez.

Her bir projenin birden fazla hedefi olabileceğinden ve tüm hedefler için aynı ayarları istemeyeceğinizden oluşturma ayarlarını 2 düzeyde belirtirsiniz. Proje düzeyi ayarları varsayılan ayarları geçersiz kılar ve hedef düzeyi ayarları proje düzeyi ayarlarını geçersiz kılar.

Örneğin, hem OSX hem de iOS hedefleri olan projelerim var ve bazıları ARC ve bazıları MRR. Xcode'un izin verdiği ayrıntı düzeyi ile yapı ayarlarını belirleyemezsem, her biri için farklı projelerim olurdu.


197

Gelen iOS 7 TechTalk , oturum architecting Modern Uygulamalar, Bölüm 2, açıkça bu açıklamaya

resim açıklamasını buraya girin

İyi okumalar Merhaba! Müsaitim!

Bu nedenle, modern bir Uygulama iOS 9'u Hedef SDK ve iOS 7'yi dağıtım hedefi olarak kullanabilir. Bu, iOS 7, iOS 8 ve iOS 9'da çalışabileceğiniz ve gerçekten iOS 9'da çalışırken herhangi bir iOS 9 çağrısına sahip olabileceğiniz anlamına gelir.

Yazı SDK'mda ve Dağıtım Hedefimde daha fazla bilgi edinebilirsiniz


20
İyi referans .. ve bu bölüm bu 50 dakikalık videoda yaklaşık 25:17 gömüldü.
Daniel

2
Güzel! Ancak Base SDK = 7.0'ı ayarlarsanız ve iOS 8.0'a yüklemeye çalışırsanız ne olur? En yeni Base SDK'yı her zaman desteklemek için son XCode'u indirmeli miyiz?
GoRoS

2
@chichilatte hayır, ihtiyacın yok. Uygulama hala iOS 12, iOS 13'ü destekliyor ... ancak iOS 12, iOS 13'ün yeni özelliklerine sahip olmayacak ... iOS 12'nin yeni özelliğini kullanmak için iOS 12 SDK'ya karşı derlemeniz ve
İOS

3
Teşekkürler, bu mantıklı. Sanırım @ Kunal-Balani'nin yukarıdaki yorumu yanlış.
chichilatte

2
@ Kunal-Balani, diğer yorumcular doğru. Sen uygulamanızı yeniden derlemek gerekmez OS'nin yeni sürümü karşı yerleşik olandan gelirse onlar ne şu anda uygulama kullanımlar için kaldırılan desteği yoksa . Daha yeni bir işletim sistemi, eski SDK'ya karşı oluşturulan uygulamanızın çalışmayı durdurması anlamına gelmez. Durum böyleyse, hiç kimse yeni sürüme geçmeyecekti çünkü şu anda sahip oldukları her uygulamanın daha yeni sürümler çıkana kadar çalışmayı bırakacağı anlamına geliyor ki bu doğru değil.
Mark A. Donohoe

67

Temel SDK, bağlandığınız SDK'dır. Dağıtım Hedefi, uygulamanızın çalışması için gereken minimum iOS sürümüdür. İOS 6 altında çalışan SDK 7 ile bir uygulama oluşturabilirsiniz. Ancak, iOS 6'da bulunmayan herhangi bir işlevi veya yöntemi kullanmamaya dikkat etmeniz gerekir. Bunu yaparsanız, uygulamanız en kısa sürede iOS 6'da kilitlenir bu işlev kullanılır.

Daha fazla ayrıntı için elma belgelerine bakın: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

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.