Xcode 4.0验证错误CFBundleVersion

时间:2011-10-09 07:30:06

标签: iphone xcode ipad

我正在尝试更新我在Xcode 3.x版本中创建的iPhone / iPad应用程序。

我已经在我的Info.plist中添加了CFBundleVersion和另一个,我已经检查了所有内容,但我仍然收到以下错误。

  

此捆绑包无效。 Info.plist文件缺少必需的密钥:CFBundleVersion(1091)

我一次又一次地收到它并检查了我的Info.plist文件中已经存在的CFBundleVersion。

请帮帮我

由于

以下是Info.plist文件。我已经多次检查了

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"   "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleDocumentTypes</key>
<array/>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>icon.png</string>
<key>CFBundleIconFiles</key>
<array>
    <string>icon-57.png</string>
    <string>icon-72.png</string>
    <string>icon-144.png</string>
</array>
<key>CFBundleIdentifier</key>
<string>com.my-irc</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.3.5</string>
<key>CFBundleSignature</key>
<string>coRC</string>
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>Internet Relay Chat Server</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>irc</string>
            <string>ircs</string>
        </array>
    </dict>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>
<key>CQBuildType</key>
<string>personal</string>
<key>LSMinimumSystemVersion</key>
<string>3.1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>MVChatCoreCTCPVersionReplyInfo</key>
<string>http://colloquy.mobi</string>
<key>UIPrerenderedIcon</key>
<true/>
<key>UIRequiresPersistentWiFi</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UTExportedTypeDeclarations</key>
<array/>
<key>UTImportedTypeDeclarations</key>
<array/>
</dict>
</plist>

4 个答案:

答案 0 :(得分:16)

我遇到了同样的问题。我这样解决了。在XCode 4.2中,单击Target。在摘要部分中,您将看到版本和内部版本号。如果你将它们设置为相同的东西,它就可以了。如果您只设置版本并忽略构建字段,您将收到错误。这解决了我的问题。

答案 1 :(得分:1)

在从3.x过渡到4.0的过程中听起来有些问题需要检查一些事情:

  • 在项目目标构建设置中,确保“Info.plist文件”指向正确的文件。
  • 检查“项目目标摘要”中的“版本”字段是否为正确的值
  • 这些天实际上应该有两个条目(默认情况下):CFBundleVersion和CFBundleShortVersionString虽然我怀疑这是问题
  • 确保在“CFBundleVersion”之前或之后没有空格

否则,你应该可以在这里粘贴你的plist。在Xcode中右键单击plist文件,然后选择Open As&gt;源代码。这将为您提供可以粘贴到您的问题中的raw-xml(编辑您的问题以进行更新)。

答案 2 :(得分:1)

在我的情况下,CFBundleVersion由构建时的subversion工作副本修订号组成。这是通过以下脚本完成的:

Target -> Build Phases -> Run script

在检查构建日志之后,事实证明Xcode使用的子版本二进制文件与我在命令行上使用的版本不同(MacPorts版本)。收到的错误是:

svn: The path '.' appears to be part of a Subversion 1.7 or greater /.../

修改以下行后:

REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`

为:

REV=`/opt/local/bin/svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`

一切都恢复正常。

答案 3 :(得分:1)

我也有这个问题。这是我的解决方案:

  1. 按照路线Here
  2. 行事
  3. 点击产品&gt;清洁
  4. 点击窗口&gt;组织者
    1. 点击档案
    2. 点击验证