Como renomeio completamente um projeto do Xcode (ou seja, inclusive pastas)?

470

Eu tenho um projeto chamado XXX. Eu quero renomear este projeto para YYY.

Observe que esse XXXé um termo extremamente comum (por exemplo, "dados" ou simplesmente "projeto") e, portanto, uma simples pesquisa e substituição do RegEx não é possível, correndo o risco de corromper os arquivos de configuração do projeto.

Meu diretório de projetos atual contém os seguintes itens:

  • XXX
  • XXXTests
  • XXX.xcodeproj

e eu quero renomeá-los para:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... respectivamente, com as alterações necessárias refletidas no meu arquivo de projeto.

Como fazer isso sem ter que criar e preencher manualmente um novo projeto?


Edit: É absolutamente ridículo que esta se tornou minha pergunta mais votada.

Vatsal Manot
fonte
Possível duplicado do projeto Xcode Rename
Ron Myschuk
1
Também feitas e respondidas aqui stackoverflow.com/questions/17744319/... com 200 os votos sobre a resposta
Ron Myschuk
1
também perguntado e respondido aqui stackoverflow.com/questions/8262613/… com 189 votos
positivos,
Se você quiser apenas renomear o nome do ícone do aplicativo, marque esta resposta stackoverflow.com/questions/238980/…
LYu

Respostas:

1020

Etapa 1 - Renomeie o projeto

  1. Clique no projeto que deseja renomear no "Navegador de projeto" no painel esquerdo da janela do Xcode.
  2. No painel direito, selecione o "Inspetor de arquivos" e o nome do seu projeto deve ser encontrado em "Identidade e tipo". Mude para o seu novo nome.
  3. Quando a caixa de diálogo perguntar se deseja renomear ou não os itens de conteúdo do projeto, clique em "Renomear".

Etapa 2 - Renomeie o esquema

  1. Na parte superior da janela, ao lado do botão "Stop", existe um esquema para o seu produto com o nome antigo; clique nele e escolha "Gerenciar esquemas ...".
  2. Clique no nome antigo no esquema e ele se tornará editável; mude o nome e clique em "Fechar".

Etapa 3 - renomeie a pasta com seus ativos

  1. Saia do Xcode.
  2. Na pasta principal nomeada corretamente, há um arquivo .xcodeproj recém-nomeado com a pasta OLD nomeada incorretamente. Renomeie a pasta OLD para seu novo nome (se você usar o Git, poderá executar git mv oldname newnamepara que o Git reconheça que é uma mudança, em vez de excluir / adicionar novos arquivos).
  3. Abra novamente o projeto no Xcode e você verá um aviso "A pasta OLD não existe"; ignore o aviso.
  4. No "Navegador de projeto" no painel esquerdo, clique na pasta OLD de nível superior.
  5. No painel direito, em "Identidade e tipo", altere o campo "Nome" do nome OLD para o novo nome.
  6. Logo abaixo desse campo, há um menu "Localização". Clique no ícone da pasta próxima e escolha a pasta renomeada.

Etapa 4 - renomeie os dados do Build plist

  1. Clique no projeto no "Navegador de projeto" à esquerda e, no painel principal, selecione "Configurações de construção".
  2. Procure por "plist" nas configurações.
  3. Na seção Embalagem, você verá Info.pliste Product Bundle Identifier.
  4. Se houver um nome digitado Info.plist, atualize-o.
  5. Faça o mesmo para Product Bundle Identifier.
  6. Se você usa o SwiftUI, procure por "Development Assets" e atualize o caminho.

Etapa 5 - Repita a etapa 3 para testes (se você os tiver)

Etapa 6 - Repita a etapa 3 para os dados principais, se o nome corresponder ao nome do projeto (se houver)

Etapa 7 - Reconstrua seu projeto

  1. Command+ Shift+ Kpara limpar
  2. Command+ Bpara construir
