Duplicar e renomear o projeto Xcode e pastas associadas

Eu gostaria de ser capaz de duplicar um projeto Xcode inteiro, renomear o projeto e os arquivos associados sem o Xcode, e sem ter que reimportar manualmente todos os arquivos para o projeto.

Esta resposta é o ponto culminante de várias outras postagens e tutoriais do StackOverflow em toda a Internet reunidas em um só lugar para minha futura referência, e para ajudar qualquer outra pessoa que esteja enfrentando o mesmo problema. Todo o crédito é dado por outras respostas no final.

Duplicando um projeto Xcode

  • No Finder, duplique a pasta do projeto para o local desejado do novo projeto. Não renomeie o nome do arquivo .xcodeproj ou quaisquer pastas associadas neste estágio.

  • No Xcode, renomeie o projeto. Selecione seu projeto no painel do navegador (painel esquerdo). No painel Utilitários (painel direito) renomeie seu projeto, Aceite as alterações propostas pelo Xcode.

  • No Xcode, renomeie os esquemas em “Gerenciar Esquemas”, também renomeie qualquer alvo que você possa ter.

  • Se você não estiver usando o Identificador de pacote padrão, que contém o PRODUCT_NAME atual no final (portanto, atualizará automaticamente), altere seu Identificador de pacote para o novo que será usado em seu projeto duplicado.

Renomeando a pasta de origem

Então, após seguir as etapas acima, você deve ter um projeto Xcode duplicado e renomeado que deve compilar e compilar com sucesso, no entanto, sua pasta de código-fonte ainda será nomeada como estava no projeto original. Isso não causa problemas no compilador, mas não é a estrutura de arquivos mais clara para as pessoas navegarem no SCM, etc. Para renomear essa pasta sem quebrar todos os seus links de arquivo, siga estas etapas:

  • No Finder, renomeie a pasta de origem. Isso quebrará seu projeto, porque o Xcode não detectará automaticamente as alterações. Todas as suas listagens de arquivos xcode perderão seus links com os arquivos reais, então tudo ficará vermelho.

  • No Xcode, clique na pasta virtual que você renomeou (Isso provavelmente estará bem no topo, logo abaixo do seu projeto .xcode real) Renomeie isso para combinar com o nome no Finder, isso não consertará nada e estritamente não é um etapa necessária, mas é bom ter os nomes dos arquivos correspondentes.

  • No Xcode, selecione a pasta que você acabou de renomear no painel de navegação. Em seguida, no painel Utilitários (direita), clique no ícone que se parece com a pasta cinza escuro, logo abaixo do menu suspenso “Local”. A partir daqui, navegue até a pasta renomeada no localizador e clique em “Escolher”. Isso irá automagicamente associar novamente todos os seus arquivos, e eles não devem mais aparecer vermelhos no painel de navegação do Xcode.

Ícone para clicar

  • Em suas configurações de construção do projeto / destinos, procure o nome da pasta antiga e renomeie manualmente todas as ocorrências encontradas. Normalmente existe um para o prefixo.pch e outro para o info.plist, mas pode haver mais.

  • Se você estiver usando bibliotecas de terceiros (Testflight / Hockeyapp / etc), também precisará procurar por ‘Caminhos de pesquisa de biblioteca’ e renomear aqui também quaisquer ocorrências do nome do arquivo antigo.

  • Repita este processo para qualquer pasta de código-fonte de teste de unidade que seu projeto possa conter, o processo é idêntico.

Isso deve permitir que você duplique e renomeie um projeto xcode e todos os arquivos associados sem ter que editar manualmente nenhum arquivo xcode e arriscar bagunçar tudo.

Créditos

Muito obrigado a Nick Lockwood e Pauly Glott por fornecerem as respostas separadas para esse problema.

  • Duplicando um projeto do XCode 4
  • Renomeando o projeto xcode 4 e a pasta atual

Estou postando isso desde que eu sempre tive dificuldades ao renomear um projeto no XCode .

Renomear o projeto é bom e simples, mas isso não renomeia a pasta de origem. Aqui está um passo a passo do que eu fiz e que funcionou muito bem no Xcode 4 e 5 graças aos links abaixo.

Links REF:
Renomear projeto.
Renomeie a pasta de origem e outros arquivos.

1- Faça backup do seu projeto.

Se você estiver usando o git, efetue as alterações, faça uma cópia de toda a pasta do projeto e faça o backup na máquina do tempo antes de fazer qualquer alteração (essa etapa não é necessária, mas é altamente recomendável).

2- Abra seu projeto.

