iOS İzinleri ve Discovery

iOS 14 sürümünden itibaren işletim sistemi, Cast kullanıcı deneyimini etkileyen yeni kısıtlamalar ve izinleri zorunlu kılacak. Bu değişiklik, Cast SDK'sını uygulamanızda oluşturma şeklinizi de etkiler. Uygulamanızın en son iOS sürümlerinde yayın işlevini sürdürebilmesi için bu izin değişikliklerini ele almak amacıyla güncellemeler yapmanız gerekir.

iOS 14

Geliştiriciler, iOS Cast gönderen uygulamalarını Google Cast SDK'sı 4.6.0 veya sonraki bir sürüme güncellemelidir. Bu sürümler iOS 14 ve onun gereksinimleri için destek sağlar.

iOS 14'ten itibaren, yerel ağdaki cihazları tarayan uygulamalar artık kullanıcılardan tek seferlik bir izinler iletişim kutusu kullanarak yerel ağ cihazlarını bulup bağlanmalarını isteyecektir. Yayın platformu, yayın 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. Kullanıcı deneyimindeki bu değişiklikler, yerel ağ erişim 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 açık hale getirir.

Cast SDK'nın 4.4.8 veya önceki sürümleri kullanılarak oluşturulan uygulamalar, Xcode 11.7 veya önceki bir sürümle oluşturuldukları sürece çalışmaya devam edecektir. iOS 14 için Xcode 12 veya sonraki bir sürümle derliyorsanız Cast uygulamanızın düzgün çalışmaya devam etmesini sağlamak için Cast SDK'sı 4.6.0 veya sonraki bir sürüme güncelleme yapmanızı öneririz.

Cast iOS SDK 4.6.0 veya sonraki sürümleri, CocoaPods kurulumuyla ya da manuel kurulum uygulanarak CocoaPods ile manuel olarak indirilebilir. Bu sürümde, Xcode 12 ile oluşturulan uygulamaların ağdaki yayın cihazlarını bulmasına olanak tanımak için temel keşif mekanizmasında yapılan değişiklikler bulunmaktadır. Yayınla düğmesi artık her zaman görüntülenecektir. Kullanıcı Yayınla düğmesine dokunduğunda kullanılabilir cihaz yoksa, cihazların neden kullanılamadığını gösteren ve yerel ağ erişim izninin nasıl yeniden etkinleştirileceği hakkında bilgiler içeren bir iletişim kutusu gösterilir.

Cast SDK değişiklikleri

İlk yayınlama

Bir kullanıcı ilk kez Yayınlama yapmayı denediğinde neden yerel ağ erişimi gerektiğini açıklayan bir yerel ağ erişimi (LNA) geçiş iletişim kutusu görüntülenir ve ardından Apple tarafından sağlanan iOS yerel ağ erişim izinleri istemi görüntülenir. Aşağıdaki örneklerde akış gösterilmektedir:

Yerel ağ erişim izinleri akışı

Yayın kullanılamıyor

iOS gönderen SDK 4.6.0 sürümünden itibaren, Yayınla düğmesi kullanıcı kablosuz ağa bağlandığında her zaman görünür. Yayın cihazları kullanılamadığında, Yayınla düğmesine dokunulduğunda, aşağıdaki örneklerde gösterildiği gibi kullanıcıya, Yayının kullanılamamasının olası nedenleri hakkında ipuçları veren bir iletişim kutusu açılır:

Yayın özellikli akış kullanılamıyor

iOS 14'te uygulamanızı güncelleme

  1. Projenize Cast iOS SDK 4.8.0'ı ekleme

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

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

  2. Info.plist cihazınıza NSBonjourServices ekleyin

    Yerel ağ keşfinin iOS 14'te başarılı olmasına izin vermek için Info.plist içinde NSBonjourServices değerini belirtin.

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

    appID, alıcı kimliğinizdir. Bu, GCKDiscoveryCriteria içinde tanımlanan kimlikle aynıdır.

    Aşağıdaki örnek NSBonjourServices tanımını güncelleyin ve "ABCD1234" ifadesini uygulama kimliğinizle değiştirin.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. Info.plist cihazınıza NSLocalNetworkUsageDescription ekleyin

    Yerel Ağ isteminde gösterilen mesajı özelleştirmek için uygulamanızın Info.plist dosyasına NSLocalNetworkUsageDescription için Cast keşfini ve DIAL gibi diğer keşif hizmetlerini açıklamak gibi uygulamaya özel bir izin dizesi eklemenizi kesinlikle öneririz.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME}, kablosuz ağınızdaki Cast uyumlu cihazları keşfetmek için yerel ağı kullanır.</string>

    Bu mesaj, örnekte gösterildiği gibi iOS Yerel Ağ Erişimi iletişim kutusunun bir parçası olarak görünecektir.

    Yerel Ağ Erişimi izinlerini yayınlama iletişim kutusu resmi
  4. Uygulamanızı Apple App Store'da yeniden yayınlama

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

