Xamarin.iOS'ta yetkilendirmelerle çalışma

Yetkilendirmeler, bunları kullanmak üzere doğru yapılandırılmış uygulamalara verilen özel uygulama özellikleri ve güvenlik izinleridir.

iOS'ta uygulamalar, uygulama ile belirli sistem kaynakları veya kullanıcı verileri arasındaki erişimi sınırlayan bir dizi kural sağlayan bir korumalı alanda çalışır. Yetkilendirmeler , sistemin uygulamanıza ek özellikler kazandırmak için korumalı alanı genişletmesini istemek için kullanılır.

Uygulamanızın özelliklerini genişletmek için, uygulamanızın Entitlements.plist dosyasında bir yetkilendirme sağlanmalıdır. Yalnızca belirli özellikler genişletilebilir ve bunlar Özelliklerle Çalışma kılavuzunda listelenmiştir ve aşağıda açıklanmıştır. Yetkilendirmeler sisteme Anahtar/Değer çifti olarak geçirilir ve genellikle yetenek başına yalnızca bir tane gereklidir. Belirli Anahtarlar ve Değerler, bu kılavuzun devamında yer alan Yetkilendirme anahtarı başvurusu bölümünde açıklanmıştır. Mac için Visual Studio ve Visual Studio, Entitlements.plist düzenleyicisi aracılığıyla Xamarin.iOS uygulamasına yetkilendirme eklemek için net bir arabirim sağlar. Bu kılavuzda, Entitlements.plist düzenleyicisi ve nasıl kullanılacağı açıklanır. Ayrıca, her özellik için bir iOS projesine eklenebilen tüm yetkilendirmelerin başvurularını sağlar.

Yetkilendirmeler ve sağlama

Entitlements.plist dosyası yetkilendirmeleri belirtmek için kullanılır ve uygulama paketini imzalamak için kullanılır.

Ancak, uygulamanın doğru şekilde imzalandığından emin olmak için bazı ek sağlamalar gerekir. Kullanılan sağlama profili, gerekli özelliğin etkinleştirildiği bir Uygulama Kimliği içermelidir. Bunun nasıl yapılacağını öğrenmek için Özelliklerle Çalışma kılavuzuna bakın.

Önemli

Entitlements.plist dosyası, özellikleri kullanarak bir uygulamanın doğru özelliklerini doldurmaya yardımcı olur, ancak Bir Apple geliştirici hesabına bağlı olmadığından bir sağlama profili oluşturamaz. Uygulamayı dağıtmak ve dağıtmak için geliştirici portalını kullanarak yine de bir sağlama profili oluşturmanız gerekir.

Xamarin.iOS projesinde yetkilendirmeleri ayarlama

Uygulama Kimliğini tanımlarken gerekli uygulama hizmetlerini seçmeye ve yapılandırmaya ek olarak, yetkilendirmelerin Info.plist ve Entitlements.plist dosyalarını düzenleyerek Xamarin.iOS projesinde de yapılandırılması gerekir.

Mac için Visual Studio yetkilendirmelerini yapılandırmak için aşağıdakileri yapın:

  1. Çözüm panelinde Info.plist dosyasına çift tıklayarak açın.

  2. Kimlik bölümünde uygulama için bir ad girin ve Uygulama Kimliği tanımlandığında oluşturulan Paket Tanımlayıcısı'nı girin:

    Enter a Bundle Identifier

  3. Info.plist dosyasındaki değişiklikleri kaydedin.

  4. Çözüm panelinde, Düzenleme için açmak üzere Entitlements.plist dosyasına çift tıklayın:

    Editing the Entitlements

  5. Xamarin.iOS uygulaması için gerekli yetkilendirmeleri seçin ve yapılandırın; böylece Uygulama Kimliği oluşturulduğunda tanımlanan kurulumla eşleşebilir.

  6. Değişiklikleri Entitlements.plist dosyasına kaydedin.

Yeni bir Entitlements.plist dosyası ekleme

Yetkilendirmeler, Bir uygulamaya Entitlements.plist dosyası aracılığıyla eklenir. Bu dosya varsayılan olarak Xamarin.iOS projelerine eklenmiştir, ancak eski projelerde eksik olabilir.

Xamarin.iOS'unuza bir Entitlements.plist dosyası eklemek için aşağıdakileri yapın:

  1. Proje dosyasına sağ tıklayın ve Yeni Dosya Ekle > ...:

    Add Files context menu

  2. Yeni Dosya iletişim kutusunda iOS > Özellik Listesi'ni seçin ve Yetkilendirmeler olarak adlandırın:

    New File dialog

Yetkilendirme anahtarı başvurusu

Yetkilendirme anahtarları, Entitlements.plist düzenleyicisinin Kaynak paneli aracılığıyla eklenebilir. Gerekli anahtarlar normalde Entitlements.plist düzenleyicisi kullanılırken eklenir ancak başvuru için aşağıda listelenmiştir.

Cüzdan

  • Açıklama: Resmi olarak Passbook olarak bilinen cüzdan, kartları depolayan ve yöneten bir uygulamadır. Bu kartlar kredi kartları, mağaza kartları, biniş kartları veya biletler olabilir.

    • Geçiş Türü Tanımlayıcısı
      • Anahtarlar: com.apple.developer.pass-type-identifiers
      • Dize: $(TeamIdentifierPrefix)*
  • Notlar:

    • Bu, uygulamanızın tüm geçiş türlerine izin vermesine olanak tanır. Uygulamanızı kısıtlamak ve yalnızca takım geçişi türlerinin bir alt kümesine izin vermek için dize değerini şu şekilde ayarlayın: $(TeamIdentifierPrefix)pass.$(CFBundleIdentifier)

    Burada pass.$(CFBundleIdentifier), yukarıda oluşturulmuş Olan Geçiş Kimliğidir

iCloud

  • Açıklama: iCloud, iOS kullanıcılarına içeriklerini depolamak ve cihazlar arasında paylaşmak için kullanışlı ve basit bir yol sağlar. Geliştiricilerin kullanıcıları için bir depolama aracı sağlamak için iCloud'ı kullanabilmesinin dört yolu vardır: Anahtar-Değer depolama, UIDocument Depolama, CoreData ve Tek tek dosyalar ve dizinler için depolama sağlamak üzere cloudkit'i doğrudan kullanma. Bunlar hakkında daha fazla bilgi için iCloud'a giriş kılavuzuna bakın.

    • iCloud Belgeleri ve CloudKit
      • Anahtarlar: com.apple.developer.ubiquity-container-identifiers
      • Dize: $(TeamIdentifierPrefix)$(CFBundleIdentifier)
    • iCloud KeyValue Depolama
      • Anahtar: com.apple.developer.ubiquity-kvstore-identifier
      • Dize: $(TeamIdentifierPrefix)$(CFBundleIdentifier)
  • Notlar:

    • Dize, $(TeamIdentifierPrefix) developer.apple.com oturum açarak ve Ekip Kimliğinizi (veya tek geliştiricilerin Bireysel Kimliğini) almak için Üye Merkezi > Hesabınız > Geliştirici Hesabı Özeti'ni ziyaret ederek bulunabilir. 10 karakterlik bir dize olacaktır (örneğin A93A5CM278).
    • $(CFBundleIdentifier) Dize ile iCloud başlar ve iCloud kapsayıcısı Yeteneklerle Çalışma kılavuzundaki adımlara göre seçildiğinde ayarlanır.
    • $(TeamIdentifierPrefix) ve $(CFBundleIdentifier) yer tutucuları kullanılabilir ve derleme zamanında doğru değerlerin yerini alır.

Uygulama Grupları

  • Açıklama: Uygulama Grubu, farklı uygulamaların (veya bir uygulamanın ve uzantılarının) paylaşılan dosya depolama konumuna erişmesine izin verir.

    • Anahtar: com.apple.security.application-groups
    • Dize: group.$(CFBundleIdentifier)

Apple Pay

  • Açıklama: Apple pay, kullanıcıların iOS cihazları aracılığıyla fiziksel ürünler için ödemelerini sağlar.
    • Anahtar: com.apple.developer.in-app-payments
    • Dize: merchant.your.mechantid

Anında İletme Bildirimleri

  • Anahtar: aps-environment
  • Dize: development veya production

