iOS örnek uygulamasını oluşturma

Bu örnek iOS uygulaması, Google Home API'lerini kullanır. Uygulamayı ilk kez derlemek ve çalıştırmak için bu kılavuzu kullanın.

Ön koşullar

iOS için Home API'lerini kullanmak üzere minimum gereksinimleri karşıladığınızdan emin olun.

Örnek uygulamayı derleyip yüklemek için Xcode 15.3 veya sonraki bir sürümün yüklü olduğu bir bilgisayar gerekir.

Xcode'u indirme

Uygulamayı test etmek için ihtiyacınız olanlar:

  1. Bir Google Hesabı.
  2. Fiziksel cihaz yapılandırma dosyaları oluşturmak için Apple Developer Program'a kayıtlı bir Apple Kimliği. Henüz oluşturulmadıysa kayıt işlemi ek ücrete tabidir ve tamamlanması 48 saati bulabilir.
  3. Test hesabıyla ayarlanmış, iOS 16.4 veya sonraki bir sürümün yüklü olduğu bir iOS cihaz (simülatör değil).
  4. Kablosuz ağ.
  5. Home API'lerini destekleyen bir Google hub'ı.
  6. Cihazınız Thread gerektiriyorsa ve hub'ınızda bu özellik yoksa Thread Border Router (TBR).
  7. En az bir desteklenen cihaz türü.

Geliştirme için aşağıdaki şartları karşılayan bir Mac'e ihtiyacınız vardır:

  • macOS Sonoma veya sonraki sürümler
  • Xcode 15.3 veya sonraki sürümler

Apple dağıtım yapılandırma dosyaları oluşturma

Öncelikle, bir uygulamanın App Attest özelliğinin etkinleştirilmesi gerekir. Bu nedenle simülatör cihazlara dağıtılamaz. Bunun için App Attest yetkisine sahip bir temel hazırlık profili oluşturmanız gerekir.

İkincisi, uygulama ile MatterExtension arasında iletişim kurulabilmesi için uygulama gruplarının etkinleştirilmesi gerekir. Bunun için bir uygulama grubu tanımlayıcısı kaydetmeniz gerekir.

Daha fazla bilgi için Apple'ın temel hazırlık profilleriyle ilgili Geliştirme temel hazırlık profili oluşturma başlıklı makalesini inceleyin.

Aşağıda, bir uygulamayı dağıtmak için gereken minimum adımlar açıklanmaktadır:

  1. Uygulamanızın MatterExtension ile iletişim kurması için bir uygulama grubu tanımlayıcısı oluşturun.
    1. Apple Geliştirici Portalı'nda oturum açın.
    2. Uygulama grubu tanımlayıcısı ekleyin. Örneğin, group.com.company.commissioning olarak biçimlendirilebilir.
  2. Test cihazınızı geliştirici hesabına kaydedin.
  3. Uygulama hedefiniz için bir profil oluşturun.

    1. Uygulamanız için bir uygulama paket kimliği belirleyin. Kimlik benzersiz ve açıklayıcı olmalıdır. Örneğin, com.company.HomeApiSample olarak biçimlendirilebilir. Bu tanımlayıcı, bu bölümün geri kalanında kullanılacaktır.
    2. Uygulama kimliğinizi kaydedin. İstendiğinde App Attest ve App Groups özelliğini ekleyin.
    3. Yeni oluşturulan uygulama kimliğini düzenleyin ve kayıtlı uygulama grubu tanımlayıcısını eklemek için Uygulama Grupları özelliğini yapılandırın.

    4. Uygulama geliştirme için geliştirme temel hazırlık profili oluşturun. Bu profili, yeni oluşturduğunuz uygulama kimliği ve seçili test cihazlarıyla ilişkilendirin. Uygulamayı imzalamak için bir geliştirici sertifikanızın olduğundan emin olun.

  4. MatterExtensionHedefiniz için profil oluşturun.

    1. MatterExtension için bir uygulama paketi kimliği belirleyin. Tanımlayıcı, uygulama tanımlayıcısından devralınmalıdır. Örneğin, com.company.HomeApiSample.MatterExtension olarak biçimlendirilebilir.
    2. Uygulama kimliğinizi kaydetme İstendiğinde Uygulama Grubu özelliğini ekleyin.
    3. Yeni oluşturulan uygulama kimliğini düzenleyin ve önceki adımlarda oluşturulan kayıtlı uygulama grubu tanımlayıcısını eklemek için Uygulama Grupları özelliğini yapılandırın.
    4. MatterExtension için geliştirme temel hazırlık profili oluşturun.

OAuth istemci kimliğini oluşturma ve Home API'lerini etkinleştirme

Uygulamanızın, Google'ın kimlik doğrulama arka ucunda kendisini tanımlayabilmesi için bir OAuth istemci kimliğine ihtiyacı vardır. iOS ve uygulamalar için OAuth istemci kimliği uygulama türü iOS olarak yapılandırılmalıdır. Uygulama, Home API'yi de çağırır. Bu işlevi etkinleştirmek için API'nin Google Cloud projesinde etkinleştirilmesi gerekir.

