Параметр для xcodebuild для использования последнего sdk.

Я использую задачу ant exec для выполнения xcodebuild для сборки некоторых проектов iOS hudson. Я хотел бы иметь возможность разбивать script таким образом, чтобы не указывать версию sdk, потому что после обновления sdk на hudson slave или моих проектов iOS все мои проекты не выполняются....

В xcode есть хорошая опция, так как sdk 4.2 в настройке цели Base SDK - Latest iOS

и я не должен предоставлять параметр -sdk в команде xcodebuild, но затем (я думаю), он был взят из проекта xcode, и это плохо, потому что тогда кто-то может случайно сменить цель с симулятора на устройство во время фиксации.

Мне нужно что-то постоянное. Я предпочел бы не использовать переменную env, потому что я хотел бы иметь возможность запускать эту задачу ant также на dev-машинах и не хотел бы вспоминать об установке ее на всех машинах.

К сожалению xcodebuild -showsdks дает только:

Mac OS X SDKs:
    Mac OS X 10.4                   -sdk macosx10.4
    Mac OS X 10.5                   -sdk macosx10.5
    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

Мне нужно что-то вроде -sdk iphoneosLatest. Моя единственная идея - вывести вывод xcodebuild -showsdks с некоторым script, но мне не нравится эта идея.

Ответ 1

Вы можете использовать xcodebuild с последним SDK, используя:

  • xcodebuild -sdk iphoneos, для устройства
  • xcodebuild -sdk iphonesimulator, для симулятора.

Мы используем эти опции для наших автоматизированных сборок и работаем с XCode 3.2.5

Ответ 2

Я считаю, что вы можете использовать xcodebuild -sdk iphoneos (номер версии не для этого).

Ответ 3

Я попробовал решение @jenningj, и это сработало для меня. Maciek Sawicki, если это сработает для вас, вы должны отметить его как правильное решение.

Кроме того, xcodebuild -showsdk должен быть xcodebuild -showsdks.

Ответ 4

Вы можете попробовать: xcodebuild -showsdks | grep -Eo "iphoneos([0-9]{1,}\.)+[0-9]{1,}"