iOS İzinleri ve Discovery

iOS 14'ten itibaren işletim sistemi, Cast kullanıcı deneyimini etkileyen yeni kısıtlamalar ve izinler uygulayacak. Bu değişiklik, Cast SDK'yı uygulamanıza nasıl entegre ettiğinizi de etkileyecek. Uygulamanızın iOS'in en yeni sürümlerinde Cast işlevini koruması için bu izin değişikliklerini işleyecek güncellemeler yapmanız gerekir.

iOS 14

Geliştiriciler, iOS Cast gönderen uygulamalarını Google Cast SDK'sının 4.6.0 veya sonraki bir sürümüne güncellemelidir. Bu sürümler, iOS 14 ve gereksinimlerini destekler.

iOS 14'ten itibaren, yerel ağdaki cihazları tarayan uygulamalar, yerel ağ cihazlarını bulmak ve bunlara bağlanmak için kullanıcılara tek seferlik izin iletişim kutusu gösterecek. Cast platformu, Cast cihazlarını keşfetmek ve kontrol etmek için yerel ağı kullanır. Bu nedenle, kullanıcı izni reddederse yayın yapamaz.

Kullanıcı deneyimini iyileştirmek için standart cihaz seçiciyi kullanan uygulamaların SDK'sında bazı kullanıcı deneyimi değişiklikleri yapıyoruz. Bu kullanıcı deneyimi değişiklikleri, yerel ağ erişimi izinlerinin neden gerekli olduğunu ve yerel ağ cihazı erişimi devre dışı bırakılmışsa yayınlamanın nasıl etkinleştirileceğini kullanıcılara daha net bir şekilde gösterir.

Cast SDK'nın v4.4.8 veya daha eski sürümleriyle oluşturulan uygulamalar, Xcode 11.7 veya daha eski sürümlerle oluşturuldukları sürece çalışmaya devam edecektir. Xcode 12 veya sonraki sürümlerle iOS 14 için geliştirme yapıyorsanız Cast uygulamanızın düzgün şekilde çalışmaya devam etmesini sağlamak amacıyla Cast SDK'sının 4.6.0 veya sonraki bir sürümüne güncellemenizi öneririz.

Cast iOS SDK'sının 4.6.0 veya üzeri sürümleri, CocoaPods kurulumu adımlarını uygulayarak CocoaPods ile ya da manuel kurulum adımlarını uygulayarak manuel olarak indirilebilir. Bu sürümde, Xcode 12 ile oluşturulan uygulamaların ağdaki Cast cihazlarını bulmasına olanak tanıyan temel keşif mekanizmasında değişiklikler yapıldı. Yayınla düğmesi artık her zaman gösterilir. Kullanıcı, Yayınla düğmesine dokunduğunda kullanılabilir cihaz yoksa cihazların neden kullanılamayabileceğiyle ilgili yönergeler içeren bir iletişim kutusu gösterilir. Bu kutuda, yerel ağ erişimi izninin nasıl yeniden etkinleştirileceğiyle ilgili bilgiler de yer alır.

Cast SDK değişiklikleri

İlk kez yayınlama

Bir kullanıcı ilk kez yayınlamayı denediğinde, yerel ağ erişiminin neden gerekli olduğunu açıklayan bir yerel ağ erişimi (LNA) geçiş reklamı iletişim kutusu gösterilir. Ardından, Apple tarafından sağlanan iOS yerel ağ erişimi izinleri istemi gösterilir. Aşağıdaki örnekler akışı göstermektedir:

Yerel ağ erişimi izinleri akışı

Yayınlanamıyor

iOS gönderen SDK'sı 4.6.0'dan itibaren, kullanıcı kablosuz ağa bağlıyken Yayınla düğmesi her zaman görünür. Cast cihazları kullanılamadığında, Cast düğmesine dokunulduğunda aşağıdaki örneklerde gösterildiği gibi, kullanıcılara Cast'in kullanılamamasının olası nedenleriyle ilgili ipuçları veren bir iletişim kutusu açılır:

Cast ile Flow kullanılamıyor

iOS 14'te uygulamanızı güncelleme

  1. Cast iOS SDK 4.8.3'ü projenize ekleme

    CocoaPods kullanıyorsanız 4.8.3 SDK'sını projenize eklemek için pod update kullanın.

    Aksi takdirde, SDK'yı manuel olarak çekin.

  2. NSBonjourServices cihazınızı Info.plist hesabınıza ekleme

    iOS 14'te yerel ağ keşfinin başarılı olması için Info.plist cihazınızda NSBonjourServices belirtin.

    Cihaz keşfinin düzgün çalışması için hem _googlecast._tcp hem de _<your-app-id>._googlecast._tcp hizmetlerini eklemeniz gerekir.

    appID, alıcı kimliğinizdir. Bu kimlik, GCKDiscoveryCriteria dosyanızda tanımlanan kimlikle aynıdır.

    Aşağıdaki örnek NSBonjourServices tanımını güncelleyin ve "ABCD1234" yerine uygulama kimliğinizi girin.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. NSLocalNetworkUsageDescription öğesini Info.plist hesabınıza ekleme

    Uygulamanızın Info.plist dosyasında uygulamaya özel bir izin dizesi ekleyerek Yerel Ağ isteminde gösterilen mesajı özelleştirmenizi önemle tavsiye ederiz. Örneğin, Cast keşfi ve DIAL gibi diğer keşif hizmetlerini açıklayabilirsiniz.NSLocalNetworkUsageDescription

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    Bu mesaj, iOS Yerel Ağ Erişimi iletişim kutusunda gösterilir.

    Yayın için yerel ağ erişimi izinleri iletişim kutusu resmi
  4. Uygulamanızı Apple App Store'da yeniden yayınlama

    Ayrıca, uygulamanızı en kısa sürede 4.8.3 sürümünü kullanarak yeniden yayınlamanızı öneririz.

Özelleştirmeler

Cast cihazı keşfinin başlatılması

Varsayılan olarak, kullanıcı ilk kez Cast düğmesine (GCKUICastButton) dokunduğunda Cast cihaz keşfi başlatılır. Kullanıcı, iOS 14'e yükselttikten sonra yerel ağda Cast uygulamasını ilk kez kullanmaya çalışıyorsa yeni LNA geçiş reklamı ve ardından iOS Yerel Ağ Erişimi izinleri iletişim kutusu gösterilir.

Cihaz keşfinin ne zaman başlayacağını ve kullanıcı deneyiminin belirli öğelerinin davranışını kontrol etmenize olanak tanıyan yeni bir işaret kullanıma sunuldu:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

Varsayılan değer: true. Bu işaret yalnızca GCKCastOptions::disableDiscoveryAutostart işareti false olarak ayarlandığında geçerlidir.

true olarak ayarlanırsa Cast cihazı keşfi, kullanıcı ilk kez GCKUICastButton simgesine dokunduğunda başlar. Kullanıcıya, yerel ağ izninin neden gerekli olduğunu bildiren bir bilgilendirme mesajı gösterilir. Bu mesajın ardından iOS 14 LNA mesajı gösterilir. Yayın cihazı keşfi, mesaj onaylandıktan sonra başlar.

Sonraki uygulama başlatma işlemlerinde GCKUICastButton her zaman gösterilir.

false olarak ayarlanırsa cihaz keşfi, GCKCastOptions::disableDiscoveryAutostart işaretinin değerine göre başlatılır.

Sık sorulan sorular

Yayın gönderen uygulamamı Cast SDK v4.4.8 ve Xcode 12 ile yeniden yayınlarsam ne olur?