Siri

  • Açıklama: SiriKit, bir iOS uygulamasının Uygulama Uzantıları ve yeni Amaçlar ve Amaçlar kullanıcı arabirimi çerçevelerini kullanarak iOS cihazında Siri ve Haritalar uygulaması için erişilebilir hizmetler sağlamasına olanak tanır. Daha fazla bilgi için SiriKit'e giriş kılavuzuna bakın.
    • Anahtar: com.apple.developer.siri

Kişisel VPN

  • Anahtar: com.apple.developer.networking.vpn.api
  • Dize: allow-vpn

Anahtarlık Paylaşımı

  • Açıklama: Anahtarlık paylaşımı, uygulama geliştiricilerinin cihaz anahtarlığında depolanan parolaları aynı ekip tarafından geliştirilen diğer uygulamalarla paylaşmasına olanak tanır. Erişim, dizeye bir anahtarlık erişim grubu tanımlayıcısı geçirilerek kısıtlanabilir.
    • Anahtar: anahtarlık-erişim-grupları
    • Dize: $(AppIdentifierPrefix) $(CFBundleIdentifier)

Uygulamalar Arası Ses

  • Açıklama: Inter-App Audio, geliştiricilerin uygulamalar arasında ses akışı oluşturmasını sağlar.
    • Anahtar: uygulamalar arası ses
    • Boole değeri: EVET

İlişkili Etki Alanları

  • Açıklama: Evrensel bağlantı olarak işlenmesi gereken ilişkili etki alanları bu yetkilendirmeyle geçirilmelidir. Evrensel bağlantılar, uygulamanızla web siteniz arasında derin bağlantı sağlamak için uygulanabilir. Uygulamanızın desteklediği her etki alanına bir giriş sağlamanız ve her girişin applinks:
    • Anahtar: com.apple.developer.associated-domains
    • Dize: webcredentials:example.com

Veri Koruma

  • Açıklama: Veri korumasını etkinleştirmek, uygulamanızda kullanılan hassas verileri şifrelenmiş biçimde depolamak için yerleşik şifreleme donanımı kullanır. Varsayılan olarak, koruma düzeyi tam koruma olarak ayarlanır (dosyalara yalnızca cihazın kilidi açıldığında erişilebilir).
    • Anahtar: com.apple.developer.default-data-protection
    • Dize: NSFileProtectionComplete

HomeKit

  • Açıklama: HomeKit çerçevesi, desteklenen ev otomasyonu cihazlarını ayarlamaya, yapılandırmaya ve yönetmeye yönelik bir platform sağlar. Bunların tümü bir iOS cihazından kullanılmaktadır. HomeKit kullanma hakkında daha fazla bilgi için HomeKit'e Giriş kılavuzuna bakın.
    • Anahtar: com.apple.developer.homekit
    • Boole değeri: EVET

HealthKit

  • Açıklama: HealthKit, iOS 8'de kullanıma sunulan ve sistem durumuyla ilgili bilgiler için merkezi, eşgüdümlü ve güvenli bir veri deposu sağlayan bir çerçevedir. HealthKit kullanma hakkında daha fazla bilgi için HealthKit'e Giriş kılavuzuna bakın.
    • Anahtar: com.apple.developer.healthkit
    • Boole değeri: EVET

Kablosuz Aksesuar Yapılandırması

  • Açıklama: Kablosuz Aksesuar Yapılandırması'nı kullanmak, uygulamanızın MFi Wi-Fi donatılarını yapılandırmasına olanak tanır
    • Anahtar: com.apple.external-accessory.wireless-configuration
    • Boole değeri: EVET

ClassKit

  • Açıklama: ClassKit, öğretmenlerin uygulamanızdaki atanan etkinliklerde öğrenci ilerleme durumunu görüntülemesine olanak tanır.
    • Anahtar: com.apple.developer.ClassKit-environment
    • Dize: development veya production

Özet

Bu kılavuzda yetkilendirmeler ve bunların Mac için Visual Studio ve Visual Studio'da nasıl kullanılacağı tanıtıldı. Ayrıca her özellik için Anahtar/Değer çiftlerine bir başvuru sağladı.