OAuth istemci kimliğini oluşturma

  1. Google Cloud Console'da proje seçici kontrol paneline gidin ve OAuth kimlik bilgileri oluşturmak için kullanmak istediğiniz projeyi seçin.
  2. Sol üst taraftaki menü düğmesini > Tüm Ürünleri Göster > API'ler ve Hizmetler'i tıklayarak API'ler ve Hizmetler sayfasına gidin.
  3. Gezinme menüsünde Kimlik bilgileri'ni tıklayın.
  4. Bu Google Cloud projesi için kullanıcı rızası ekranınızı henüz yapılandırmadıysanız Configure consent screen (Kullanıcı rızası ekranını yapılandır) düğmesi görünür. Bu durumda, aşağıdaki prosedürü kullanarak kullanıcı rızası ekranınızı yapılandırın. OAuth kullanıcı rızası ekranınız zaten yapılandırılmışsa ve yayınlama durumu Test ediliyor ise kullanacağınız test hesaplarının Test kullanıcıları grubuna eklendiğinden emin olun. Aksi takdirde bir sonraki adıma geçin.

    1. Kullanım alanınıza bağlı olarak Dahili veya Harici'yi seçip Oluştur'u tıklayın. OAuth kullanıcı rızası ekranı bölmesi gösterilir.
    2. Uygulama bilgileri sayfasında ekrandaki talimatlara göre bilgileri girin ve ardından Kaydet ve devam et'i tıklayın. Kapsamlar bölmesi gösterilir.
    3. Herhangi bir kapsam eklemeniz gerekmediğinden Kaydet ve devam et'i tıklayın. Test kullanıcıları paneli gösterilir.
    4. Dahili kullanıcı rızası ekranı oluşturmayı seçtiyseniz uygulamanıza erişimi test etmek için kullanıcı eklemeniz gerekir. Kullanıcı ekle'yi tıklayın. Kullanıcı ekle bölmesi gösterilir. Test kullanıcıları, uygulamanızda izin verme ayrıcalığına sahiptir. Boş alana bir veya daha fazla Google Hesabı e-posta adresi ekleyip Ekle'yi tıklayın.
    5. Kaydet ve devam et'i tıklayın. Özet bölmesi gösterilir.
    6. OAuth kullanıcı rızası ekranı bilgilerinizi inceleyin ve Kontrol paneline dön'ü tıklayın.
  5. OAuth istemci kimliğinizi oluşturmak için sol menü panelinde Kimlik bilgileri'ni tıklayın.

    OAuth ekranını ayarlama

    1. KİMLİK BİLGİLERİ OLUŞTUR düğmesini tıklayın ve OAuth istemci kimliği'ni seçin.
      1. Application type (Uygulama türü) bölümünde iOS'i seçin.
    2. Uygulama tanımlayıcınız ve Apple Geliştirici Ekip Kimliğiniz ile Paket Kimliği'ni girin. Diğer alanlar isteğe bağlıdır ve boş bırakılabilir.
    3. OLUŞTUR'u tıklayın ve oluşturulan İstemci Kimliği'ni not edin veya PLIST'İ İNDİR'i tıklayın. Bu, daha sonra izin akışı işlevini etkinleştirmek için kullanılacaktır. Daha fazla bilgi için Yetkilendirme kimlik bilgileri oluşturma bölümüne bakın.

Home API'lerini etkinleştirme

Home API'lerine erişimi etkinleştirin.

  1. API'ler ve Hizmetler sekmesinde Etkin API'ler ve Hizmetler'i tıklayın.
  2. Sayfanın üst kısmındaki API'LERİ VE HİZMETLERİ ETKİNLEŞTİR'i tıklayın.
  3. HOME API simgesini arayıp seçin.
  4. Home API ayrıntılar sayfasında ENABLE'ı (Etkinleştir) tıklayın.

Kaynak kodunu indirme

Örnek uygulamanın kaynak kodu GitHub'da mevcuttur.

Projeyi kaydetmek istediğiniz yere gidin ve projeyi klonlayın:

git clone https://github.com/google-home/google-home-api-sample-app-ios.git

Projeyi Xcode'da yüklemek için Dosya > Aç'ı tıklayın ve klonlanan deponun kök dizininde GoogleHomeAPISampleIOS.xcodeproj'ı seçin.

SDK'yı projeye ekleme

Örnek uygulama projesinin derlenebilmesi için bazı ek bilgiler gerekiyor. Buna SDK Framework dosyalarını yerel olarak ekleme, geliştirici hesabı tanımlayıcı bilgilerinizi ve OAuth istemci kimliğinizi doldurma dahildir.

Uygulamayı derleme

Home API'leri iOS SDK'sını indirmek için önce Google Home Developers'a giriş yapmanız gerekir.

Hemen oturum açın!

