【问题标题】:Project without an .xcodeproj directory, how to open?没有 .xcodeproj 目录的项目,如何打开?
【发布时间】:2009-05-12 14:22:20
【问题描述】:

我发现了一些缺少 .xcodeproj 目录层次结构的开源项目,大部分是较旧的。似乎所有其他重要文件都在那里。

奇怪的是,我想知道这些项目是如何通过 Xcode 访问的?我想编译它们,破坏它们,修复它们等等。有没有办法打开这些更多的遗留项目?

这是一个开源 Freecell 项目的内容:

$ find . -type f  
./.DS_Store  
./Card.h  
./Card.m
./Cards/bonded.png
./Cards/large-bonded.png
./Cards/unedited-bonded.png
./CardView.h
./CardView.m
./Dutch.lproj/Credits.html
./Dutch.lproj/Help/Freecell.html
./Dutch.lproj/Help/game.html
./Dutch.lproj/Help/game.jpg
./Dutch.lproj/Help/game.png
./Dutch.lproj/Help/Help idx
./Dutch.lproj/Help/history.html
./Dutch.lproj/Help/history.jpg
./Dutch.lproj/Help/history.png
./Dutch.lproj/Help/links.html
./Dutch.lproj/Help/logo.png
./Dutch.lproj/Help/logos.png
./Dutch.lproj/Help/move-end.jpg
./Dutch.lproj/Help/move-end.png
./Dutch.lproj/Help/move-start.jpg
./Dutch.lproj/Help/move-start.png
./Dutch.lproj/Help/play.html
./Dutch.lproj/Help/preferences.html
./Dutch.lproj/Help/preferences.jpg
./Dutch.lproj/Help/preferences.png
./Dutch.lproj/Help/tips.html
./Dutch.lproj/InfoPlist.strings
./Dutch.lproj/Localizable.strings
./Dutch.lproj/MainMenu.nib/classes.nib
./Dutch.lproj/MainMenu.nib/Freecell.tiff
./Dutch.lproj/MainMenu.nib/info.nib
./Dutch.lproj/MainMenu.nib/objects.nib
./English.lproj/Credits.html
./English.lproj/Help/Freecell.html
./English.lproj/Help/game.html
./English.lproj/Help/game.png
./English.lproj/Help/Help idx
./English.lproj/Help/history.html
./English.lproj/Help/history.png
./English.lproj/Help/links.html
./English.lproj/Help/logo.png
./English.lproj/Help/logos.png
./English.lproj/Help/move-end.png
./English.lproj/Help/move-start.png
./English.lproj/Help/play.html
./English.lproj/Help/preferences.html
./English.lproj/Help/preferences.png
./English.lproj/Help/tips.html
./English.lproj/InfoPlist.strings
./English.lproj/Localizable.strings
./English.lproj/MainMenu.nib/classes.nib
./English.lproj/MainMenu.nib/info.nib
./English.lproj/MainMenu.nib/keyedobjects.nib
./Finnish.lproj/Credits.html
./Finnish.lproj/Help/Freecell.html
./Finnish.lproj/Help/game.html
./Finnish.lproj/Help/game.png
./Finnish.lproj/Help/Help idx
./Finnish.lproj/Help/history.html
./Finnish.lproj/Help/history.png
./Finnish.lproj/Help/links.html
./Finnish.lproj/Help/logo.png
./Finnish.lproj/Help/logos.png
./Finnish.lproj/Help/move-end.png
./Finnish.lproj/Help/move-start.png
./Finnish.lproj/Help/play.html
./Finnish.lproj/Help/preferences.html
./Finnish.lproj/Help/preferences.png
./Finnish.lproj/Help/tips.html
./Finnish.lproj/InfoPlist.strings
./Finnish.lproj/Localizable.strings
./Finnish.lproj/MainMenu.nib/classes.nib
./Finnish.lproj/MainMenu.nib/info.nib
./Finnish.lproj/MainMenu.nib/keyedobjects.nib
./Freecell.icns
./Freecell.pbproj/alisdair.mode1
./Freecell.pbproj/alisdair.pbxuser
./Freecell.pbproj/project.pbxproj
./Freecell_Prefix.h
./French.lproj/.typeAttributes.dict
./French.lproj/Credits.html
./French.lproj/Help/Freecell.html
./French.lproj/Help/game.html
./French.lproj/Help/game.png
./French.lproj/Help/Help idx
./French.lproj/Help/history.html
./French.lproj/Help/history.png
./French.lproj/Help/links.html
./French.lproj/Help/logo.png
./French.lproj/Help/logos.png
./French.lproj/Help/move-end.png
./French.lproj/Help/move-start.png
./French.lproj/Help/play.html
./French.lproj/Help/preferences.html
./French.lproj/Help/preferences.png
./French.lproj/Help/tips.html
./French.lproj/InfoPlist.strings
./French.lproj/Localizable.strings
./French.lproj/MainMenu.nib/classes.nib
./French.lproj/MainMenu.nib/info.nib
./French.lproj/MainMenu.nib/objects.nib
./Game.h
./Game.m
./GameController.h
./GameController.m
./GameView.h
./GameView.m
./History.h
./History.m
./HistoryController.h
./HistoryController.m
./Japanese.lproj/Credits.html
./Japanese.lproj/Credits.rtf
./Japanese.lproj/Help/Freecell.html
./Japanese.lproj/Help/game.html
./Japanese.lproj/Help/game.png
./Japanese.lproj/Help/Help idx
./Japanese.lproj/Help/history.html
./Japanese.lproj/Help/history.png
./Japanese.lproj/Help/links.html
./Japanese.lproj/Help/logo.png
./Japanese.lproj/Help/logos.png
./Japanese.lproj/Help/move-end.png
./Japanese.lproj/Help/move-start.png
./Japanese.lproj/Help/play.html
./Japanese.lproj/Help/preferences.html
./Japanese.lproj/Help/preferences.png
./Japanese.lproj/Help/tips.html
./Japanese.lproj/InfoPlist.strings
./Japanese.lproj/Localizable.strings
./Japanese.lproj/MainMenu.nib/classes.nib
./Japanese.lproj/MainMenu.nib/Freecell.tiff
./Japanese.lproj/MainMenu.nib/info.nib
./Japanese.lproj/MainMenu.nib/objects.nib
./Licence.rtf
./main.m
./PreferencesController.h
./PreferencesController.m
./Result.h
./Result.m
./Spanish.lproj/Credits.html
./Spanish.lproj/Credits.rtf
./Spanish.lproj/Help/Freecell.html
./Spanish.lproj/Help/game.html
./Spanish.lproj/Help/game.png
./Spanish.lproj/Help/Help idx
./Spanish.lproj/Help/history.html
./Spanish.lproj/Help/history.png
./Spanish.lproj/Help/links.html
./Spanish.lproj/Help/logo.png
./Spanish.lproj/Help/logos.png
./Spanish.lproj/Help/move-end.png
./Spanish.lproj/Help/move-start.png
./Spanish.lproj/Help/play.html
./Spanish.lproj/Help/preferences.html
./Spanish.lproj/Help/preferences.png
./Spanish.lproj/Help/tips.html
./Spanish.lproj/InfoPlist.strings
./Spanish.lproj/Localizable.strings
./Spanish.lproj/MainMenu.nib/classes.nib
./Spanish.lproj/MainMenu.nib/Freecell.tiff
./Spanish.lproj/MainMenu.nib/info.nib
./Spanish.lproj/MainMenu.nib/objects.nib
./Table.h
./Table.m
./TableLocation.h
./TableLocation.m
./TableMove.h
./TableMove.m
./vccRand.c
./vccRand.h     

