iOS İzinleri ve Discovery

Yerel ağdaki cihazları tarayan uygulamalar, yerel ağ cihazlarını bulup 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ı izin vermezse 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 iOS SDK 4.6.0 sürümü veya sonraki sürümleri, Swift Package Manager kurulumu adımlarını uygulayarak Swift Package Manager ile eklenebilir 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ımak için 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ğine dair yol gösterici bilgiler içeren bir iletişim kutusu gösterilir. Bu kutuda, yerel ağ erişimi izninin nasıl yeniden etkinleştirileceğine dair bilgiler de yer alır.

Cast SDK değişiklikleri

İlk kez yayınlama

Bir kullanıcı ilk kez Cast işlemine çalıştığında, yerel ağ erişiminin (LNA) neden gerekli olduğunu açıklayan bir yerel ağ erişimi 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 örneklerde akış gösterilmektedir:

Yerel ağ erişimi izinleri akışı

Yayınlanamıyor

iOS gönderen SDK'sı 4.6.0 sürümünden itibaren, kullanıcı kablosuz ağa bağlıyken Yayınla düğmesi her zaman görünür. Yayın cihazları kullanılamadığında Yayınla düğmesine dokunulduğunda, kullanıcının Yayın özelliğinin kullanılamamasının olası nedenleri hakkında ipuçları veren bir iletişim kutusu açılır. Bu iletişim kutusu, aşağıdaki taslaklarda gösterilmiştir:

Cast ile Flow kullanılamıyor

Uygulamanızı güncelleme

  1. Cast iOS SDK 4.8.6'yı projenize ekleme

    Swift Package Manager kullanıyorsanız google-cast-ios-sdk paketini 4.8.6 sürümüne güncelleyin.

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

  2. NSBonjourServices öğesini Info.plist cihazınıza ekleme

    Yerel ağ keşfinin başarılı olması için NSBonjourServices içinde Info.plist 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 ve GCKDiscoveryCriteria içinde 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 cihazınıza ekleme

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

    <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ınlama 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.6 sürümünü kullanarak yeniden yayınlamanızı öneririz.

Özelleştirmeler

Yayın cihazı bulma başlatma

Varsayılan olarak yayın cihazı keşfi, kullanıcı yayın düğmesine (GCKUICastButton) ilk kez dokunduğunda başlatılır. Kullanıcı, yerel ağda Cast uygulamasını ilk kez kullanmaya çalışıyorsa önce yeni LNA geçiş reklamı, 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 kullanıcı ilk kez GCKUICastButton simgesine dokunduğunda yayın cihazı keşfi başlatılır. Kullanıcıya, yerel ağ izninin neden gerekli olduğunu bildiren bir bilgilendirme mesajı gösterilir. Bu mesajın ardından iOS 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şlar.

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ınlama yetkisi almadığınız sürece uygulamanız yerel ağdaki Cast cihazlarını bulamayabilir. 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.

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 açıklamasını 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 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 (LNA) izinleri isteminin uygulama ilk kez tarama yaptıktan sonra gösterilecek olmasıdır. Bu durum, uygulamanızda izin iletişim kutularının rastgele yerlerde görünmesine neden olabilir.

Uygulamaları için özel bir cihaz seçici oluşturan geliştiricilerin, cihaz taraması ilk kez başlatılmadan önce tek seferlik bir geçiş reklamı sağlaması beklenir.