Luke West
fonte
5
Você pode alterar o nome do projeto, mas os nomes das pastas ainda são os mesmos. Você sabe como alterá-los
Coder221 15/16
5
Obrigado! para o Xcode 8, o arquivo de direitos deve ser renomeado manualmente.
Jiulong Zhao 24/10
54
Ao executar a etapa 3, parte 2 (renomeando a pasta), se você estiver usando o git, eu recomendo git mv oldname newname, dessa forma, o git reconhecerá que foi uma mudança, não excluindo e adicionando todos os seus arquivos.
Aaron Ash
14
perfect, funciona perfeitamente no Xcode 8.2, apenas uma coisa a apontar aqui durante a edição do esquema, se clicar no nome do esquema uma vez não o torna editável , selecione o esquema e pressione a tecla Enter para tornar o nome do esquema editável.
Khurram Shehzad
5
Não esqueça de encontrar e substituir outras instâncias do nome antigo do seu projeto.
Derek Soike
194

Para adicionar à excelente resposta de @ luke-west:

Ao usar o CocoaPods

Após o passo 2:

  1. Saia do XCode.
  2. Na pasta mestre, renomeie OLD.xcworkspacepara NEW.xcworkspace.

Após o passo 4:

  1. No XCode: escolha e edite Podfileno navegador do projeto. Você deve ver uma targetcláusula com o nome OLD. Altere para NEW.
  2. Saia do XCode.
  3. Na pasta do projeto, exclua o OLD.podspecarquivo.
  4. rm -rf Pods/
  5. Corra pod install.
  6. Abra o XCode.
  7. Clique no nome do seu projeto no navegador do projeto.
  8. No painel principal, alterne para a Build Phasesguia.
  9. Em Link Binary With Libraries, procure libPods-OLD.ae exclua-o.
  10. Se você tiver um cabeçalho de ponte de objetivo-c, vá para Configurações de compilação e altere a localização do cabeçalho de OLD / OLD-Bridging-Header.h para NEW / NEW-Bridging-Header.h
  11. Limpe e corra.
Vaiden
fonte
7
Usando o Xcode 8.3.2, tive que usar cocoapods-deintegrate e reinstalar todos os pods para executar o projeto com o novo nome.
precisa saber é o seguinte
2
@ SteffenK existe uma diferença entre esse método e os rm -rf Pods /? Considerando que você executou todas as outras etapas?
Vaiden
1
Você elaboraria por favor? Quais traços?
Vaiden
2
@ Vaiden, muito obrigado pela clareza extra ao trabalhar com CocoaPods! O processo criou uma segunda referência, o que foi estranho, mas depois de removê-lo tudo estava funcionando perfeitamente! Obrigado novamente! :)
Matt Swift
4
Alguém poderia me dizer onde posso encontrar o arquivo OLD.podspec mencionado nesta resposta? No meu projeto, eu tenho alguns arquivos como 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj' e uma pasta vazia chamada 'Podspecs locais', mas não consigo encontrar um arquivo
.podspec
51

Uma solução mais rápida usando comandos de shell (também funciona com CocoaPods):

POR FAVOR, cdPARA UM REPOSITÓRIO NÃO GIT ANTES DE PROCEDER ⚠️

Etapa 1 - Pré-requisitos

  1. Copie sua pasta original do projeto para um temporário /NewProjectFolder FORA DO seu repositório git. Changes️ alterações em .git podem corromper seu índice git 💥 ☠

Etapa 2 - Abrir Terminal

Agora vamos renomear o projeto de oldNamepara NewProject.

  • Feche o XCode.
  • Vá para o seu /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Instale as ferramentas extras necessárias.
brew install rename ack
  • Renomeie os arquivos e diretórios que contêm a cadeia de origem. Você precisará EXECUTAR ESTE COMANDO DUAS VEZES , porque os diretórios serão renomeados primeiro e, em seguida, os arquivos e diretórios dentro deles serão renomeados na próxima iteração.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Verifique se todos os arquivos que contêm a cadeia de origem foram renomeados. Você deve ver a saída vazia.
find . -name 'oldName*'
  • Substitua todas as ocorrências da sequência em todos os arquivos.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Verifique se todas as ocorrências da sequência em todos os arquivos foram substituídas. Você deve ver a saída vazia.
ack --literal 'oldName'
  • Corre pod install
  • Adicione NewProjectFolderao seu repositório.
  • Você terminou!