【问题讨论】:

    标签: objective-c cocoa xcode


    【解决方案1】:

    它是使用 Project Builder 创建的,它是 Apple(以及之前的 NeXT)提供的 IDE,最终更名为 Xcode。工程文件是Freecell.pbproj,应该可以很方便的导入Xcode。

    理论上您应该能够使用 File->Open 并指向 .pbproj 包装器;然后 Xcode 可能会要求升级项目,这通常涉及创建一个新的 .xcodeproj 版本。

    【讨论】:

    • 首先将文件夹重命名为 .xcode(不是 .xcodeproj)有很大帮助。成功了。
    • Xcode 3 官方不支持升级 Project Builder 项目。 Xcode 2.5(可从 connect.apple.com 获得,可以与 Xcode 3 一起安装)。
    【解决方案2】:

    我建议另一种方法(它帮助了我,也许它也会帮助某人)。方法如下(假设您已安装 Xcode3.0):
    1) 将 .pbproj 重命名为 .xcode
    2) 使用 muCommander (http://www.mucommander.com/index.php#download) 导航到 .xcode 文件夹。在文件夹中,您将找到 3 个文件。 *.mode1、*.pdxuser、*.pbxproj(其中 * 是某个用户名)。
    3) 现在将 *.mode1 和 *.pbxuser 用户名替换为 yours
    (例如 johndow.mode1 到 myusername.mode1)
    4) 之后将 .mode1 替换为 .mode1v3(例如 myusername.mode1 到 myusername.mode1v3 )
    5) 选择 myusername.pbxproj 并点击 View[F3] 按钮(位于 mnCommander 屏幕的左下角)并找到以下行(最上面的行):
    存档版本 = 1;
    类 = {
    };
    对象版本 = 39;
    对象 = {
    将 39 替换为 44(数量取决于安装的 Xcode 版本;您可以通过创建一个新项目并在 *.pbxproj 中找到相同的行来查找您的项目)。关闭并保存已编辑的文档。
    就这样!现在尝试使用 Xcode 打开项目。

    一些可选步骤。必须在您使用 Xcode 打开和关闭项目后进行(完成上一节后)。
    6) 仍在同一个文档中向下滚动并找到以下行:
    CFBundleShortVersionString
    0.5.0
    CFBundleSignature
    ????
    CFBundleVersion
    0.5.0
    将 0.5.0 替换为 1.0.23 或从 1.0.0 开始的任何其他数字。该数字对应于您的产品版本。
    7) 现在找到以下行:
    OSBundleLibraries

    com.apple.iokit.IOPCIFamily
    1.4
    com.apple.iokit.IOStorageFamily
    1.3
    com.apple.kernel.iokit
    1.1
    将每个 anynumber 替换为系统上安装的版本号。您可以通过在终端中输入“ kextfind -bundle-id com.apple.iokit.IOPCIFamily ”(其中 com.apple...* 是您要查找的密钥)来查找版本并按回车键。
    你会得到这样的东西:
    /System/Library/Extensions/IOPCIFamily.kext
    现在复制您在 muCommander 位置栏中获得的行。选择 version.plist 并点击 查看[F3] 按钮。在以下位置找到号码:
    CFBundleVersion
    2.6
    这个号码就是您一直在寻找的号码。
    8)找到“ MODULE_VERSION = 0.5; ”行(必须有几个实例)。将 0.5 替换为 1.0,其中 0.5 是 0.5.0 的前两位 (1.0.23)
    9) 找到 "compatibilityVersion = "Xcode 2.5"; " 行并将 " 2.5 " 替换为 " 3.0 " (这是 Xcode 版本)
    结束。

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 2018-10-08
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      相关资源
      最近更新 更多