View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Vídeos

Abrir menu Fechar menu
  • Coleções
  • Tópicos
  • Todos os vídeos
  • Sobre

Voltar para WWDC25

  • Sobre
  • Resumo
  • Transcrição
  • Código
  • Aumente a segurança das crianças com o PermissionKit

    Descubra como o PermissionKit ajuda a aumentar a segurança da comunicação de crianças em seu app. Vamos mostrar como usar esse novo framework para criar experiências de comunicação apropriadas para cada idade e usar o Compartilhamento Familiar para pedir a aprovação dos pais. Você aprenderá a criar solicitações de permissão que se integram perfeitamente ao app Mensagens, processar as respostas dos pais e responsáveis e adaptar sua interface para usuários menores de idade. Para aproveitar ao máximo esta sessão, recomendamos assistir primeiro ao vídeo "Proporcione experiências apropriadas para cada idade no seu app” da WWDC25.

    Capítulos

    • 0:00 - Introdução
    • 2:40 - Conhecer o PermissionKit
    • 3:26 - Personalizar a interface de usuário para crianças
    • 4:38 - Criar uma experiência de solicitação
    • 7:02 - Respostas dos pais/responsáveis
    • 10:27 - Mais formas de manter as crianças seguras

    Recursos

    • Declared Age Range
    • Design safe and age‑appropriate experiences for your apps and games
    • PermissionKit
      • Vídeo HD
      • Vídeo SD

    Vídeos relacionados

    WWDC25

    • Proporcione experiências adequadas para cada idade no seu app
  • Buscar neste vídeo...

    Olá! Meu nome é Andrew. Sou engineer da equipe Family. Esta é a sessão "Aumentar a segurança das crianças com o PermissionKit". A maior responsabilidade dos pais é proteger as crianças. Em um ambiente digital, manter as crianças seguras começa com uma conversa entre a criança e os pais e responsáveis legais.

    Isso é importante quando se trata daqueles com quem a criança interage online. Começar essa conversa em um app pode ser difícil e envolve uma grande sobrecarga técnica. O melhor lugar para os pais se comunicarem com as crianças é de um lugar em que já interajam: Mensagens. No iOS, no iPadOS e no macOS 26, é possível iniciar uma conversa no Mensagens entre uma criança e os pais com o PermissionKit. Com o PermissionKit, as crianças podem pedir permissão aos pais para interagirem com uma pessoa nova. Neste vídeo, começarei apresentando o novo framework PermissionKit.

    Depois, mostrarei como você pode adaptar a interface do app para manter a segurança das crianças com a nova API.

    Explicarei como criar um pedido de permissão de interação para a criança fazer aos pais e responsáveis diretamente no Mensagens.

    Por fim, mostrarei como ouvir e agir em relação às respostas de pais e responsáveis legais. Este vídeo pressupõe que o app tem a funcionalidade de interação e que você já tem um modo de determinar a idade ou faixa etária dos usuários. A API PermissionKit só deve ser usada quando você souber que o usuário atual é uma criança. Se você não tiver seus próprios sistemas de conta para determinar se o usuário é uma criança, use a nova API Declared Age Range. Os pais podem permitir que crianças compartilhem a faixa etária associada às contas de crianças, o que pode ser solicitado pela API declaredAgeRange. Confira a sessão "Proporcionar experiências adequadas para cada idade no seu app", da WWDC25, para obter mais informações. Veja o que devem ser considerado a fim de decidir se o PermissionKit é ideal para o app.

    O PermissionKit usa o grupo de Compartilhamento Familiar para conectar crianças com pais e responsáveis.

    Por isso, os usuários devem fazer parte de um grupo de Compartilhamento Familiar para usar o PermissionKit. Se a criança não estiver em um grupo de Compartilhamento Familiar, a API retornará uma resposta padrão. Os pais ou responsáveis devem ativar os Limites de Interação para a criança. A API também retornará uma resposta padrão se eles não estiverem ativados.

    Deixe-me apresentar o PermissionKit. O PermissionKit é um novo framework que oferece uma maneira rápida e fácil de criar experiências de permissão consistentes e de alta qualidade. No iOS, iPadOS e macOS 26, adote o PermissionKit para ajudar a proteger as crianças online. O PermissionKit pode ser usado para iniciar uma conversa no Mensagens a criança e os pais ou responsáveis no grupo de Compartilhamento Familiar. No app, as crianças podem pedir para se interagir com uma pessoa nova pelo Mensagens. Os pais podem aprovar ou recusar a solicitação de crianças para interagir diretamente com a conversa resultante do Mensagens.

    Agora vejamos como adotar o PermissionKit tornando a idade da interface apropriada. O Landmarks é um app para entender os pontos de referência. Veja como adicionar um recurso de bate-papo ao app, para que os usuários possam conversar sobre seus favoritos. O Landmarks é um app para todas as idades, sendo ideal para o PermissionKit.

    Para as crianças, o app oculta conteúdo de remetentes desconhecidos. Alguns exemplos incluem a pré-visualização de mensagem, fotos de perfil e outro conteúdo sensível e não adequado para crianças.

    Uma maneira de fazer isso é aguardando o método knownHandles(in:) do singleton CommunicationLimits. Dado um conjunto de handles, a API fará uma pesquisa otimizada e retornará um subconjunto de handles conhecidos. Isso poderia ser complementado com informações de seus bancos de dados. Não há necessidade de começar de novo se esses dados já estiverem disponíveis para você. Determine se o handle ou grupo de handles com o qual a criança quer interagir contém apenas conhecidos. Mostre o conteúdo se os handles forem conhecidos.

    A seguir, mostrarei como criar e enviar uma pergunta para que a criança possa pedir permissão aos pais. O PermissionKit fornece um resumo de pergunta, que contém todos os detalhes da solicitação de permissão. Cada pergunta tem um tópico que descreve melhor a pergunta que está sendo feita. Por exemplo, um tópico de interação empacota informações sobre uma pessoa ou um grupo, com quem a criança estiver tentando interagir. No mínimo, essas informações incluem um handle para a pessoa, especificamente o telefone, e-mail ou outro handle, como um nome de usuário.

    Agora vamos ao código. Crie uma PermissionQuestion passando os handles desconhecidos.

    Ou adicione metadados sobre handles específicos. Prefira adicionar a maior quantidade possível de metadados. Os metadados fornecidos são mostrados a pais e responsáveis e podem ser usados para ajudar a informar sua decisão de aprovar ou negar a solicitação. No caso, crie um CommunicationTopic.

    CommunicationTopic usa personInformation.

    personInformation tem recursos para identificador, nome e imagem. Você também pode definir ações sobre o tópico.

    As ações devem corresponder à forma como a criança tenta interagir com as pessoas especificadas.

    Dependendo das ações escolhidas, o sistema usará palavras específicas quando mostrar a solicitação ao responsável para revisão.

    No exemplo, uso mensagem, mas você também pode ser chamada, vídeo e outros.

    Por fim, inicialize PermissionQuestion com o communicationTopic personalizado.

    Agora, usando o PermissionQuestion que você criou, inicialize um CommunicationLimitsButton na view do SwiftUI.

    Ao tocar no botão, a criança recebe um prompt do sistema que permite enviar a pergunta ao pais e responsáveis legais pelo Mensagens.

    Para apps UIKit, use o singleton CommunicationLimits para iniciar o Ask Flow no dispositivo da criança. Você precisa aprovar um UIViewController, que o sistema usa para apresentar a interface.

    Para apps AppKit, use o singleton CommunicationLimits para iniciar o Ask Flow no dispositivo da criança. Você só precisa fornecer um NSWindow.

    Isso conclui a experiência de pedir. Agora só falta lidar com as respostas escolhidas pelos pais e responsáveis. Quando o responsável age no Mensagens, o app é aberto em segundo plano nos dispositivos da criança. É preciso lidar com essas respostas conforme são recebidas.

    Depois de abrir o app, obtenha um AsyncSequence do singleton CommunicationLimits e itere nele em uma tarefa em segundo plano para que o app seja informado sobre atualizações de permissão. Quando a resposta é recebida, você pode atualizar a interface ou publicar os dados em seus próprios bancos de dados.

    É isso. Só isso mesmo. Agora vou juntar tudo e repassar como funciona no Landmarks. O dispositivo à esquerda é o da criança, e o dispositivo à direita é o dispositivo dos pais. Aqui no dispositivo da criança, estamos na nova visualização de bate-papo que adicionei. As pré-visualizações de mensagem de todos os handles desconhecidos ficam ocultas por padrão. Tocar em uma das conversas mostra que o conteúdo da mensagem está oculto e que a criança não pode agir sem antes pedir permissão dos pais e responsáveis.

    Se a criança toca no botão de limites de comunicação, aparece um alerta. Esse alerta permite confirmar que a criança deseja enviar uma mensagem aos pais e responsáveis. Outra opção é obter a aprovação dos pais ou responsáveis pessoalmente usando a senha do Tempo de Uso. Se a criança tocar na opção Pedir no alerta, uma janela Redigir Mensagens aparece, com os responsáveis do grupo de Compartilhamento Familiar da criança pré-preenchidos no campo Para e a visualização da pergunta.

    A criança pode adicionar um nome tocando no botão Adicionar ou Editar Nome. Se você fornecer metadados para a pessoa pela API PermissionQuestion, esses metadados aparecerão aqui. Os metadados aparecerá para os pais quando eles analisarem a solicitação. Assim que a criança tocar no botão Enviar, a solicitação será enviada aos pais, como qualquer outro iMessage.

    Agora, em relação ao dispositivo dos pais, eles recebem a solicitação da criança no Mensagens.

    Os pais podem recusar diretamente no balão ou analisar o pedido.

    Se revisarem, verão um contexto adicional do pedido e poderão aprovar ou recusar.

    Independentemente da opção dos pais, a criança receberá automaticamente uma notificação informando sobre a opção. No momento em que a notificação é entregue à criança, a opção dos pais também será entregue diretamente ao seu app em segundo plano. Aja em relação à opção, por exemplo, atualizando a interface e os caches locais ou publicando informações nos servidores.

    Como os pais aprovaram, a criança pode ver e agir em relação às mensagens dessa pessoa no Landmarks. Agora que você sabe como adotar o PermissionKit, veja o que mais considerar para aumentar a segurança infantil em seu app. Use o PermissionKit como uma plataforma para adicionar experiências semelhantes fora daquelas da Apple, como o site do seu app, retendo as informações do PermissionKit em seus servidores. E não pare no PermissionKit. Veja se o seu app é adequado para outras ofertas de API de segurança familiar e infantil. Há mais maneiras de manter as crianças seguras usando as APIs. A API Sensitive Content Analysis aumenta a segurança de interação para proteger as crianças, detectando e bloqueando nudez em chamadas de vídeo. A API Declared Age Range permite criar experiências seguras e apropriadas para a idade das crianças.

    O framework Screen Time fornece as ferramentas necessárias para ajudar os pais a supervisionar como as crianças usam a internet. E o framework Family Controls ajuda os apps a fornecer os próprios controles parentais.

    Você já sabe como aumentar a segurança em seu app usando o PermissionKit. Veja o que vem a seguir. Determine a faixa etária dos usuários, com dados de seus próprios servidores ou a nova API Declared Age Range. Adapte a interface do app tendo em mente as crianças. Adote o PermissionKit. Crie perguntas para fazer e aja em relação às respostas de pais e responsáveis.

    Agradeço por me permitir apresentar o PermissionKit.

    • 4:03 - Tailor your UI for children

      import PermissionKit
      
      let knownHandles = await CommunicationLimits.current.knownHandles(in: conversation.participants)
      
      if knownHandles.isSuperset(of: conversation.participants) {
          // Show content
      } else {
          // Hide content
      }
    • 5:15 - Create a question

      import PermissionKit
      
      var question = PermissionQuestion(handles: [
          CommunicationHandle(value: "dragonslayer42", kind: .custom),
          CommunicationHandle(value: "progamer67", kind: .custom)
      ])
    • 5:38 - Create a question - additional metadata

      import PermissionKit
      
      let people = [
          PersonInformation(
              handle: CommunicationHandle(value: "dragonslayer42", kind: .custom),
              nameComponents: nameComponents,
              avatarImage: profilePic
          ),
          PersonInformation(
              handle: CommunicationHandle(value: "progamer67", kind: .custom)
          )
      ]
      
      var topic = CommunicationTopic(personInformation: people)
      topic.actions = [.message]
      
      var question = PermissionQuestion(communicationTopic: topic)
    • 6:25 - Ask a question - SwiftUI

      import PermissionKit
      import SwiftUI
      
      struct ContentView: View {
          let question: PermissionQuestion<CommunicationTopic>
      
          var body: some View {
              // ...
              CommunicationLimitsButton(question: question) {
                  Label("Ask Permission", systemImage: "paperplane")
              }
          }
      }
    • 6:43 - Ask a question - UIKit

      import PermissionKit
      import UIKit
      
      try await CommunicationLimits.current.ask(question, in: viewController)
    • 6:54 - Ask a question - AppKit

      import PermissionKit
      import AppKit
      
      try await CommunicationLimits.current.ask(question, in: window)
    • 7:19 - Parent/guardian responses

      import PermissionKit
      import SwiftUI
      
      struct ChatsView: View {
          @State var isShowingResponseAlert = false
      
          var body: some View {
              List {
                 // ...
              }
              .task {
                  let updates = CommunicationLimits.current.updates
                  for await update in updates {
                      // Received a response!
                      self.isShowingResponseAlert = true
                  }
              }
          }
      }
    • 0:00 - Introdução
    • O PermissionKit é um novo framework para iOS, iPadOS e macOS 26 que simplifica as solicitações de permissão e facilita as conversas no app Mensagens entre as crianças e seus pais ou responsáveis para novas aprovações de comunicação.

    • 2:40 - Conhecer o PermissionKit
    • Com o PermissionKit, as crianças podem solicitar permissão dos pais ou responsáveis no app Mensagens para se comunicar com novas pessoas online. O framework aproveita os grupos de Compartilhamento Familiar e exige que os Limites de Comunicação estejam ativados. Ele vai ajudar os desenvolvedores a criar experiências de comunicação mais seguras para as crianças nos apps, facilitando conversas abertas entre as crianças e seus pais sobre as interações online.

    • 3:26 - Personalizar a interface de usuário para crianças
    • O PermissionKit ajuda a adequar os apps à idade dos usuários. No app Landmarks, um novo recurso de bate-papo oculta conteúdo de remetentes desconhecidos para crianças. Use o método knownHandles(in:) de limites de comunicação para verificar se o sistema ou seu banco de dados reconhece os identificadores e mostrar para crianças apenas conteúdo de identificadores conhecidos.

    • 4:38 - Criar uma experiência de solicitação
    • Crie perguntas de permissão para as crianças enviarem aos pais. Essas perguntas incluem tópicos, como comunicação, detalhando quem a criança deseja contatar (identificador, nome, imagem) e o método de comunicação (mensagem, chamada, vídeo). Inicialize uma PermissionQuestion com CommunicationTopic e crie um CommunicationLimitsButton para acionar um prompt do sistema, permitindo que a criança envie a solicitação aos pais para aprovação via Mensagens. O UIKit e o AppKit podem iniciar o fluxo de solicitação no dispositivo da criança com o singleton Limites de Comunicação.

    • 7:02 - Respostas dos pais/responsáveis
    • Ao receber uma resposta dos pais no Mensagens, o app é iniciado em segundo plano no dispositivo da criança. Depois, ele obtém um AsyncSequence do singleton Limites de Comunicação para monitorar as atualizações de permissão. Quando o sistema recebe uma resposta, o app atualiza sua interface ou bancos de dados com base nela. No app Landmarks, o app oculta visualizações de mensagens e conteúdo de identificadores desconhecidos das crianças até que os pais concedam a permissão. As crianças podem solicitar permissão para se comunicar com novos contatos, e os pais podem revisar, aprovar ou recusar essas solicitações no app Mensagens. A decisão dos pais é notificada no app da criança, permitindo que ela veja e responda às mensagens se houver aprovação.

    • 10:27 - Mais formas de manter as crianças seguras
    • Novas APIs e frameworks ajudam a proteger as crianças, detectando nudez ao vivo, verificando a idade do usuário e ativando controles parentais. Determine a idade do usuário, adapte interfaces e implemente o PermissionKit para criar experiências seguras e apropriadas para a idade das crianças.

Developer Footer

  • Vídeos
  • WWDC25
  • Aumente a segurança das crianças com o PermissionKit
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Store
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Sample Code
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Get the Apple Developer app.
    Copyright © 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines