Проект без каталога .xcodeproj, как открыть? - PullRequest
4 голосов
/ 12 мая 2009

Я нахожу несколько проектов с открытым исходным кодом, в основном старых, в которых отсутствует иерархия каталогов .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 ]

10 голосов
/ 12 мая 2009

Это было создано с использованием Project Builder, интегрированной среды разработки, поставляемой Apple (и NeXT до них), которая в конечном итоге была переименована в Xcode. Файл проекта Freecell.pbproj, и вы должны иметь возможность импортировать его в Xcode без особых проблем.

Теоретически вы должны использовать File-> Open и указывать на обертку .pbproj; Xcode тогда, вероятно, попросит обновить проект, что обычно включает создание новой версии .xcodeproj.

1 голос
/ 14 августа 2009

Я предлагаю другой метод (он мне помог, может, кому-то тоже поможет). Метод следующий (при условии, что у вас установлен 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) после этого замените .mode1 на .mode1v3 (например, myusername.mode1 на myusername.mode1v3)
5) выберите myusername.pbxproj и нажмите кнопку View [F3] (находится в нижнем левом углу экрана mnCommander) и найдите следующие строки (самые верхние строки):
archiveVersion = 1;
классы = {
};
objectVersion = 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
Замените каждый номер на номер версии, установленный в вашей системе. Вы можете узнать версию, набрав в терминале "kextfind -bundle-id com.apple.iokit.IOPCIFamily" (где com.apple. . . * - ключ, который вы ищете) в терминале и Нажав Enter.
Вы получите что-то вроде этого:
/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)
Конец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...