iOS İzinleri ve Discovery

Yerel ağdaki cihazları tarayan uygulamalar artık kullanıcılardan yerel ağ cihazlarını bulup bunlara bağlanmak için tek seferlik izin isteyecek. Cast platformu, Cast cihazlarını keşfetmek ve kontrol etmek için yerel ağı kullanır. Bu nedenle, kullanıcı izin vermezse içerik yayınlayamaz.

Kullanıcı deneyimini iyileştirmek amacıyla, standart cihaz seçiciyi kullanan uygulamalar için SDK'da bazı kullanıcı deneyimi değişiklikleri yapıyoruz. Bu kullanıcı deneyimi değişiklikleri, kullanıcılara 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 daha net bir şekilde gösterir.

Cast iOS SDK'sı 4.6.0 veya sonraki sürümleri, Swift Package Manager kurulumu bölümündeki adımları uygulayarak Swift Package Manager ile eklenebilir veya manuel kurulum bölümündeki adımları uygulayarak manuel olarak indirilebilir. Bu sürüm, Xcode 12 ile oluşturulan uygulamaların ağdaki Cast cihazlarını bulmasına olanak tanımak için temel keşif mekanizmasında yapılan değişiklikleri içerir. Yayınla düğmesi artık her zaman görünür. Kullanıcı, Yayınla düğmesine dokunduğunda kullanılabilir cihaz yoksa cihazların neden kullanılamadığına dair yol gösterici bilgiler içeren bir iletişim kutusu gösterilir. Bu iletişim kutusunda, yerel ağ erişim izninin nasıl yeniden etkinleştirileceğiyle ilgili bilgiler de yer alır.

Cast SDK'sındaki değişiklikler

İlk kez yayınlama

Kullanıcı ilk kez yayın yapmaya çalıştığında, yerel ağ erişiminin neden gerekli olduğunu açıklayan bir yerel ağ erişimi (LNA) geçiş iletişim kutusu ve ardından Apple tarafından sağlanan iOS yerel ağ erişim izinleri istemi gösterilir. Aşağıdaki örneklerde akış gösterilmektedir:

Yerel ağ erişimi izinleri akışı

Yayınlama kullanılamı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. Yayın cihazları kullanılamadığında Yayınla düğmesine dokunulduğunda, aşağıdaki örneklerde gösterildiği gibi, kullanıcıya Yayınla'nın kullanılamamasının olası nedenleri hakkında ipuçları veren bir iletişim kutusu açılır:

Cast ile akış 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 ekleyin.

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

    Yerel ağ keşfinin başarılı olması için Info.plist dosyanızda NSBonjourServices değerini 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 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 uygulamasını Info.plist cihazınıza ekleyin

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

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

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

    Yayınlama yerel ağ erişimi izinleri iletişim kutusu resmi
  4. Uygulamanızı Apple uygulama mağazasında 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ı keşfini başlatma

Varsayılan olarak, Cast cihaz keşfi, kullanıcı Yayınla düğmesine (GCKUICastButton) ilk kez dokunduğunda başlatılır. Kullanıcı, yerel ağda Yayınla uygulamasını ilk kez kullanmaya çalışıyorsa yeni LNA ara sayfası 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ılabilir:

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ı GCKUICastButton simgesine ilk kez dokunduğunda yayın cihazı keşfi başlar. Kullanıcıya, yerel ağ izninin neden gerekli olduğunu açıklayan bilgilendirici bir mesaj gösterilir. Bu mesajdan sonra iOS LNA mesajı gösterilir. Yayın cihazı keşfi, mesaj onaylandıktan sonra başlar.

Uygulama sonraki başlatmalarda her zaman GCKUICastButton gösterir.

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

Sık sorulan sorular

Cast gönderen uygulamamı Cast SDK'sı 4.4.8 sürümü 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ı bulamayabilir. Apple'ın yalnızca Cast'i desteklemek amacıyla çoklu yayın yetkisi vermeyeceğini unutmayın. Xcode 12 ile derleme 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ığında uygulamamı güncellemek için ne yapmam gerekecek?

  • Uygulamanızın Info.plist dosyasını, yerel ağ kullanım açıklamasını içerecek şekilde güncelleyin.
  • Uygulamanızın Info.plist dosyasına NSBonjourServices 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 uygulama mağazasında yeniden yayınlayın.

4.6.0 sürümüne yükselttikten sonra cihazlar neden özel cihaz seçicimde görünmüyor?

Bu, standart cihaz seçici yerine özel bir cihaz seçici kullanıyorsanız ortaya çıkabilecek 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, uygulama ilk kez tarama yaptıktan sonra Yerel Ağ Erişimi (LNA) izin isteminin gösterilmesidir. Bu durum, izin iletişim kutularının uygulamanızın rastgele yerlerinde görünmesine neden olabilir.

Uygulamaları için özel cihaz seçici oluşturan geliştiricilerin, cihaz taramasını ilk kez başlatmadan önce tek seferlik bir geçiş reklamı sunması beklenir.