项目没有.xcodeproj目录,怎么打开?

时间:2009-05-12 14:22:21

标签: objective-c cocoa xcode

我发现一些缺少.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     

2 个答案:

答案 0 :(得分:10)

这是使用Project Builder创建的,Apple是Apple(以及之前的NeXT)提供的IDE,最终更名为Xcode。项目文件是Freecell.pbproj,你应该能够毫不费力地将它导入Xcode。

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

答案 1 :(得分:1)

我建议另一种方法(它帮助了我,也许它也可以帮助别人)。方法如下(假设您已安装Xcode3.0):
1)将.pbproj重命名为.xcode
2)使用muCommander(http://www.mucommander.com/index.php#download)导航到.xcode文件夹。在文件夹中,您将找到3个文件。 * .mode1,* .pdxuser,* .pbxproj(其中*是某个用户名) 3)现在替换为您提供的* .mode1和* .pbxuser用户名 (例如johndow.mode1到myusername.mode1)
4)之后用.mode1v3替换.mode1(例如myusername.mode1到myusername.mode1v3)
5)选择myusername.pbxproj并点击View [F3]按钮(位于mnCommander屏幕的左下角)并找到这条线(最顶部的线):
   archiveVersion = 1;
    classes = {
    };
    objectVersion = 39;
    objects = {
将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版本)
结束。