Xcode projenizi örnek uygulama için yapılandırma:

  1. İndirilen SDK'yı, proje kök dizinine göre ThirdParty/GoogleHomeSDK dizinine açın.
  2. Geliştirici ve OAuth istemci kimliklerini yapılandırın:
    1. Gezinme bölmesinde GoogleHomeAPISampleIOS klasörünü bulun ve düzenlemek için Info.plist dosyasını açın.
  3. Info.plist dosyasında, GIDClientID alanını OAuth istemci kimliğinizle (OAuth iznini ayarlama bölümüne bakın), Cloud Project Number alanını bulut projenize karşılık gelen numarayla ve GIDTeamID alanını OAuth kayıt işlemi sırasında kullanılan geliştirici hesabının Apple Geliştirici Ekip Kimliği ile doldurun.

  4. App Attest özelliğini ekleyin:

    1. Proje yapılandırmasını düzenlemek için Xcode gezinme bölmesinde GoogleHomeAPISampleIOS proje dosyasını seçin.
    2. Üst kısımdaki Signing and Capabilities (İmzalama ve Özellikler) sekmesini tıklayın ve sol taraftaki TARGETS (HEDEFLER) bölümünde hedefi GoogleHomeAPISampleIOS seçin.
    3. Signing and Capabilities (İmzalama ve Özellikler) sekmesinin hemen altında + Capability (+ Özellik) seçeneğini tıklayın ve App Attest'i arayın.
    4. Eklemek için App Attest'i tıklayın. Bu özellik aramada yoksa proje tarafından zaten eklenmiş olabilir.
  5. Uygulama Grupları özelliğini ekleyin.

    Uygulama grupları ekleme

    1. GoogleHomeAPISampleIOS projesi > GoogleHomeAPISampleIOS hedefi'ne gidin.
    2. İmzalama ve Özellikler > + Özellik'i tıklayın.
    3. Uygulama Grupları özelliğini seçin.
    4. Uygulama Grupları bölümünde + simgesini tıklayın ve Apple Geliştirici Portalı'nda eklediğiniz uygulamanızın uygulama grubu tanımlayıcısını ekleyin.
    5. MatterAddDeviceExtension hedefi için bu adımları tekrarlayarak hedefi Uygulama Grupları'na ekleyin.
  6. Paket kimliğini güncelleme

    1. Örnek uygulamayı geliştirici sertifikalarınızı ve temel hazırlık profillerinizi kullanarak donanımda başarıyla çalıştırmak ve dağıtmak için benzersiz bir paket kimliği sağlamanız gerekir. Bu, OAuth istemci kimlik bilgilerinizle ilişkili tanımlayıcıyla aynı olmalıdır (yukarıya bakın).
    2. Xcode gezinme bölmesinde, proje yapılandırmasını düzenlemek için GoogleHomeAPISampleIOS proje dosyasını seçin.
    3. Üst kısımdaki Signing and Capabilities (İmzalama ve Özellikler) sekmesini tıklayın ve sol taraftaki TARGETS (HEDEFLER) bölümünde hedefi GoogleHomeAPISampleIOS seçin.
    4. Signing (İmzalama) bölümünde Bundle Identifier (Paket Kimliği) alanını seçin ve uygulamanın benzersiz tanımlayıcısını girin.
    5. Gerekli yetkilerle birlikte bu paketle ilgili temel hazırlık profilini seçin veya yükleyin.
    6. Uzantının paket kimliğini girmek ve kayıtlı sağlama profilini içe aktarmak için MatterAddDeviceExtension hedefiyle ilgili bu adımları tekrarlayın.
  7. Kayıtlı uygulama grubu tanımlayıcısını kodda güncelleyin.

    1. Uygulamanın, cihaz devreye alma gibi özellikler için Uygulama Grubu tanımlayıcısını kullanmak üzere SDK örneğini yapılandırması gerekir. HOME_API_TODO_ADD_APP_GROUP dizesini arayıp her örneği bu dizeyle değiştirerek uygulamayı, Apple Geliştirici Portalı'nda kayıtlı Uygulama Grubu Kimliği'ni kullanacak şekilde güncelleyin.

    Bu yapılandırmalar aşağıdaki dosyalarda yapılır:

    • SDK başlatıldığında GoogleHomeAPISampleIOS.swift.
    • RequestHandler.swift
    • CommissioningManager.swift
  8. GoogleHomeAPISampleIOS.swift uygulamasında OAuth kapsamını yapılandırın. Örnek uygulama kaynak kodu varsayılan olarak https://www.googleapis.com/auth/home.platform.v2 kapsamını kullanır. Örnek uygulamadaki birçok özellik, home.platform.v2 kapsamıyla sınırlanmıştır ve erişim için iş ortağı onayı gerekir. Örnek uygulamayı standart https://www.googleapis.com/auth/home.platform.selected.devices kapsamıyla çalıştırmak için GoogleHomeAPISampleIOS.swift dosyasını açın ve Home.configure içindeki homePlatformOAuthScope değerini HomePlatformOAuthScope.v1 olarak değiştirin:

    Home.configure {
      $0.sharedAppGroup = "HOME_API_TODO_ADD_APP_GROUP"
      $0.homePlatformOAuthScope = HomePlatformOAuthScope.v1
      ...
    }