无时无刻需要注意的特殊符号的问题

其实文章名应该叫:Xcode打包上传AppStore遇到问题

Archive upload failed with errors:
An XML parsing error has occurred.
The XML file:metadata.xml in /var/folders/......./1234.itmsp is NOT well-formed.


曾经看到过一个段子:
女孩子最好找个程序员做男朋友,因为一般程序员脾气好,主要能认错,因为程序员总是说:“只要告诉我错在哪里,我一定改!”。

其实真的是这样啊(一脸认真)。

前几天在Xcode上打包ipa,准备上传AppStore。
经过漫长的等待,Archive终于完成了,到了这个界面


无时无刻需要注意的特殊符号的问题_第1张图片
Xcode-Organizer.png

然后选择Validate,又是漫长等待... 显示成功啦!
然后就是蓝色的大按钮Upload to App Store,信心满满,验证都通过了,上传不会有问题了吧,就算有,最多也就是网络不行,重新上传。
结果,蹦出来个这玩意


无时无刻需要注意的特殊符号的问题_第2张图片
uploaderror.jpeg

然后我一脸萌比,跑去google这个问题[The XML file:metadata.xml NOT well-formed.]。
然后搜到,有很多小伙伴也遇到过这个问题:

  • Application Loader Error: XML Parsing Error has occurred
  • XCode Submit to App Store button produces XML error
  • An XML parsing error has occurred

总结起来,大概就是Xcode工程中的某些内容(例如Info.plist文件中的配置,或者是项目名)中附带了某些特殊符号,这些符号大包时被写入了一个叫metedata.xml的文件,特殊符号导致这个XML文件的格式不正确。所以出现了上述错误。

之前看到这个错误,我犯了个错。我先跑去检查Info.plist,去检查我的项目名。其实,我应该从报错的这个metedata.xml文件入手。

我看到metedata.xml文件的路径这么复杂,估计是某个很隐秘的临时文件,我觉得我是找不到这个文件的。就这样,各种检查,纠结了一两个小时。最后看到某个帖子中,别人打开了这个文件夹。。。然后我恍然大悟似的,打开了Finder->前往->前往文件夹,输入了/var,然后一级一级的找到了这个metedata.xml文件,用Sublime打开了这个文件。

上面报错说NOT well-formed嘛,然后我就打开了XML格式验证工具,把文件内容全选复制粘贴进去验证,验证结果是

无时无刻需要注意的特殊符号的问题_第3张图片
NoError.png

后来发现不知道是出了什么问题,貌似XML验证器查不出来问题


无时无刻需要注意的特殊符号的问题_第4张图片
xml_validate.png

然后我以为并没有问题啊,怎么办呢。。。然后,继续纠结。然后偶然看了一下Sublime里面显示的内容,居然有一个图标(这里只是一个示例,不是真的metedata.xml文件的内容啊)


无时无刻需要注意的特殊符号的问题_第5张图片
symbol.jpeg

发现metedata.xml文件中,这个符号是在版本号后面的,所以我去检查了版本号,果然有问题。。。重新输入了一遍版本号就ok了。


总结:
特殊符号真的很容易导致问题。通常我们输入的时候,特殊符号基本看起来都是空格(编辑器显示不了,所以显示出来时,只是占了一个空格的宽度,并没有显示内容),比较容易检查,这次遇到的符号,根本显示不出来,连一个空格的宽度都不占。
检查要找重点。其实如果我一开始就去检查metedata.xml文件,文件内容不多,而且这个图标这么明显,直接用眼睛就能看出来的。

下面的字母A和字母B之间附带了3个上面提到的特殊符号,你可能看不见,但是如果你把它复制到Sublime中,你就可以看到这个特殊符号。或者复制到QQ聊天输入栏中,光标定位在A左边,然后按➡️,你就会发现在A和B之间,你要多按几次➡️,才能移到B的右边。

A���B

在编辑文章的时候,上面的AB之间确实有特殊符号,但是发布之后。貌似复制不到了。纠结,所以我用在线工具查一下这个字符的编码吧:

查询结果:


无时无刻需要注意的特殊符号的问题_第6张图片
code.png

你可以这样获得这个字符:


无时无刻需要注意的特殊符号的问题_第7张图片
code2.png

你可能感兴趣的:(无时无刻需要注意的特殊符号的问题)