16

在 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 文件设置开发目标?有谁知道如何解决这个错误?

非常感谢。

4

7 回答 7

14

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

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

在此处输入图像描述

  1. 保存并在之前的 XCode 中打开。
于 2013-10-03T17:11:58.730 回答
13

首先用 Xcode5 打开项目。进而

  • 选择 XXX.xib 找到 Interface Builder 文档
  • 在 Xcode 4.6 中打开(如果是 5.0)
  • 关闭项目
  • 用 4.6 打开
于 2013-06-27T06:49:56.303 回答
6

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

刚刚安装了 xcode 5 并且缺少故事板

希望有帮助。

于 2013-06-18T19:51:43.373 回答
5

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

1 用 XCode 5 打开你的项目

2 选择您要恢复的 Xib

3 在 File Inspector 部分,在“Interface Builder Document”中,在 Development's version of Document Versioning 中选择 Xcode 4.6

4 构建并关闭

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

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

干杯,

于 2013-07-18T08:22:38.567 回答
4

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

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

于 2013-06-17T20:42:10.870 回答
3
  1. 首先,您必须使用更新版本的 Xcode 打开您的项目。
  2. 右键单击 XXX.xib 文件并选择“显示文件检查器”。
  3. 转到界面生成器文档。
  4. 使用旧版本的 Xcode 更改开发选项。
于 2013-09-04T04:49:15.490 回答
0

曾经我曾经在 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-10-04T13:14:22.440 回答