Renomeando o projeto xcode 4 e a pasta real

119

Eu sei como renomear o projeto no Xcode 4, mas como você renomeia a pasta de origem? O fato é que renomear o projeto no Xcode, renomeia apenas no Xcode (embora seja um progresso comparado ao anterior) - mas por que o Xcode não está renomeando a pasta no sistema de arquivos que eu não conheço.

Chris G.
fonte
Você já tentou renomear a pasta?
David Brown
2
Eu tenho meu amigo e todos os arquivos do projeto estão ausentes - todos eles são marcados com lidos, por não terem nenhuma referência. Mas eu encontrei a alma da alma - veja minha resposta. Obrigado por responder
Chris G.

Respostas:

259

Você pode fazer isso no Xcode sem precisar editar manualmente o arquivo pbxproj em um editor de texto!

Aqui está como:

  1. Renomeie sua pasta de origem no Finder. Isso interromperá o projeto inicialmente porque o Xcode não detecta automaticamente quando as pastas reais para as quais as pastas virtuais (amarelas) do projeto apontam são alteradas, para que todos os arquivos dentro dessa pasta fiquem vermelhos no Xcode. Não se preocupe, corrigiremos na etapa 3.

  2. No Xcode, clique na pasta virtual (agora quebrada) na barra lateral esquerda e renomeie-a para corresponder ao nome no Finder (você pode chamá-lo como quiser ou não renomeá-lo, mas isso seria insano) ) Isso não corrigirá os arquivos vermelhos dentro da pasta, mas tudo bem.

  3. Na barra lateral direita do Xcode, clique no ícone mostrado na captura de tela abaixo para abrir uma caixa de diálogo de arquivo. Selecione a pasta que você renomeou anteriormente. Isso associará novamente a pasta virtual à pasta real no disco e corrigirá automaticamente os links para todos os arquivos internos.

  4. Nas configurações de sua compilação, procure o nome da pasta antiga e renomeie manualmente as ocorrências encontradas. Normalmente haverá dois deles, oldfolder / prefix.pch e oldfolder / info.plist, mas pode haver outros.

Tudo feito!

insira a descrição da imagem aqui

EDIT: esta opção ainda está lá no Xcode 5, mas é útil por padrão. Para mostrá-lo, clique no cabeçalho fino "Identidade e tipo" no inspetor acima do painel "Configurações de texto" para expandi-lo.

