Estruture contas do Expo, projetos EAS e controle de acesso baseado em papéis para que equipes possam lançar múltiplos aplicativos sob uma única organização - com propriedade clara, isolamento de credenciais e permissões de menor privilégio.
Cartão de receita de referência rápida - pronto para copiar e colar.
# Faça login e vincule um novo aplicativo a um projeto de organizaçãoeas logineas init
// app.json - direcione o aplicativo para uma organização e fixe o projeto EAS{ "expo": { "name": "Aplicativo de Varejo", "slug": "retail-app", "owner": "acme-mobile", "extra": { "eas": { "projectId": "bd2f7e21-1ee7-47f2-8357-d7c4b50622fb" } } }}
# Verifique qual conta é proprietária do projeto vinculadoeas project:info
Quando usar isso:
Sua equipe tem mais de um desenvolvedor mexendo em builds, credenciais ou variáveis de ambiente.
Você lança múltiplos aplicativos (por cliente, marca ou plataforma) e precisa de credenciais isoladas com faturamento compartilhado.
Você precisa de auditoria - quem pode enviar para a loja, rotacionar segredos ou convidar membros.
Você está migrando de uma conta pessoal para uma organização sem quebrar aplicativos em produção.
# CI: use um token de robô com escopo mínimo - não uma senha pessoal# Dashboard do Expo → Configurações da Conta → Tokens de Acesso → Criar tokenexport EXPO_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxx"eas build --profile production --platform ios --non-interactive
O que isso demonstra:
owner direciona o aplicativo para uma organização - builds, credenciais e variáveis de ambiente são escopados para acme-mobile.
projectId é a chave durável que os serviços EAS usam em mudanças de slug ou identificador de bundle.
Perfis de build mapeiam para ambientes sem duplicar armazenamentos de credenciais por desenvolvedor.
Tokens de robô para CI preservam o menor privilégio - sem senhas pessoais compartilhadas.
eas init → cria/vincula projeto sob a conta ativa
→ escreve extra.eas.projectId na configuração do app
→ EAS Build / Update / variáveis de ambiente usam projectId como chave
slug é legível por humanos e usado em URLs - pode mudar.
projectId é um UUID - estável durante a vida útil do projeto.
owner determina qual armazenamento de credenciais e faturamento da conta se aplicam.
Atribua Desenvolvedor para engenheiros que lançam diariamente. Reserve Proprietário para líderes e contatos de faturamento. Use Visualizador para stakeholders que só precisam abrir builds de pré-visualização no Expo Go.
// Lendo metadados do projeto vinculado em tempo de execução (apenas diagnósticos - não para autenticação)import Constants from "expo-constants";const projectId = Constants.expoConfig?.extra?.eas?.projectId;const owner = Constants.expoConfig?.owner; // disponível na configuração estáticaexport function DiagnosticsBanner() { if (!__DEV__) return null; return ( <Text> EAS {projectId ?? "não vinculado"} · proprietário: {owner ?? "pessoal"} </Text> );}
Nunca use projectId ou owner para autorização no aplicativo - eles são identificadores de tempo de compilação, não limites de segurança.
Compartilhar a senha de uma conta pessoal - Sem trilha de auditoria, sem revogação por pessoa, viola os Termos de Serviço do Expo. Correção: Crie uma Organização e convide membros com os papéis apropriados.
Omitir owner em projetos de organização - eas build pode ter como alvo sua conta pessoal em vez da equipe. Correção: Defina "owner": "slug-da-org" em app.json antes de eas init ou transfira o projeto.
Codificar credenciais em cada máquina de desenvolvedor - Chaves Apple/Google armazenadas localmente quebram CI e onboarding. Correção: Deixe o EAS hospedar credenciais sob o projeto da organização; use eas credentials para rotação.
Conceder Proprietário a todos os engenheiros - Um clique acidental pode excluir credenciais de produção. Correção: Padrão para Desenvolvedor; mantenha dois Proprietários para cobertura de fator de ônibus.
Reutilizar um projeto EAS para aplicativos não relacionados - Credenciais, canais de atualização e variáveis de ambiente colidem. Correção: Um projectId por binário de aplicativo (identificador de bundle / pacote).
Transferir sem Administrador em ambos os lados - Movimentações de projeto exigem Proprietário ou Administrador na origem e destino. Correção: Use uma organização em custódia para transferências de terceiros.
Tokens de CI em contas pessoais - O token herda o escopo do projeto pessoal; expira quando o funcionário sai. Correção: Crie um token robô sob a organização.
Quando devo criar uma Organização em vez de usar minha conta pessoal?
Quando qualquer pessoa além de você precisar executar builds, gerenciar credenciais, configurar variáveis de ambiente ou enviar para as lojas de aplicativos. Organizações fornecem RBAC, armazenamentos de credenciais compartilhados e gerenciamento de membros.
Quais são os quatro papéis de organização?
Proprietário - controle total, incluindo exclusão
Administrador - configurações, faturamento, convites (não pode conceder Proprietário)
Desenvolvedor - builds, atualizações, credenciais
Visualizador - somente leitura via Expo Go, sem modificações
O que faz o campo owner em app.json?
Define qual conta Expo (nome de usuário pessoal ou slug da organização) é proprietária do projeto. Builds, credenciais e URLs do painel são resolvidos sob essa conta. Obrigatório quando o projeto pertence a uma organização da qual você é membro.
O que é extra.eas.projectId?
Um UUID estável escrito por eas init que vincula seu repositório a um projeto EAS. EAS Build, Update, variáveis de ambiente e credenciais são escopados para este ID - não para o slug ou identificador de bundle.
Como vincular um repositório existente ao EAS?
eas logineas init
Siga as instruções para criar um novo projeto ou vincular a um existente. O comando escreve projectId na configuração do seu aplicativo.
Armadilha: Por que meu build rodou na minha conta pessoal em vez da org da equipe?
A conta ativa eas whoami ou um campo owner ausente tem como padrão o escopo pessoal. Defina "owner": "slug-da-sua-org" na configuração do aplicativo e confirme se eas project:info mostra a organização.
Posso converter uma conta pessoal em uma organização?
Sim - Configurações do Usuário → "Converter sua conta em uma organização." Projetos, credenciais, assinaturas EAS e webhooks são transferidos. Planeje uma janela de manutenção e confirme se as integrações que usam seu token de acesso ainda funcionam.
Como funcionam as transferências de projeto?
Configurações do Projeto → Geral → Transferir projeto. Você deve ser Proprietário ou Administrador em ambas as contas de origem e destino. Para transferências para terceiros sem acesso compartilhado, use uma organização em custódia.
Quem pode convidar novos membros?
Proprietários e Administradores. Administradores podem atribuir qualquer papel, exceto Proprietário. Proprietários podem atribuir qualquer papel, incluindo Proprietário.
Qual a diferença entre variáveis de ambiente por projeto e em toda a conta?
Por projeto: Escopadas para um projeto EAS (um aplicativo).
Em toda a conta: Disponíveis para todos os projetos na organização. Configure em Configurações da Conta → Variáveis de ambiente.
Como a CI deve se autenticar no EAS?
Crie um token de acesso (usuário robô para organizações). Defina EXPO_TOKEN nos segredos da CI. Use --non-interactive em eas build e eas submit. Não armazene senhas pessoais na CI.
Vários aplicativos podem compartilhar um projeto EAS?
Tecnicamente sim, mas não é recomendado. Credenciais, canais de atualização e variáveis de ambiente colidem. Use um projeto EAS por aplicativo distinto (identificador de bundle / pacote exclusivo).
Quais permissões um Desenvolvedor precisa para o trabalho do dia a dia?
O papel de Desenvolvedor cobre eas build, eas update, eas credentials e leitura de variáveis de ambiente (de acordo com a visibilidade). Desenvolvedores não podem gerenciar faturamento, convidar membros ou alterar configurações da organização.
Como estruturar uma agência com muitos clientes?
Crie uma Organização separada para cada cliente (client-a-mobile, client-b-mobile). Cada organização detém seus próprios projetos, credenciais e faturamento. Desenvolvedores recebem convites apenas para as organizações que atendem.
Onde auditar as alterações de segurança da conta?
Visão Geral da Conta → Configurações do Usuário → Atividade de Segurança. Mostra alterações de senha, e-mail e 2FA. Proprietários da Organização devem impor 2FA para todos os membros em contas de produção.