iTunes Connect:您的应用“xxx”有一个或多个问题 - >无效的捆绑

时间:2015-10-04 13:08:01

标签: ios itunesconnect

我上传了我的应用程序的新版本没有任何问题。验证成功。上传大约2分钟后,我收到了一封包含以下内容的邮件:

  

亲爱的开发人员,

     

我们发现您最近交付的“-AppName-”存在一个或多个问题。要处理您的交付,必须纠正以下问题:

     

无效的包 - 无法读取属性列表:无法识别的选项:-AppName-.app/Info.plist plutil:[command_option] [other_options] file ...文件' - '表示stdin命令选项是(-lint是默认情况下):-help显示此消息并退出-lint检查属性列表文件中的语法错误-convert fmt重写属性列表文件格式为fmt是以下之一:xml1 binary1 json -insert keypath -type value在属性中插入值写出之前的列表keypath是一个键值编码键路径,有一个扩展名:应用于数组的数字路径组件将作用于数组中该索引处的对象,或者如果数字路径组件是数组路径组件则将其插入到数组中键路径类型中的最后一个是:bool,integer,float,date,string,data,xml,json -bool:YES如果传递“YES”或“true”,否则NO -integer:任何有效的64位integer -float:任何有效的64位float -string:UTF8编码的字符串-date:XML属性列表格式的日期,如果outp不支持发出JSON -data:一个base-64编码的字符串-xml:一个XML属性列表,用于插入复合值-json:一个JSON片段,用于插入复合值值YES,NO,数字,日期或基数-64编码blob of data -replace keypath -type值与-insert相同,但它将覆盖现有值-remove keypath在写出之前从属性列表中删除'keypath'处的值-extract keypath fmt输出值at at属性列表中的'keypath'作为'fmt'fmt类型的新plist是以下方式之一:xml1 binary1 json -p以人类可读方式打印属性列表(不适用于机器解析!这个'格式'不稳定)有一些额外的可选参数适用于-convert,-insert,-remove,-replace和-extract谓词:-s在成功时保持沉默-o path指定备用文件路径名结果; -o选项与-convert一起使用,仅对一个文件参数有用(最后一个文件覆盖);路径' - '表示stdout -e扩展名为转换后的文件指定备用扩展名-r如果编写JSON,以人类可读的形式输出 - 指定所有其他参数都是文件名......

     

一旦纠正了这些问题,您就可以重新更新已更正的二进制文件。

     

此致

     

App Store团队

这只是一次更新上传。在过去,它可以与Xcode的早期版本一起使用而不会出现问题。我的Xcode的实际版本是7.0(7A220)。在测试设备上,该应用程序也运行没有任何问题。

我希望以这种方式找到解决方案!谢谢你的时间,

亲切的问候!

1 个答案:

答案 0 :(得分:0)

在我看来,您感到困惑plutil Apple必须在您的应用上运行,作为验证过程的一部分。

这是因为应用程序包中包含-plutil认为是命令行选项的字符(因此显示的是帮助文本)。

我可以在我的机器上重现这一点(注意:我必须将--mkdirtouch一起使用,以避免混淆它们:

$ cd ~/tmp
$ mkdir -- -AppName-.app
$ touch -- -AppName-.app/Info.plist
$ plutil -lint -AppName-.app/Info.plist
unrecognized option: -AppName-.app/Info.plist
plutil: [command_option] [other_options] file...
The file '-' means stdin
Command options are (-lint is the default):
 -help                         show this message and exit
 -lint                         check the property list files for syntax errors
 -convert fmt                  rewrite property list files in format
                               fmt is one of: xml1 binary1 json
 -insert keypath -type value   insert a value into the property list before writing it out
                               keypath is a key-value coding key path, with one extension:
                               a numerical path component applied to an array will act on the object at that index in the array
                               or insert it into the array if the numerical path component is the last one in the key path
                               type is one of: bool, integer, float, date, string, data, xml, json
                               -bool: YES if passed "YES" or "true", otherwise NO
                               -integer: any valid 64 bit integer
                               -float: any valid 64 bit float
                               -string: UTF8 encoded string
                               -date: a date in XML property list format, not supported if outputting JSON
                               -data: a base-64 encoded string
                               -xml: an XML property list, useful for inserting compound values
                               -json: a JSON fragment, useful for inserting compound values
                               value YES, NO, a number, a date, or a base-64 encoded blob of data
 -replace keypath -type value  same as -insert, but it will overwrite an existing value
 -remove keypath               removes the value at 'keypath' from the property list before writing it out
 -extract keypath fmt          outputs the value at 'keypath' in the property list as a new plist of type 'fmt'
                               fmt is one of: xml1 binary1 json
 -p                            print property list in a human-readable fashion
                               (not for machine parsing! this 'format' is not stable)
There are some additional optional arguments that apply to the -convert, -insert, -remove, -replace, and -extract verbs:
 -s                            be silent on success
 -o path                       specify alternate file path name for result;
                               the -o option is used with -convert, and is only
                               useful with one file argument (last file overwrites);
                               the path '-' means stdout
 -e extension                  specify alternate extension for converted files
 -r                            if writing JSON, output in human-readable form
 --                            specifies that all further arguments are file names

解决方案:为应用包提供更好的名称(不包含-字符的名称,并更好地描述应用)。