3- Dê um duplo clique ou aperte enter no nome do projeto (ícone azul no topo) e renomeie para o que você quiser.

NOTA: Depois de renomear o projeto e pressionar “enter”, ele sugerirá que você altere automaticamente todas as inputs relacionadas ao nome do projeto e permitirá que você desmarque algumas delas, se desejar. Selecione todos eles e clique em ok.

4- Renomeie o Esquema

a) Clique no menu ao lado do botão Parar e selecione Gerenciar Esquemas.

b) Clique com um clique lento ou aperte enter no antigo esquema de nomes e renomeie para o que você quiser.

c) Clique em ok.

5 – Construa e corra para se certificar de que funciona.

OBSERVAÇÕES: Neste ponto, todos os arquivos importantes do projeto devem ser renomeados, exceto os comentários nas classs criadas quando o projeto foi criado, nem na pasta de origem. Em seguida, vamos renomear a pasta no sistema de arquivos.

6- Feche o projeto.

7- Renomeie a pasta principal e a pasta de origem.

8 – Clique com o botão direito do mouse no arquivo .xcodeproj pacote do projeto e selecione “Show Package Contents” no menu de contexto. Abra o arquivo .pbxproj com qualquer editor de texto.

9- Procure e substitua qualquer ocorrência do nome da pasta original pelo novo nome da pasta.

10- Salve o arquivo.

11- Abra o projeto XCode, teste-o.

12- Feito.

A partir do XCode 7 isso ficou muito mais fácil.

A Apple documentou o processo em seu site: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html

Atualização: Link do XCode 8: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f

Estou usando o Xcode 6+ e acabei de fazer:

  • Copie todos os arquivos nas pastas do projeto para novas pastas (com novo nome).
  • Abra *.xcodeproj or *.xcworkspace
  • Alterar nome do projeto.
  • Clique no esquema e exclua o chema atual e adicione um novo.

Aqui está feito, mas o nome da janela Xcode e *.xcodeproj or *.xcworkspace ainda . Então eu faço:

  • pop install
  • Abra o .xcworkspace

Mais uma coisa para tentar!

Quando copiei todos os meus arquivos, abri o projeto e o renomei, tudo mudou para o nome do meu novo projeto, exceto para o alvo de teste! Eu tenho um erro de vinculador que dizia que estava faltando um arquivo chamado “myOldProjectname.app”. Veja o que resolveu:

  1. Clique nas configurações do seu projeto e selecione o seu alvo de teste insira a descrição da imagem aqui

  2. Clique nas configurações de criação e pesquise “host de teste” insira a descrição da imagem aqui

  3. Verifique esses dois caminhos de arquivo. As chances são de que esses dois caminhos ainda estejam apontando para o nome do seu projeto antigo. insira a descrição da imagem aqui

Espero que ajude!

Estou usando este script depois de renomear meu projeto iOS. Isso ajuda a mudar o nome dos diretórios e tornar os nomes em sincronia.

http://github.com/ytbryan/rename

NOTA: você precisará alterar manualmente o nome do esquema.

Para qualquer outra pessoa que tenha problemas com travamentos de storyboard depois de copiar seu projeto, vá para Main.storyboard sob o Identity Inspector.

Em seguida, verifique se o seu módulo atual é o módulo renomeado correto e não o antigo.

No código de exemplo do livro “Instant OpenCV for iOS” , encontrei um script bash que copia um projeto de uma pasta para outra.
Fazendo uma pequena pesquisa, encontrei uma postagem no blog do que parece ser o autor original do script: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , onde você pode baixar o script . Eu dei uma chance e executá-lo a partir do terminal como este

  sh renameXcodeProject.sh   

funciona bem.
Informações adicionais podem ser encontradas abrindo o arquivo com um editor de texto. espero que ajude

Estou usando o script BASH simples para renomear.

Uso: ./rename.sh oldName newName

 #!/bin/sh OLDNAME=$1 NEWNAME=$2 export LC_CTYPE=C export LANG=C find . -type f ! -path ".*/.*" -exec sed -i '' -e "s/${OLDNAME}/${NEWNAME}/g" {} + mv "${OLDNAME}.xcodeproj" "${NEWNAME}.xcodeproj" mv "${OLDNAME}" "${NEWNAME}" 

Notas:

  1. Este script irá ignorar todos os arquivos como .DS_Store e .DS_Store
  2. Não funcionará se o nome antigo / novo nome contiver espaços
  3. Pode não funcionar se você usar pods (não testados)
  4. O nome do esquema não será alterado (de qualquer forma, o projeto é executado e compilado normalmente)