Nick Lockwood
fonte
Excelente Gostaria de acrescentar que, se a renomeação fizer parte da renomeação de todo o projeto, existe outra etapa: Altere o "Nome do Projeto" na parte direita da área superior e permita que o Xcode renomeie tudo internamente para corresponder.
RedYeti
1
Tudo funcionou muito bem, e o projeto foi renomeado, mas a mensagem de construção na parte superior e o nome do simulador ainda mantinham o nome antigo, para alterar isso: vá para o menu do produto, gerencie esquemas e renomeie o esquema
BlackTigerX
Verdade. Você também pode excluir o esquema e pressionar o botão Criar esquemas automaticamente.
Nick Lockwood #
Alguém sabe como fazer isso no xCode 5? Não vejo mais esse botão mágico. :(
Jason
Ainda está lá, está apenas escondido. Você deve expandir a linha chamada "Identidade e tipo" no inspetor clicando nela. Levei cerca de 20 minutos para descobrir isso!
Nick Lockwood
112

Eu já fiz isso dezenas de vezes:

  • Renomeie o projeto clicando e editando o título no seu Navegador de projeto Xcode.
  • Feche o Xcode.
  • Renomeie a pasta de origem.
  • No Finder, abra o .pbxprojarquivo dentro do pacote do projeto (menu de contexto "Mostrar Conteúdo do Pacote") com qualquer editor de texto.
  • Pesquise e substitua qualquer ocorrência do nome da pasta original pelo novo nome da pasta.
  • Salve o arquivo.
  • Abra o projeto Xcode.
djromero
fonte
3
Basta lembrar de fazer isso depois de mudar o nome do projeto
Aram Kocharyan
Eu sigo suas instruções e falho. Acho que o problema está em "Pesquisar e substituir qualquer ocorrência do nome da pasta original pelo novo nome da pasta". Você poderia fornecer instruções mais detalhadas sobre esta etapa? Graças
Philip007
Como pesquisar e substituir depende do editor de texto ou ferramenta escolhida. No meu caso, com o vim: <ESC>:% s / old / new / g <ENTER> Pode falhar se houver algo mais no arquivo do projeto com um nome conflitante.
djromero
Obrigado @madmw, eu descobri. Estou usando o TextEdit. Acho que o truque é substituir o atributo "Contém" por "Palavra completa" durante a pesquisa e a substituição. E eu posto as instruções detalhadas abaixo.
Philip007
Funciona um prazer! Ao renomear a pasta de um destino, por exemplo, uma biblioteca estática, também tive que mexer com meus esquemas e também renomear o cabeçalho do prefixo e o arquivo info plist.
Tim Potter
12

Tarefa: Renomeie "Play" para "Play2" no Xcode e no Finder

Mude isso:

insira a descrição da imagem aqui

Para isso:

insira a descrição da imagem aqui

PASSOS:

// Antes de qualquer coisa, faça o backup do projeto no Finder!

  • Renomear projeto no navegador do projeto Xcode // Clique no nome do projeto e pressione enter
  • Renomear grupo no navegador do Xcode Project // não afetando o nome da pasta no Finder
  • Fechar Xcode
  • Renomear pasta externa (coluna esquerda da imagem) no Finder

// Todas as etapas acima são diretas e sem efeitos colaterais // // Agora vem a parte complicada: renomeie a pasta interna (coluna do meio da imagem) no Finder (a que está no mesmo nível com .xcodeproj)

  • Renomeie a pasta interna no Finder enquanto mantém o Xcode fechado
  • Clique com o botão direito do mouse em .xcodeproj, selecione "Mostrar conteúdo do pacote"
  • Abra o arquivo .pbxproj com o Mac TextEdit
  • Pesquise e substitua todos os "Play" por "Play2". Para garantir que tudo corra bem, clique na seta à esquerda da barra de pesquisa e modifique o atributo de pesquisa. Altere "Contém" para "Palavra completa" e desmarque "Ignorar maiúsculas e minúsculas"
  • Salvar arquivo .pbxproj
  • Abra o projeto Xcode e execute
Philip007
fonte
4

Aqui está como renomear um projeto efetivamente no XCode4 (INCLUINDO A PASTA DE ARQUIVOS):

  1. Feche todos os projetos abertos completamente no XCode para evitar problemas
  2. Copie o projeto em questão para uma nova pasta (IMPORTANTE: MANTENHA UM BACKUP DO SEU PROJETO ANTIGO)
  3. Abra o Projeto
  4. Renomeie o próprio projeto no XCode4 (clique duas vezes no nome do projeto), altere o nome e siga as etapas (sim para tudo)
  5. Vá para o produto, gerencie esquemas e renomeie o esquema (clique duas vezes no nome do esquema)
  6. Feche o seu projeto (verifique se está completamente fechado, caso contrário as próximas etapas não funcionarão)
  7. No Finder, vá para a pasta Projeto e clique com o botão direito do mouse no arquivo .xcodeproj e selecione a opção "Mostrar conteúdo do pacote"
  8. Em seguida, clique com o botão direito do mouse no arquivo .pbxproj e abra-o com o TextEdit
  9. Substitua todas as ocorrências do Nome da Pasta onde os projetos costumavam residir (O ​​nome antigo do projeto para o novo nome do projeto)
  10. Salve o arquivo
  11. Abra o projeto novamente e construa-o!
Mav55
fonte
Você poderia fornecer instruções mais detalhadas na etapa 9?
Philip007
2

Primeiro - não renomeie um projeto Xcode !!!

Se você precisar, pode ser o que está abaixo - eu nunca consegui funcionar, acabei criando um novo projeto e comecei a copiar todos os arquivos existentes. Xcode é tão ahh .... Ele tem muitas coisas improdutivas, como também tente renomear um arquivo de "Nome" para "nome". Bem, se divirta.

Encontrei a resposta ou como solucionar isso: Abra o arquivo pbxproj clicando com o botão direito do mouse em "Mostrar conteúdo do pacote" e lá edite um arquivo project.pbxproj - você precisará renomear uma referência chamada path e outras coisas - basta procurar o nome da pasta adicionou "/".

É isso. Espero que ajude alguém.

Chris G.
fonte
2
Renomeei um projeto ontem e funcionou bem. Eu concordo que o Xcode é "ahh": D
manmal
Existe uma maneira perfeitamente segura e suportada de fazer isso - veja minha resposta.
Nick Lockwood
2

Aqui está outro problema que você deve saber ao substituir valores no seu arquivo * .pbxproj. Se o nome da sua pasta antiga era FooBar, você terá uma entrada no arquivo * .pbxproj semelhante a esta:

path = FooBar

Suponha que o seu novo nome de pasta seja Foo Bar. Ou seja, você está introduzindo um espaço. Então, essa linha deve se tornar

caminho = "Barra de Foo"

Se você apenas encontrar e substituir, o resultado será um arquivo * .pbxproj que o Xcode não pode analisar. Se o novo nome da pasta tiver espaço e o nome antigo não tiver espaço, inclua aspas duplas.

Zampano
fonte
2

Estou resumindo para mim mesmo, depois de examinar várias respostas acima e me tentar. Vamos assumir que o nome atual do projeto é ProjAbc e você deseja renomeá-lo para ProjDef:

  1. Saia do Xcode desse projeto.

  2. No Finder, duplique a pasta ABOVE ProjAbc.xcodeproj para backup.

  3. No Finder, renomeie livremente a pasta ABOVE ProjAbc.xcodeproj, se achar necessário para se adequar ao novo nome do projeto.

  4. No Finder, renomeie a pasta de arquivos de origem paralela ao ProjAbc.xcodeproj de ProjAbc para ProjDef

  5. Abra o Xcode para ProjAbc.xcodeproj (no Project Navigator, todos os arquivos na pasta de fonte virtual ProjAbc estarão em vermelho).

  6. No Xcode, clique na pasta virtual (agora quebrada) no Project Navigator na barra lateral esquerda e renomeie-a para corresponder ao nome no Finder - ProjDef. Isso ainda não corrigirá os arquivos vermelhos dentro da pasta, mas tudo bem.

  7. No Xcode, (ainda selecionando a pasta virtual na barra lateral esquerda) na barra lateral direita, no Inspetor de arquivos, clique no ícone mostrado na captura de tela abaixo para abrir uma caixa de diálogo de arquivo. Na caixa de diálogo do arquivo, selecione a pasta que você renomeou anteriormente (ProjDef). Isso associará novamente a pasta virtual à pasta real no disco e corrigirá automaticamente os links para todos os arquivos internos. A figura mostra onde clicar no ícone Pasta no Inspetor de arquivos

  8. No Xcode, no Project Navigator, clique no nome do projeto ProjAbc e renomeie-o para ProjDef.

    • Você será solicitado: "Renomear itens de conteúdo do projeto?". Clique no botão "Renomear".
    • Você será solicitado: "Deseja que o Xcode tire instantâneos automáticos antes da Renomeação do Projeto e operações similares?". Clique em "Desativar" ou "Ativar". Isso não importa.
  9. No Xcode, agora abra "Build Settings" dentro do alvo do ProjDef (dentro do projeto ProjDef no Project Navigator). Renomeie o nome da pasta e o nome dos arquivos * -Info.plist e * -Prefix.pch para conter o ProjDef em vez do ProjAbc.

  10. No Xcode, no Project Navigator, na pasta de fontes virtuais do ProjDef, em "Supporting Files", também renomeie novamente os arquivos * -Info.plist e * -Prefix.pch para conter o ProjDef em vez do ProjAbc

  11. No menu Xcode, pressione Produto / Esquema / Gerenciar esquemas ... (ou clique em "ProjAbc"> Nome do esquema na barra de esquemas, na parte superior esquerda do Xcode, e pressione "Gerenciar esquemas ...") e, na caixa de diálogo, renomeie Esquema de ProjAbc para ProjDef, depois pressione o botão "OK". Se o nome do projeto for composto por uma única palavra, você poderá executá-lo agora mesmo!

  12. No Xcode, edite a linha de comentário superior no arquivo Supporting Files / * - Prefix.pch e substitua o ProjAbc pelo ProjDef (2 vezes). É claro que corrigir esse comentário é opcional.

  13. Saia do Xcode.

  14. No Finder, aponte para ProjDef.xcodeproj e abra-o no editor de texto. (Abra-o no TextWrangler.app ou clique com o botão direito do mouse e, no menu pop-up, pressione "Mostrar conteúdo do pacote" e edite o arquivo project.pbxproj no TextEdit.app)

  15. No Editor de texto, procure "ProjAbc" (palavra inteira, caixa de correspondência) que deve aparecer uma vez (no parágrafo: / * Iniciar a seção PBXNativeTarget * / na linha: productName = ProjAbc;) e substitua-o por "ProjDef". De fato, o projeto pode ser executado de qualquer maneira !, portanto, esta etapa é opcional.

  16. se o nome do projeto for composto por 2 ou mais palavras separadas, como "ProjDef Geh", você DEVE seguir as próximas etapas: Procure a referência à pasta Finder da pasta de arquivos de origem virtual -

    • Procure a linha: path = ProjDef Geh;
    • Aparecerá uma vez, no parágrafo / * ProjDef Geh * /
    • Substitua-o pela linha: path = "ProjDef Geh";
  17. Salve no editor de texto e saia do Editor de Texto.

  18. É isso aí. Conforme escrito acima, se o nome do projeto for composto por uma única palavra, você poderá executar no final da etapa 11.

mlev
fonte
Você tornou isso mais complicado do que precisa ser. Se você executar a etapa 8 (renomear o projeto) primeiro, antes da etapa 4 (renomear a pasta de origem), ela renomeará seu arquivo Info.plist e Prefix.pch automaticamente, para que você possa pular as etapas 9 e 10.
Nick Lockwood
0

Achei as respostas acima muito úteis, especialmente a resposta de Nick Lockwood.

Acabei de renomear algumas pastas no Xcode 8 e encontrei mais dois problemas: A) "ausente dos erros de cópia de trabalho" B) Falhas nos dados principais .

