Xcode 4 - збірка вихідного каталогу


217

У мене проблеми з налаштуванням / розміщенням вихідних файлів у Xcode4 (бета-версія 5). Їх розміщують десь ~/Library/Developer/ugly_path/.... Я навіть не можу вибрати "показати в пошуку" для своїх продуктів. Це те ж саме для простого проекту C, інструменту Foundation та навіть пачки какао. Налагодження працює чудово.

Не могли б ви вказати мені, де і як налаштувати / побудувати вихідні каталоги? (Я знаю, що це глупо, я кодую в Xcode3 місяці, але не можу це зрозуміти в бета-версії Xcode4).

Дуже дякую.

Відповіді:


342

У меню Xcode зверху натисніть Налаштування, виберіть вкладку місцеположення, перегляньте параметр розташування місця побудови.

У вас є 2 варіанти:

  1. Розміщуйте продукти побудови у розташуванні отриманих даних (рекомендується)
  2. Розміщуйте продукти для побудови у місцях, визначених цілями

Оновлення: на xcode 4.6.2 вам потрібно натиснути розширену кнопку в правій частині під похідним текстовим полем даних. Побудувати місцеположення виберіть спадщину.


27
Ця відповідь пояснює , чому ця зміна була зроблена: stackoverflow.com/questions/5331270 / ...
toofah

3
Гордий учасник, що це означає, що їх немає в Xcode 5? Вони знаходяться в налаштуваннях -> Місцеположення -> Отримані дані -> Розширені.
Річард Венебл

Гаразд, тому моя збірка переходить у .../XCode/DerivedData/папку, досить проста. За винятком того, що вкладені папки AppName-asdflkjqwergoobledygook. Оскільки я будую за сценарієм, я хотів би фактично знайти збірку (тому я можу її упакувати та надіслати через TestFlight :) Як я можу визначити, який із багатьох MyAppName-xxxx-s є правильним? Дякую!
Олі

@Olie Ви також можете змінити розташування отриманих даних на шлях, який ви вибрали
Джерард

@Gerard: Я міг би, але це не те, що я хочу робити. Я перевіряю джерела з репо, потім будую за допомогою командного рядка, і хочу знати, куди пішла збірка. Недоцільно мій сценарій збирання будь-яким способом модифікувати проект (скажімо, змінивши налаштування проекту.)
Olie,

140

Якщо ви будуєте з командного рядка, ви можете встановити каталог виводу таким чином:

xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \
           -scheme 'SCHEME_NAME' \
           -configuration 'Release' \
           -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY'

Щоб мої скрипти працювали, мені потрібно було видалити окремі лапки та написати просто CONFIGURATION_BUILD_DIR = / Користувачі / ...
Станіслав Панькевич

@occulus, ви абсолютно праві, оскільки це не зможе створити тестову ціль після побудови проекту, я думаю, якщо ви просто будуєте це БУДЬ добре, але краще використовуйте абсолютні шляхи!
Мостафа Берг

У випадку, якщо хтось інший намагається вирішити подібну проблему, я переконав XCode 6.x розмістити зв'язаний двійковий файл саме там , де це було потрібно, використовуючи цю комбінацію:/Users/moi/src/mozbuilds/xul3604/$(CONFIGURATION)/dist/bin
J Evans,

29

У Xcode 5: Xcode меню> Налаштування ... пункт> Місце вкладка> Місце подвкладка> Додатково ... кнопка> Користувальницькі опції.

Потім виберіть, наприклад, відносно робочої області .


8
Нехай ви доживете до ста років, сильний і здоровий пане. Дякую !
WhozCraig

13

Якщо у вас встановлено параметр "Місце розташування збірки Xcode 4" на "Розмістити продукти побудови у місці похідних даних (рекомендується), воно повинно розташовуватися у ~ / Бібліотека / Розробник / Xcode / DerivedData. У цьому каталозі ваш проект буде міститись як каталог, До назви проекту додається купа згенерованих літер, тому уважно подивіться.


10

Зберігайте отримані дані, але використовуйте DSTROOT для визначення місця призначення.

Використовуйте DEPLOYMENT_LOCATION для примусового розгортання.

Використовуйте недокументований DWARF_DSYM_FOLDER_PATH для копіювання dSYM також.

Це дозволяє вам використовувати отримані дані з xcodebuild і не потрібно робити дурних речей, щоб знайти додаток.

xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build

8

Ви завжди можете знайти каталог збірки, заглянувши в переглядач журналу збирання та скопіювавши шлях до нього у вікно терміналу.

Я використовую це для аналізу своїх пакетів iOS .app перед їх встановленням, щоб переконатися, що файли не входять.


Так зручне Apple. Ні!
zaph

1
І де я можу знайти цей журнал збірки ?? Пошук "журналу побудови" у довідці Xcode повертає 0 результатів.
devios1

1
Нм, знайшли "Log Navigator", який схожий на мовленнєвий міхур.
devios1

4

Для всіх, хто хоче знайти каталог збирання зі скрипту, але не хоче його змінювати, виконайте наступне, щоб отримати список усіх параметрів збірки, які вказують на папку в DerivedData:

xcodebuild -showBuildSettings | grep DerivedData

Якщо ви запускаєте власні цілі та схеми, будь-ласка, розмістіть їх також:

xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData

Подивіться на вихід, щоб знайти потрібний вихід, а потім:

xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//'

Остання частина обрізає рядок під знаком рівності, а потім обрізає пробіл на початку.


2

Якщо ви використовуєте нові робочі простори Xcode4, ви можете змінити розташування отриманих даних у розділі Файл -> Налаштування робочої області ...


1

Ви можете налаштувати вихідний каталог за допомогою CONFIGURATION_BUILD_DIR змінної середовища.

Джерело: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/0-Introduction/introduction.html#//apple_ref/doc/uid/TP40003931-CH1-SW1


ні, це не пов’язано з похідним місцеположенням / спадщиною (на кожну ціль) поведінкою місця розташування
Gregory Pakosz

Так. Це працює в будь-якому випадку. З документації: "Шлях до каталогу. Ідентифікує каталог, під яким розміщуються всі файли, пов’язані зі збіркою для активної конфігурації збірки."
Хіт Межі

ніпе. не з xcode4, це залежить від Xcode > Preferences > Locations > Derived dataналаштування, як пояснено у найбільш голосовій відповіді. + документ, на який ви посилаєтесь, востаннє оновлено у 2010 році
Григорій Пакош

Я фактично використовував цей параметр, щоб налаштувати каталог збірки з xcode4 від xcodebuild. Спробувати.
Гейтс Межі

1
добре, я спробував з Xcode 4.3.1 (від IDE), і не змінюючи глобальних параметрів, продукти будуються десь у, ~/Library/Developer/Xcode/DerivedData/а не всередині каталогу, який я вказую CONFIGURATION_BUILD_DIR. Якщо я хочу CONFIGURATION_BUILD_DIRбути шанованим, я повинен переключити налаштування даних, отриманих Xcode, на "Спадщина"
Грегорі Пакош

0

Ще одна річ, яку потрібно перевірити, перш ніж почати грати з налаштуваннями Xcode, це:

Виберіть ціль і перейдіть до Налаштування збірки> Упаковка> Розширення для обгортки

Значення повинно бути: app

Якщо двічі не клацніть по ньому, введіть "додаток" без жодних знаків.


-1

Це так дратувало. Відкрийте проект, натисніть на Ціль, відкрийте вкладку Фази збірки. Перевірте свої ресурси "Копіювати пакет" на наявність червоних елементів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.