Pietro Basso
fonte
3
Obrigado por isso, achei útil. Ao copiar e colar comandos como este, prefiro que o trabalho possa ser minimizado, para que um nome de exemplo "YourNewAmazingProjectName" seja um exagero, basta usar "example", pois prolonga a vida da minha chave de exclusão.
precisa saber é o seguinte
1
@LpLrich obrigado por sua sugestão, acabei de atualizar minha resposta.
Pietro Basso
A pasta principal foi renomeada, mas não estou vendo nenhum outro diretório ou arquivo renomeado, alguma sugestão?
Ethan Parker
2
@ EthanParker você precisa executar find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'duas vezes, arquivos e diretórios dentro das pastas principais serão renomeados na segunda iteração.
Pietro Basso
1
Eu usei coreData no meu projeto e tive que executar este comando não duas vezes, mas três vezes.
ShadeToD 03/03/19
21

Existe um projeto GitHub chamado Xcode Project Renamer:

Ele deve ser executado a partir da raiz interna do diretório do projeto Xcode e chamado com dois parâmetros de string: $ OLD_PROJECT_NAME e $ NEW_PROJECT_NAME

O script percorre todos os arquivos e diretórios recursivamente, incluindo o projeto Xcode ou o arquivo da área de trabalho e substitui todas as ocorrências da cadeia $ OLD_PROJECT_NAME pela cadeia $ NEW_PROJECT_NAME (tanto no nome quanto no conteúdo de cada arquivo).

NÃO ESQUEÇA DE BACKUP DO SEU PROJETO!

Xcode Project Renamer

Olcay Ertaş
fonte
Isso não é útil para iniciantes, tudo o que faz é corromper meu arquivo de projeto principal e também não remove o script usando os comandos abaixo que terminam por perder tempo. $ rm rename.swift
Peter Walter
Por favor, não vá atrás de atalhos.
Peter Walter
6
@ peter-walter, você deve sempre fazer backup de seus dados antes de tais operações.
Olcay Ertaş 22/06/19
Isso funcionou como um encanto. A única coisa que falta é que você precise executar pod installapós executar o script.
romin21
11

XCode 11.0+.

É realmente simples agora. Basta ir ao Project Navigatorpainel esquerdo da janela do XCode.
Pressione Enterpara ativá-lo para renomear, assim como você altera o nome da pasta.
insira a descrição da imagem aqui

Apenas mude o novo nome aqui e o XCode solicitará que você renomeie outras peças.

insira a descrição da imagem aqui.

Toque Renameaqui e pronto.
Se você está confuso com o nome da pasta raiz e por que não foi alterado, é apenas uma pasta. apenas renomeou com um novo nome.
insira a descrição da imagem aqui

Kiran Jasvanee
fonte
7

Para alterar o nome do projeto;

  1. Selecione seu projeto no navegador do projeto.

2.Na seção Identidade e Tipo do inspetor de arquivos, insira um novo nome no campo Nome.

3.Pressione Return.

Uma caixa de diálogo é exibida, listando os itens em seu projeto que podem ser renomeados. A caixa de diálogo inclui uma visualização de como os itens aparecerão após a alteração.

  1. Para renomear itens seletivamente, desative as caixas de seleção dos itens que não deseja renomear. Para renomear apenas seu aplicativo, deixe-o selecionado e desmarque todos os outros itens.

  2. Pressione "Renomear"

Paal Aune
fonte
5

Instruções adicionais ao seguir as soluções @ Luke-West + + Vaiden:

  • Se o seu esquema não foi alterado (ainda mostrando o meu mac) na parte superior esquerda, ao lado do botão Parar:

    1. Clique em Nome do projeto recém-criado (próximo ao botão de parada)> Clique em Editar esquemas> Construir (lado esquerdo)> Remova o destino antigo (dirá que está faltando) e substitua pelo projeto NEWLY chamado sob NEWLY named design logo

Além disso, não precisei usar a etapa 3 da solução da @ Vaiden. Apenas rodando rm -rf Pods/no terminal se livrou de todos os arquivos pod antigos

Também não precisei usar a etapa 9 da solução do @ Vaiden, apenas removi o projeto OLD chamado framework em Link Binary Libraries (o framework NEWLY named já estava lá)

