2015-02-05 2 views
2

Как я могу получить версию базового SDK в коде? В настоящее время я создаю iOS в XCode 6 и использую базовый SDK 8.1. Я хотел бы знать, есть ли какие-либо определения со значением SDK, чтобы иметь возможность протестировать его и разрешить создание с использованием разных базовых SDK.XCode base SDK версия в коде

+0

Исправьте меня, если я ошибаюсь, но вы должны использовать последний SDK для отправки в Магазин. Почему вы изменили базовый SDK? Вы хотите иметь другую цель развертывания? – Teddy

+0

Нет, я не говорю о другой цели развертывания. Меня попросили сделать проект так, чтобы он мог быть построен в XCode 5 и 6, без необходимости устанавливать новые базовые SDK. Вы знаете способ получить эту ценность? – Scorpio

+0

AFAK вам нужно установить xcode 5 вместе с xcode 6 в этом случае и переключиться между ними с помощью xcode-select. Однако вы можете столкнуться с некоторыми проблемами. Я никогда не пробовал себя. – Teddy

ответ

1

Это можно сделать с помощью __IPHONE_OS_VERSION_MAX_ALLOWED (что является той же версией, что и базовая версия SDK). Это можно сравнить с __IPHONE_8_0, где 8_0 - релиз iOS.

Например, на данном этапе вы можете использовать baseSDK 8.0 или 8.1.

1

Вы можете узнать версию текущей фреймворка Foundation, с которой работает код, путем проверки значения NSFoundationVersionNumber.

Если вы отметили NSObjCRuntime.h, вы найдете различные номера версий, перечисленные там.

Как и в отношении создания различных версий SDK; Apple перестает загружать App Store, если вы не создаете новый SDK после того, как дата прекращения действия вступила в силу, то есть новые приложения, представленные сейчас, должны быть созданы против iOS 8 SDK.

Что вы можете сделать, есть нижняя Цель развертывания iOS (это можно найти в настройках вашего проекта). Это позволит вашему приложению работать на старых версиях iOS, но он будет по-прежнему построен против последнего SDK. Однако учтите, что вы несете ответственность за то, чтобы не использовать какие-либо новые API-интерфейсы без предварительного обеспечения поддержки текущей среды, например. UITextField's selectable Недвижимость. Если вы назовете это во время работы на iOS 6, ваше приложение выйдет из строя.

+0

Я не мог найти какое-либо официальное правило, которое запрещает утверждать приложение, если оно не создано против последнего базового SDK. Не могли бы вы предоставить ссылку на это? – Scorpio

+0

Это довольно широко сообщается в кругах Apple: https://developer.apple.com/news/?id=01192015a – MultiColourPixel

+0

Спасибо за это. Я пока еще не в кругу Apple. Я видел этот пост, но не смог его правильно понять :(Я нашел способ добавить то, что хотел, использовать __IPHONE_OS_VERSION_MAX_ALLOWED <__IPHONE_8_0, но я начинаю думать, что это не нужно. Спасибо! – Scorpio

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