it-roy-ru.com

параметр для xcodebuild для использования последней SDK.

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

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

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

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

К сожалению 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 с помощью некоторого сценария, но мне не нравится эта идея.

43
Maciek Sawicki

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

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

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

60
Doppelganger9

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

8
James J

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

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

5
ThomasW

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

0
Ben Marten