2016-12-02 2 views
1

Когда я создаю свой проект с Xcode 8, он сохраняет окончательную сборку в ~/Library/Developer/Xcode/DerivedData/MyProject-[add-lots-of-random-chars-here]/Build/Products/Release-iphoneos. Есть ли способ сделать Xcode скопировать пакет приложений по указанному пользователем пути после его создания? например как я могу сделать Xcode скопировать встроенный пакет приложений в /MyBuilds после его создания?Скопируйте сборку в другую директорию после завершения строительства

Я знаю, что я могу изменить путь для хранения полученных данных в настройках моего проекта в Xcode, но это, конечно же, заставит Xcode хранить все данные (включая промежуточные вещи, такие как код объекта и т. Д.) В этом местоположении, хотеть. Я действительно хочу, чтобы Xcode копировал финальный комплект для готового приложения для дистрибутива в указанное пользователем местоположение без каких-либо промежуточных файлов, используемых в процессе сборки.

Как я могу это сделать?

ответ

1

Решение, использующее скрипт в «Build Phases», не работает должным образом, поскольку Xcode не завершил создание приложения при запуске скрипта. Вот решение с помощью сценария, который выполняется после того, как все построения задачи закончены:

  1. Перейти к «Редактировать Схема»
  2. Нажмите на треугольник рядом с «Построить»
  3. Выберите «Пост-действие»
  4. Нажмите кнопку + и выберите «Option New Run Script»
  5. Выберите имя приложения в разделе «Обеспечение параметров сборки из»
  6. Добавьте следующий скрипт:

Сценарий:

PRODUCT="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app" 
cp -R "${PRODUCT}" ~/Desktop 

Edit Schemes

2

Добавить скрипт для сборки вашей фазы скопировать продукт:

Сценарий:

PRODUCT="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app" 
cp -R "${PRODUCT}" ~/Desktop 

Конечно заменить ~/Desktop с целевым каталогом по вашему выбору.

+1

К сожалению, это не работает правильно, когда архивирование продуктов, потому что Xcode все еще делает важные шаги сборки * после * запуска скрипта, например зачистка и кодовое обозначение выполняются * после * запуска скрипта, поэтому набор приложений, скопированный в новое место, не удаляется и правильно кодируется. Любые другие идеи? – Andreas

+0

При архивации вы можете выбрать путь для экспорта ipa. Какова ваша фактическая проблема при архивировании? – shallowThought

Смежные вопросы