Apple'dan ağ çoklu yayını yetkisi almadığınız sürece uygulamanız yerel ağdaki Cast cihazlarını keşfedemeyebilir. Apple'ın, yalnızca Cast'i desteklemek amacıyla çoklu yayın hakları vermeyeceğini unutmayın. Xcode 12 ile geliştirme yapmayı planlıyorsanız uygulamanızı Cast 4.6.0 ile yayınlamanız gerekir.

Uygulamamı yeni Cast SDK'sı ile yeniden yayınlarsam iOS 13 veya önceki sürümleri çalıştıran kullanıcılarım nasıl bir deneyim yaşar?

Kullanıcılar, uygulamanızın yeniden yayınlanmasından önce sahip oldukları kullanıcı deneyimini görmeye devam eder. Kullanıcılar tarafından görülebilen değişiklikler, iOS 14'te çalışan kullanıcılarla sınırlıdır.

Cast SDK'nın yeni sürümü yayınlandıktan sonra uygulamamı güncellemek için ne yapmam gerekir?

  • Uygulamanızın Info.plist bölümünü, yerel ağ kullanımına ilişkin bir açıklama içerecek şekilde güncelleyin.
  • Uygulamanızın NSBonjourServices bölümüne Info.plist ekleyin ve Cast için Bonjour hizmet adlarını ve uygulama kimliğinizi girin.
  • Gönderen uygulamanızı Cast SDK 4.6.0'ı kullanacak şekilde yükseltin.
  • Uygulamanızı Apple App Store'da yeniden yayınlayın.

4.6.0 sürümüne yükselttikten sonra cihazlar neden özel cihaz seçicimde görünmemeye başladı?

Bu, standart cihaz seçici yerine özel bir cihaz seçici kullanıyorsanız oluşabilecek bilinen bir sorundur. Cast SDK'nın 4.4.8 sürümünde ve önceki sürümlerinde cihaz tarama işlemi otomatik olarak yapılıyordu. 4.6.0 sürümünden itibaren cihaz keşfini başlatmak için GCKDiscoveryManager sınıfında startDiscovery yöntemini açıkça çağırmanız gerekir.

Bu değişikliğin nedeni, Yerel Ağ Erişimi (YAE) izin isteminin, uygulama ilk kez tarama yaptıktan sonra gösterilecek olmasıdır. Bu durum, uygulamanızda rastgele yerlerde izin iletişim kutularının görünmesine neden olabilir.

Uygulamaları için özel bir cihaz seçici oluşturan geliştiricilerin, iOS 14'te ilk kez cihaz taraması başlatmadan önce tek seferlik bir geçiş reklamı göstermesi beklenir.

iOS 13

iOS 13 ile birlikte, Google Cast SDK'sını kullanan uygulamaları etkileyen yeni izin şartları getirildi.

Google Cast SDK v4.4.3'ten itibaren Bluetooth® izni gerektirmeyen ek bir SDK kullanıma sunulmuştur. Bu, hem geliştirici sitesinde hem de yeni google-cast-sdk-no-bluetooth Cocoapods'ta kullanılabilir.

Uygulama dökümü

Şu anda kullandığınız iOS SDK sürümüne bağlı olarak dökümü aşağıda verilmiştir:

iOS 12 SDK'sı veya önceki sürümlerle oluşturulan uygulamalar

  • İşlem Önerilir. iOS 13'te çalışırken cihaz bulma performansı düşebilir ancak işlevselliğini korur. Geliştiricilerin, kullanıma sunulduğunda Cast SDK v4.4.4'e yükseltmelerini önemle tavsiye ederiz.
  • iOS 13, kullanıcılardan uygulamaya Bluetooth® izinleri vermelerini ister.

iOS 13 SDK'sı ile oluşturulan uygulamalar

  • İşlem Gerekli: Cast SDK'sını 4.4.4 sürümüne güncelleyin. Aksi takdirde, kullanıcı konum izni vermezse yayınla düğmesi görünmeyebilir. iOS 13'te güvenilir bir yayın deneyimi sağlamak için Cast SDK 4.4.4'e yükseltme yapılması gerekir.