xcodebuild: симулятор или устройство?

<p>как мне указать <code>xcodebuild</code> (инструмент командной строки), хочу ли я создать симулятор или устройство?</p>

<p>сборка xcode из командной строки выглядит так:</p><pre><code>xcodebuild -configuration ${build_type} -target ${target\_name} -arch ${cpu_architecture} -sdk ${simulator\_or\_ios\_sdk} </code></pre><p><code>build\_type</code> - это что-то вроде "release" или "debug" (это значения по умолчанию, возможно, вы добавили других в проект)</p><p><code>target\_name</code> - это имя цели, которую вы строите (по умолчанию то же имя, что и ваш проект)</p><p><code>cpu\_architecture</code> - это процессор, для которого вы строите, один из:</p><p><strong>i386</strong>, <strong>armv6</strong>, <strong>armv7</strong></p><p>используйте i386 для сборок симуляторов и используйте armv6 или armv7 для сборок устройств - обратите внимание, что некоторые другие устройства не могут запускать код armv7, поэтому обычно при сборке библиотек рекомендуется собирать все эти архитектуры и затем склеивать их вместе, используя <code>lipo</code>.</p><p><code>simulator\_or\_ios\_sdk</code> - это то, что вы ищете, это <code>iphoneos</code> или <code>iphonesimulator</code>. эти значения используют последнюю версию sdk, которую поддерживает установленный xcode. вы можете получить список поддерживаемых sdk с помощью:</p><pre><code>xcodebuild -showsdks </code></pre><p>который возвращает список как:</p><pre><code>mac os x sdks: current mac os -sdk mac os x 10.6 -sdk macosx10.6 ios sdks: ios 4.2 -sdk iphoneos4.2 ios simulator sdks: simulator - ios 3.2 -sdk iphonesimulator3.2 simulator - ios 4.0 -sdk iphonesimulator4.0 simulator - ios 4.1 -sdk iphonesimulator4.1 simulator - ios 4.2 -sdk iphonesimulator4.2 </code></pre><p><code>xcodebuild</code> имеет больше флагов, чем это, но это те, которые вы обычно используете после использования xcode для настройки свойств сборки. вам не нужно использовать их все, но, вероятно, будет хорошей идеей уяснить, что вы создаете, иначе я считаю, что ваши последние настройки используются.</p>

<p>я считаю флаг <code>-xcconfig</code> весьма полезным. эта опция позволяет вам указать путь к xcconfig (файлу настроек сборки). внутри xcconfig вы можете <code>#include</code> другие файлы xcconfig.</p>