Вопрос

Есть ли простой способ получить три20 v1.1 для работы под Xcode 4? Я следовал шагам на http://three20.info/article/2011-03-10-xcode4-support Но это, кажется, для мастера. Я использую v1.1, так как использую Ttlauncher.

Проект строится нормально с обычной сборкой и идеально подходит на iPhone. Но когда я хочу создать архив (для IPA для распространения), я получаю 18 ошибок и 8 предупреждений.

Первый:

../scripts/Protect.command: line 23: cd: /Users/XXX/Library/Developer/Xcode/DerivedData/iDoms-cmyivarwxpbvqdfnyclqdrikrtmw/ArchiveIntermediates/iDoms/BuildProductsPath/Release-iphoneos/../three20/Three20UICommon: No such file or directory

Большинство других - «нет такого файла или каталога», например:#import "Three20Core/TTGlobalCoreLocale.h"

или «не выделил (первое использование функции)», которая происходит от «нет такой проблемы с файлом или каталогами».

В моих путях поиска заголовка у меня есть:

$(BUILT_PRODUCTS_DIR)/../three20
$(BUILT_PRODUCTS_DIR)/../../three20
../../three20/Build/Products/three20
/usr/include/libxml2

Любая помощь будет очень оценена!

Это было полезно?

Решение

Вы должны проверить Этот вопрос Stackoverflow.

Я воспроизвел принятый ответ ниже:

Таким образом, похоже, что самый простой способ получить старые проекты XCode 3.2 для работы с XCode 4 - это сделать следующее:

Зайдите в предпочтения Xcode 4 (cmd+,). Выберите вкладку «Локации». Там, где он написал «локации построения», выберите выпадение и выберите продукты «Полностью построить» в местах, указанных целями ». Я напишу статью Three20.info, в которой рассказывается об этом.

Другие советы

Просто чтобы добавить к ответу Колина: вы можете использовать функцию зависимых проектов Xcode для использования Three20, хотя на веб -сайте Three20 говорится, что он не «официально поддерживается»:

  1. В своем рабочем пространстве щелкните правой кнопкой мыши на пустое пространство в вашем навигаторе проекта. Выберите «Добавить файлы в« Мое рабочее пространство »и выберите проект Three20 (three20/src/Three20/Three20.xcodeproj) Это Только Проект вам нужно добавить: нет необходимости вручную добавлять три220 подпроектов.

  2. Выберите свой проект в навигаторе, перейдите на фазы построения, откройте «Бинарник ссылки с библиотеками», нажмите на «+» в левом нижнем углу и добавьте библиотеки Three20: libThree20.a, libThree20Core.a, libThree20Network.a, libThree20Style.a, libThree20UI.a, libThree20UICommon.a а также libThree20Navigator.a. Анкет Это приведет к созданию XCODE построить три20 при создании своего проекта.

  3. Добавлять ${BUILD_DIR}/three20 В соответствии с вами в соответствии с ответом Колина: перейдите к настройкам сборки, дважды щелкните «Пути поиска заголовка» и добавьте ${BUILD_DIR}/three20 (это покажет как build/three20 Когда вы закрываете диалог).

  4. Добавлять three20/src/Three20.bundle к вашим ресурсам.

  5. Вероятно, это также хорошая идея добавить флаги линкера -Objc и -all_load, если вы еще этого не сделали (тот же диалог, настройка «Другие флаги линкера»).

Шаги выше достаточно хороши для составления кода. Чтобы сделать «архив» и работу, вам нужно:

  1. Добавлять $(BUILT_PRODUCTS_DIR)/../three20 а также $(BUILT_PRODUCTS_DIR)/../../three20 к настройке путей поиска заголовка. Если вы этого не сделаете, вы получите ошибки компиляции, которые три20 заголовков не могут быть найдены.

  2. За все Three20 Projects (так что не только проект верхнего уровня), перейдите на настройки сборки и установите «Skip Install» на да. Если вы этого не сделаете, проект будет построен, но вы не сможете создать IPA.

Убедитесь, что название вашего продукта (выберите свою цель, перейдите в настройки сборки, а затем настройка «Название продукта») не содержит пробелов, в противном случае архивирование не будет работать.

Наконец, если вы получаете ошибки, такие как ld: library not found for -lThree20 И вы используете пользовательскую конфигурацию сборки (например, ADHOC), обязательно добавьте ту же конфигурацию сборки в каждый из трех 20 -го проекта (просто дублируйте конфигурацию релиза).

Добавьте эти два пути в пути поиска заголовка в настройках сборки для вашей цели:

"$ (Build_dir)/three20" "$ (build_dir) /../ три20"

Первая запись необходима для регулярных сборок, а вторая запись необходима для архивов.

Это так просто.


Кстати, чтобы создать файл в вашем домашнем каталоге со списком всех переменных среды Xcode для среды вашей цели, добавьте следующую фазу сборки скрипта в вашу цель с содержимым: Env> ~/xcode-environment.sh

Обратите внимание, что в этом случае, если ваш проект не проходит через фазу компиляции процесса сборки, а ваш сценарий прогона появится позже, сценарий не будет выполнен, поэтому сначала поместите его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top