【问题标题】:The document "XXXX.xib" could not be opened. Could not read archive无法打开文档“XXXX.xib”。无法读取存档
【发布时间】:2013-06-13 21:47:08
【问题描述】:

在 Xcode5 开发者预览版中打开我的项目后,当我尝试在 Xcode 4.5 中打开项目时,一些 .xib 文件出现错误。错误文本是:

 The document "XXXX.xib" could not be opened. Could not read archive.

 Please use a newer version of Xcode. Consider changing the document's Development Target to preserve compatibility.

该项目在 Xcode5 中的开发目标似乎是 iOS 5.0。

查看有错误的 .xib 文件的源代码,很明显 Xcode5 中 .xib 文件的 .xml 结构发生了相当大的变化,需要重新格式化以向后兼容。

有没有办法为特定的 .xib 文件设置开发目标?有谁知道如何解决这个错误?

非常感谢。

【问题讨论】:

  • 这将是一个建议并尽量不要在说...时听起来自鸣得意的好时机...只需查看您的 SCM 日志以了解 Xcode 更改了什么,然后恢复。
  • 如何查看 SCM 日志?抱歉,我认为这是一个不值得打分的问题...我是一名业余开发人员,正在寻求解决这些问题的帮助,我相信很多其他人都经历过。
  • 请检查我对答案的评论。还有 + 1 用于提出一个好问题。:)
  • 有关 iOS 7/Xcode 5 等的任何其他问题...请访问 Apple 开发者论坛的测试版部分。这些测试版受 NDA 保护。 devforums.apple.com/community/ios/ios7_beta
  • 请检查我的回答。您不必使用源代码管理来解决它...

标签: xcode ios7 xcode5


【解决方案1】:

只需在 XCode 5 中打开 Storyboard,进入右侧面板和“文件检查器”选项卡即可:

  1. 编辑您的“界面生成器文档”,如下所示:

  1. 保存并在以前的 XCode 中打开。

【讨论】:

  • 谢谢老兄...但是有没有办法一次性更改所有 .XIB,或者我必须为所有 XIB 单独更改
  • 我相信您需要对每个 XIB 文件执行此操作。这是因为当您第一次在 XCode 5 中保存文件时,文件被解析为其他格式。
【解决方案2】:

首先使用 Xcode5 打开项目。然后

  • 选择 XXX.xib 找到 Interface Builder 文档
  • 在 Xcode 4.6 中打开(如果是 5.0)
  • 关闭项目
  • 用4.6打开

【讨论】:

    【解决方案3】:

    即使您的项目不受源代码控制,也可以在此处找到更好、更简单的解决方案(我的):

    Just installed xcode 5 and have missing storyboards

    希望对您有所帮助。

    【讨论】:

      【解决方案4】:

      当您使用新的 XCode 5 打开 Xcode 4.6 项目时,这是一个当前问题。 使用 Xcode 4.6 正确重用您的 XIB:

      1 使用 XCode 5 打开您的项目

      2 选择要恢复的 Xib

      3 在文件检查器部分的“界面生成器文档”中, 在开发版本的 Document Versioning 中选择 Xcode 4.6

      4 构建并关闭

      5 使用 XCode 4.6 重新打开您的项目

      您的 XIB 中的元素宽度和大小可能会出现一些回归,但已成功恢复。

      干杯,

      【讨论】:

        【解决方案5】:

        很明显,您在新的 xcode 开发人员预览版之前创建了您的项目。然后您尝试使用新的 DP 和繁荣打开您的项目,它会自动更改您的 xib 中的所有内容,以便能够以更高版本显示您的 xib。易于修复。使用您的 xcode 4 ios 6 打开同一个项目,然后右键单击未打开的 xib 的名称并选择源代码控制,然后从那里选择丢弃更改。这应该将 xib 恢复到使用新的 xcode DP 打开它之前的形状。

        如果您需要更多帮助,请告诉我,但这应该可以解决您的问题。

        【讨论】:

        • 不幸的是,我没有使用源代码控制,所以“放弃更改”将它带回了大约 1 年前的版本!但是,我确实有 2 周前的快照,从那时起我应该能够重建更改。如何配置项目以获得更好的源代码控制?有没有办法设置它,让它自动提交,这样你就可以随时退后一步?还是必须手动完成?
        • 您可以创建一个本地git并将其设置为自动刷新。我使用的另一种方法是使用快照。您还可以从 xcode 中的设置调整源代码控制。可能还有其他方法,但这些是我知道的。祝你好运,如果我的回答对你有帮助,请检查它是否正确。
        • 感谢您的建议,我一直在使用快照,但没有正确的源代码控制,但从现在开始我会做更多的事情。感谢您的帮助,也感谢您在一个完全有效的问题上回复愚蠢的 -1 票。
        • 检查我的答案,您不必使用源代码管理来解决这个问题。尽管使用源代码管理始终是一种好习惯。
        • 使用源代码控制将确保项目的安全性和返回点。正如我在之前的 cmets 中所说的,还有其他方法,但我使用源代码控制,因为它为我提供了更多的安全性。正如你提到的,这是一个非常好的做法。
        【解决方案6】:
        1. 首先您必须使用较新版本的 Xcode 打开您的项目。
        2. 右键单击 XXX.xib 文件并选择“显示文件检查器”。
        3. 转到界面生成器文档。
        4. 使用旧版本的 Xcode 更改开发选项。

        【讨论】:

          【解决方案7】:

          曾经我曾经在 XCode 4 中使用 XCode 5 xibs 管理一个项目。我为每个 XCode 版本拆分 xibs,并制作了将 xib 编译为 nib 并将其放置在应用程序中的构建脚本

          #get SDK version
          SDK_VERSION=$(echo $SDKROOT | sed -e 's/.*iPhone\(OS\)*\(Simulator\)*\([0-9]*.[0-9]*\).sdk/\3/')
          
          if [ $SDK_VERSION == '7.0' ]; then
             echo 'Current SDK is 7.0'
          
             ibtool --compile ${TARGET_BUILD_DIR}/${TARGET_NAME}.app/output.nib ${PROJECT_DIR}/ProjectFolder/input.xib.xib 
          
             echo 'Copied nibs to' ${TARGET_BUILD_DIR}/${TARGET_NAME}.app
          else
             echo 'Current SDK is not 7.0 (SDK is' $SDK_VERSION')'
          fi
          

          【讨论】:

            猜你喜欢
            • 2013-09-28
            • 2016-03-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-09-01
            • 2017-05-20
            • 1970-01-01
            • 2013-02-18
            相关资源
            最近更新 更多