XCode 6.3.1在重命名项目时崩溃了。

5
我正在使用Xcode 6.3.1开发一个使用cocos2dx 2.2.6的iOS游戏。我需要更改我的iOS应用程序名称。
过去,我通过在XCode中单击项目后按回车键来完成此操作。它会打开一个对话框,确认您想要在项目中更改名称的位置。
两天前我更新了Xcode,现在当我按回车键更改项目名称时,它会打开对话框,然后突然崩溃。
如果有人能为我找到更改iOS项目应用程序名称的替代方法,我将不胜感激。谢谢

出于好奇,我刚试图在最新的Xcode中使用文件检查器更改新项目的名称,结果Xcode显示正在收集信息,然后就崩溃了!我认为这可能是一个bug。 - Bamsworld
是的,一样。如果你知道哪个版本是正常工作的,你可以在另一台(或虚拟)机器上使用它,我能想到的唯一选择就是手动完成所有工作:你需要重命名一些文件和目录,并修改项目文本文件的内容,如果你有两个版本的项目,只要进行最少的必要更改,任何图形化源代码控制工具都会帮助你检查差异。还可能想提交一个错误报告并在这里留下一个参考。 - A-Live
如果有人能够找出需要进行手动更改的内容以更改应用程序名称,请指导我。 - Nauman Minhas
我需要更改我的iOS应用程序名称。那你为什么要更改项目名称呢?它们彼此没有任何关系!请不要更改项目名称。 - matt
1
根据发布说明,Xcode 6.3.2已经修复了这个问题。 - i_am_jorf
2个回答

11

更新:修复了第四步以适应包含空格的文件名。

我曾使用shell命令多次重命名项目,与从Xcode本身重命名相比,它效果更好。以下是步骤(假设我们要将warnings_test重命名为BestAppEver)(您可能需要使用brew install rename ack安装一些额外的工具):

  1. 查找所有名称包含源字符串的文件:

    $ find . -name 'warnings_test*'
    ./warnings_test
    ./warnings_test.xcodeproj
    ./warnings_test.xcodeproj/xcshareddata/xcschemes/warnings_test.xcscheme
    ./warnings_testTests
    ./warnings_testTests/warnings_testTests.m
    
  2. 重命名这些文件和目录:

  3. $ find . -name 'warnings_test*' -print0 | xargs -0 rename -S 'warnings_test' 'BestAppEver'
    

    您需要运行此命令几次,因为首先将重命名目录,然后在下一次迭代中将重命名文件和目录中的文件。如果所有文件都已重命名(应看到空输出),请检查步骤1。

  4. 在所有文件中查找字符串的所有出现:

    $ ack --literal 'warnings_test'
    

    浏览输出内容以确保所有这些字符串都应该被替换。在大多数情况下,它们应该被替换。

  5. 替换所有出现的字符串:

  6. $ ack --literal --files-with-matches 'warnings_test' --print0 | xargs -0 sed -i '' 's/warnings_test/BestAppEver/g'
    

    运行一次就足够了。验证方式是再次运行步骤3中的命令,你应该看到空输出。

完成了!你所有的目标、方案、文件、评论中的提及、标识符、名称等都已重命名。如果你执行 git add .git status 命令,应该会看到很多 renamed: 条目(这只是另一个检查)。


谢谢,但我只需要更改名称,这很容易。无论如何还是谢谢。 - Nauman Minhas
1
@eugene 第四步,我收到了以下错误提示:"sed: Completely: No such file or directory"。你有什么想法吗? - luca
@luca,感谢您的评论!显然,您正在尝试将包含空格的项目重命名为另一个包含空格的名称(呃!),但无论如何,我已经修复了第4步,所以现在应该可以工作了。 - eugene
@eugene 第二步,使用Cocoapods时,一些文件/目录的名称将以“Pods-”为前缀。这意味着您需要搜索模式“\ * warnings_test \ ”,而不是“warnings_test \ ”。 - Marmoy

9
不要更改项目名称。你应该能够更改而不会崩溃,但不能这样做并不重要。你不需要更改它,所以不要改变项目名称;它与用户看到的任何内容都没有关系。你想要更改的是应用程序的名称,这是完全不同的事情。
  • 应用程序的名称,显示在设备上图标下方的名称是Info.plist中的CFBundleDisplayName设置(Bundle Display Name)。这就是你需要更改的所有内容(你可能需要创建它)。

  • 用户在App Store中看到的应用程序名称又是另一回事;当你提交应用程序时,你需要在iTunes Connect中手动设置。

编辑:苹果刚刚(秘密地)发布了Xcode 6.3.2 GM seed,据说可以修复崩溃问题。

进一步编辑:Xcode 6.3.2最终版(而不是GM种子版本)似乎确实修复了这个崩溃问题。


谢谢,这真的很有帮助。这正是我需要做的。 - Nauman Minhas
我点了赞,但“不要更改项目名称”并不是一个周到的建议。这不仅仅关乎用户所看到的,还涉及Xcode、Macos以及它们的漏洞... - EralpB
@EralpB 不要仅仅为了更改应用程序名称而更改项目名称。那是非常好的建议。在这个崩溃错误被修复之前不要更改项目名称,这也是一个好建议。现在,如果你愚蠢地在项目名称中放逗号,那么这个建议就不适用于你了... - matt
Matt的回答让我省了很多麻烦。请查看Linh Nguyen的回答,了解如何最好地更改显示名称:https://dev59.com/iGIk5IYBdhLWcg3wG6o6 - Qin Zhengquan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接