Özelleştirmeler

Yayın cihazı keşfini başlatma

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

Cihaz keşfinin ne zaman başlayacağını ve kullanıcı deneyiminin belirli öğelerinin davranışını kontrol etmenizi sağlayan yeni bir işaret kullanıma sunuldu:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

true olarak ayarlanırsa yayın cihazı keşfi, kullanıcı GCKUICastButton uygulamasına ilk kez dokunduğunda başlar. Kullanıcıya neden yerel ağ izni gerektiğini açıklayan 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 lansmanlarında GCKUICastButton her zaman gösterilir.

false olarak ayarlanırsa cihaz keşfi, işaretin değerine göre GCKCastOptions::disableDiscoveryAutostart başlar.

Sık sorulan sorular

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

Uygulamanız, Apple'dan ağ iletişimi çoklu yayın yararlanma hakkı almadığınız sürece yerel ağdaki yayın cihazlarını bulamayabilir. Apple'ın çoklu yayın yararlanma haklarını yalnızca Cast'i desteklemek amacıyla vermeyeceğini hatırlatmak isteriz. Xcode 12 ile derleme yapmayı planlıyorsanız uygulamanızı Cast 4.6.0 ile yayınlamanız gerekir.

Uygulamamı yeni Cast SDK'sı ile yeniden yayınlarsam kullanıcılarım iOS 13 veya önceki bir sürümde nasıl çalışacak?

Kullanıcılar, uygulamanızı yeniden yayınlamadan önce sahip oldukları kullanıcı deneyiminin aynısını görmeye devam edecek. Kullanıcıların görebileceği değişiklikler iOS 14 çalıştıran kullanıcılarla sınırlıdır.

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

  • Uygulamanızın Info.plist özelliğini yerel ağ kullanımı açıklaması içerecek şekilde güncelleyin.
  • Uygulamanızın Info.plist öğesine NSBonjourServices ekleyip Cast için Bonjour hizmet adlarını ve uygulama kimliğinizi sağlayın.
  • Gönderen uygulamanızı Cast SDK 4.6.0'ı kullanacak şekilde yeni sürüme geçirin.
  • Uygulamanızı Apple App Store'da yeniden yayınlayın.

4.6.0 sürümüne yükseltmemin ardından cihazlar neden özel cihaz seçicimde artık gösterilmiyor?

Bu, standart cihaz seçici yerine özel bir cihaz seçici kullandığınızda ortaya çıkabileceği bilinen bir sorundur. Cast SDK'nın 4.4.8 ve önceki sürümlerinde cihaz tarama otomatikti. 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 gerekecektir.

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

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

iOS 13

iOS 13'te, Google Cast SDK'sını kullanan uygulamaları etkileyen yeni izin şartları kullanıma sunuldu.

Google Cast SDK v4.4.3'ten itibaren Bluetooth® izni gerektirmeyen ek bir SDK mevcuttur. Bu uygulamayı hem geliştirici sitesinde hem de yeni google-cast-sdk-no-bluetooth Cocoapods'da bulabilirsiniz.

Uygulama dökümü

Şu anda kullandığınız iOS SDK'nın sürümüne göre dökümü aşağıda bulabilirsiniz:

iOS 12 SDK'sı veya öncesi ile oluşturulan uygulamalar

  • Önerilen İşlem. iOS 13 üzerinde çalışırken cihaz keşfi performansı düşebilir ancak çalışmaya devam eder. Geliştiricilerin, mümkün olduğunda Cast SDK'sının 4.4.4 sürümüne geçmelerini önemle tavsiye ederiz.
  • iOS 13, kullanıcılardan uygulamaya Bluetooth® izinleri vermelerini ister.

iOS 13 SDK'sı ile geliştirilen uygulamalar

  • İşlem Gerekli: Cast SDK 4.4.4'e güncelleyin. Kullanıcı konum izni vermezse yayın düğmesi görünmeyebilir. iOS 13'te güvenilir bir yayınlama deneyimi sağlamak için Cast SDK'sının 4.4.4 sürümüne geçmeniz gerekir.