Xcode项目命名时慎用空格换行和特殊字符

Xcode项目命名时慎用空格换行和特殊字符

QQ群里一网友,开发一iOS APP,提交审核时老提示下面错误。

Archive validation failed due to the issues listed below.
iTunes Store operation failed.
unable
to process application at this time due to the folloewing error: This
bundle is invalid. The IPA format requires a top-level directory named
Payload, contains only a .app bundle and optional plugins in plugins
directory.

当时帮他检查了bundle id,是正确的。然后发现项目名称是中文的,建议重建一英文项目名,重新测试,不行就重新安装Xcode。
当时也没多想,觉得他应该就能自己搞定了。
结果过了半个多月,他又在QQ群里询问这个问题,看来还是没解决。
他自己的说法是他已经在搜索引擎上进行了充分搜索,没找到答案。
根据错误提示,怀疑是他的archive包存在问题。
让他把archive包发给我。在list列表模式下查看,显示二进制执行文件没有名字。拷贝出来用“ls -al “查看,显示文件名结尾有一“?”。最后发现其实文件名里面含有一换行符。
看来问题就处在换行符号上。

指导他修改${product_name}变量,对方操作后说仍然不行。因为不在现场,不知道他操作的是否正确。
不得已,让他在备份后直接修改project.pbxproj文件,删除改文件中${product_name}变量值的“\n”。project.pbxproj文件通过右键name.xcodeproj,在弹出菜单中选择”查看包内容”可以找到。
替换后,终于可以顺利提交了。

至于换行符是怎么被不小心引入的,这位朋友也说不清楚。

虽然现在软件开发有了长足的发展,但是还是有很多国外软件没有充分考虑东亚文字的兼容性。所以在项目命名、变量命名、目录选择上尽量选择只包含英文字母和数字的名字。