Portanto, as etapas atualizadas seriam as seguintes:

Etapa 1 - Renomeie o projeto

  1. Se você estiver usando cocoapods em seu projeto, feche a área de trabalho e abra o projeto XCode para estas etapas.
  2. Clique no projeto que você deseja renomear no "Navegador de projetos", à esquerda da visualização do Xcode.
  3. À direita, selecione o "Inspetor de arquivos" e o nome do seu projeto deve estar lá em "Identidade e tipo", altere-o para o novo nome.
  4. Clique em "Renomear" em um menu suspenso

Etapa 2 - Renomeie o esquema

  1. Na barra superior (perto do botão "Stop"), existe um esquema para o seu produto OLD, clique nele e vá para "Gerenciar esquemas"
  2. Clique no nome OLD no esquema e ele se tornará editável, altere o nome
  3. Saia do XCode.
  4. Na pasta mestre, renomeie OLD.xcworkspace para NEW.xcworkspace.

Etapa 3 - renomeie a pasta com seus ativos

  1. Sair do Xcode
  2. Na pasta principal nomeada corretamente, há um arquivo xcodeproj recém-nomeado com a pasta OLD nomeada incorretamente. Renomeie a pasta OLD para seu novo nome
  3. Reabra o projeto, você verá um aviso: "A pasta OLD não existe", descarte o aviso
  4. No "Navegador de projeto" à esquerda, clique no nome da pasta OLD de nível superior
  5. No painel Utilitários, em "Identidade e tipo", você verá a entrada "Nome", altere isso de OLD para o novo nome
  6. Logo abaixo, há uma entrada "Local". Clique em uma pasta com o nome OLD e escolha a pasta recém-renomeada

Etapa 4 - renomeie os dados do Build plist

  1. Clique no projeto em "Navegador de projeto", à esquerda, no painel principal, selecione "Configurações de construção"
  2. Procure por "plist" nesta seção Em embalagem, você verá o Info.plist e o identificador de pacote do produto
  3. Renomeie a entrada superior no Info.plist
  4. Faça o mesmo para o Identificador do produto

Etapa 5 Manipulando o Podfile

  1. No XCode: escolha e edite o Podfile no navegador do projeto. Você deve ver uma cláusula de destino com o nome OLD. Altere para NEW.
  2. Saia do XCode.
  3. No terminal, cd no diretório do projeto, então: rm -rf Pods/
  4. Execute a instalação do pod.
  5. Abra o XCode.
  6. Clique no nome do seu projeto no navegador do projeto.
  7. No painel principal, alterne para a guia Criar fases. Em Vincular binário com bibliotecas, procure a estrutura OLD e remova-a (deve dizer que está faltando). A estrutura NEWLY nomeada já deve estar lá, se não usar o botão "+" na parte inferior da janela para adicioná-la.
  8. Se você tiver um cabeçalho de ponte de objetivo-c, vá para Configurações de compilação e altere a localização do cabeçalho de OLD / OLD-Bridging-Header.h para NEW / NEW-Bridging-Header.h
  9. Limpe e corra.

Você deve poder criar sem erros depois de seguir todas as etapas com êxito

itsmcgh
fonte
2
Para a Etapa 5.3, em vez de rm-rf Pods/uma maneira mais limpa, é executar o pod deintegrateque remove todos os vestígios de CocoaPods do seu projeto do Xcode, mas deixa seu Podfile intacto.
jklapwyk
Isto governa. Ele forneceu a base para eu mesclar um aplicativo Ionic com um aplicativo iOS existente.
t4l 28/04
2

Além de todas as etapas recomendadas por Luke e Vaiden, também tive que renomear todas as propriedades customModule no meu Storyboard para corresponder ao novo nome, e isso deve ser sensível a maiúsculas e minúsculas.

CristianMoisei
fonte
1
a única pessoa que já mencionou isso!
Fattie
1
OBSERVAÇÃO, você pode fazer isso no INTERFACE BUILDER, apenas clicando "novamente" no campo. Ele será "re-padrão" corretamente para o seu novo nome de projeto.
Fattie