Я уже некоторое время пытаюсь использовать Cocos2d в качестве статической библиотеки вместо шаблона.Причина в том, что это облегчает разработку моего проекта по модульному принципу.Кроме того, это облегчает переключение между версиями cocos2d и так далее.После поиска на форумах cocos2d-x я нашел эту ссылку: http://cfc.kizzx2.com/index.php/cocos2d-x-with-xcode-4-from-scratch-without-template/
Я нашел рамки, которые мне нужно было добавить, и это решило все проблемы со связыванием.
У меня до сих пор нетподал заявку в магазин, так что если кто-то с большим опытом мог бы просмотреть его, чтобы проверить, есть ли какие-либо подводные камни / ошибки, было бы здорово.Английский для меня второй язык, поэтому, пожалуйста, не возражайте.Это было сделано с помощью cocos2d1.1beta2 и Xcode 4.3.1
- Создание рабочего пространства Xcode
- Перейдите в папку, содержащую файл cocos2d xcodeproj (iOS / Mac).Здесь вы разархивировали cocos2d после его загрузки.
- Перетащите файл xcodeproj в окно навигатора Xcode. (Крайнее левое окно).
- Нажмите на крошечный треугольник рядом с проектом cocos2dфайл, поэтому все его содержимое исчезнет.
- Добавьте новый проект в рабочую область, щелкнув правой кнопкой мыши в навигаторе и «Новый проект».Убедитесь, что проект добавлен как одноуровневый элемент в проект cocos2d, а не как дочерний элемент.Я выбрал приложение для одного окна (iOS)
- В этом новом проекте перейдите к настройкам сборки и измените «Всегда искать пути пользователя» на «Да»
Добавить местоположениеваша папка cocos2d в «пути поиска заголовка пользователя».Если вам нравится, вы можете вместо этого добавить папку cocos2d в ваш список исходных деревьев в XCode, и вместо этого просто введите здесь имя переменной.Например: $ {COCOS2D_SRC}.Это удобно, если в дальнейшем вы захотите изменить структуру папок среды сборки.
Нажмите на цель и выберите вкладку фаз сборки.Вы хотите связать следующие двоичные файлы с вашей библиотекой.Убедитесь, что они там.libcocos2d.a libz.dylib libxml2.dylib OpenGLES.framework QuartzCore.framework UIKit.framework Foundation.framework CoreGraphics.framework
Если libcocos2d.a «красный», то не беспокойтесьоб этом.Он по-прежнему правильно компилируется / связывается.
- В настройках сборки измените «Только для активных архитектур» на YES.
В противном случае вы можете получить сообщение об ошибке игнорирования файла /Users/Pteriedaktyl/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/libcocos2d.a, файл был создан для архива, который не являетсясвязанная архитектура (armv6)
- В вашем файле info.plist обязательно удалите запись внутри «требуемых возможностей устройства», в которой указано armv7.В противном случае ваш код будет работать только на новых устройствах.
Теперь все готово!Вы должны иметь доступ к api cocos2d из одноуровневого проекта.Если вы когда-нибудь захотите изменить свою версию cocos2d, вам просто нужно изменить проект cocos2d, который находится в рабочей области, обновить путь к исходному дереву (при необходимости) и ссылку на новый libCocos2d.a
Testing: Просто чтобы попробовать, я изменил делегат приложения и просмотр кода контроллера, чтобы он соответствовал коду из одного из моих старых проектов hello world.
Пожалуйста, попробуйте это и добавьте в ветку, если у вас возникнут проблемы,