Como resolver esses dois problemas:

A) " ausente dos erros de cópia de trabalho "

Achei a resposta abaixo muito útil: Swift 3 / Xcode 8 Upgrade - centenas de arquivos DerivedData ausentes nos erros de cópia de trabalho

Basicamente, o Xcode 8 possui um controle rigoroso da fonte, o que pode levar aos erros acima. Voce tem que:

  1. Limpe os dados derivados do Xcode.
  2. Vá para o controle de origem e clique em Atualizar status.
  3. Vá para Source Control e clique em Commit; selecione todos os arquivos na barra lateral esquerda do menu de confirmação ao confirmar (clique com o botão direito do mouse -> Selecionar tudo).
  4. Você provavelmente receberá um erro.
  5. Feche o menu Confirmar.
  6. Atualizar status.
  7. Feche seu projeto fechando o Xcode.
  8. Reabra o seu projeto, atualize o status, confirme novamente.
  9. Desta vez, o commit deve funcionar.
  10. Clique em Projeto -> Limpar.

Suponho que você já tenha ativado o Controle de origem. Se você não tiver, ou se ficar preso ao seguir minhas instruções, basta seguir as instruções mais detalhadas no link fornecido.

B) Falhas nos dados principais

Renomear pastas às vezes estraga os Dados Principais. Existem várias razões possíveis para isso, e abaixo estão algumas correções que posso sugerir:

  1. Nome incorreto do modelo AppDelegate . Este foi o caso na minha situação. Vá para o AppDelegate e encontre let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Verifique se o nome está correto.

    No futuro (vários anos após esta postagem, quando a Apple alterar o Core Data novamente) ou se você estiver usando uma versão mais antiga do Core Data, dê uma olhada cuidadosa no AppDelegate. Provavelmente há algo estranho lá que está mexendo com seus Dados Principais.

  2. Nome de modelo incorreto no xcdatamodeld . Vá para o Finder e abra seu arquivo .xcdatamodeld em um editor de texto.

Verifique o seguinte:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

Mais detalhes aqui: Os arquivos de modelo do Core Data não são carregados ao renomear

  1. Se as duas coisas acima não funcionarem, tente 1) excluir sua entidade e, em seguida, adicione outra entidade que seja idêntica ou 2) exclua seu xcdatamodeld e, em seguida, adicione outro modelo de dados que seja idêntico (e verifique se o nome do novo xcdatamodeld corresponde a o que está no seu AppDelegate e no restante do seu código). Nunca faça isso com um aplicativo ao vivo - ou, se fizer isso, migre adequadamente seus Dados principais enquanto o faz.
Hadoren
fonte
0

Se você tiver uma referência antiga do projeto de origem em seu projeto, ao publicar o projeto (todas as alterações feitas afetam a execução), aqui a solução

  • Divulgar o projeto do projeto de origem
  • Renomeie a pasta de origem do projeto de origem que interrompe o problema de referência.
  • No projeto público, tudo fica vermelho, escolha sua pasta atual do projeto. (a captura de tela é mostrada na resposta de visto verde do stackoverflow)

==================================================== ======================

Ravi Kumar
fonte