iOS Информация о версии SDK для iOS 7 Гм

Содержание:

Введение

iOS SDK 7.0.3 предоставляет поддержку для разработки приложений для iOS, и это включает полный набор инструментов Xcode, компиляторов и платформ для создания приложений для iOS и OS X. Эти инструменты включают XCode IDE и Инструментальный аналитический инструмент среди многих других.

С этим программным обеспечением можно разработать приложения для iPhone, iPad или iPod touch рабочий iOS 7. Можно также протестировать приложения с помощью включенного Средства моделирования iOS, поддерживающего iOS 7. iOS SDK 7.0.3 требует компьютера Mac рабочий OS X v10.8.4 (Пума) или позже.

Эта версия iOS предназначается для установки только на устройствах, зарегистрированных в Программе Разработчика Apple. Попытка установить эту версию iOS несанкционированным способом могла поместить Ваше устройство в неприменимое состояние.

Для получения дополнительной информации и дополнительные ресурсы поддержки, посетите http://developer .apple.com/programs/ios/.

Создание отчетов ошибки

Для сообщения о любых ошибках, не упомянутых в разделе Notes и Known Issues, используйте Генератор отчетов Ошибки Apple на веб-сайте Разработчика Apple (http://developer .apple.com/bugreporter/). Кроме того, можно обсудить эти вопросы и iOS SDK 7.0.3 на Форумах Разработчика Apple: http://devforums .apple.com. Для получения большей информации о iCloud для Разработчиков перейдите в http://developer .apple.com/icloud.

Примечания и известные проблемы

Следующие проблемы касаются использования iOS SDK 7.0.3 для разработки кода.

64-разрядное Время выполнения

Примечания

Приложения могут теперь предназначаться для iOS 5.1.1 и позже при создании для 64-разрядного использования “Стандартной архитектуры (включая 64-разрядный)” установки сборки. Это производит Архив для App Store с единственным двоичным файлом, содержащим и 32-разрядные и 64-разрядные компоненты. Во время разработки и тестирования, необходимо создать только 32-разрядный при предназначении для iOS 5.1.1 устройства (это - значение по умолчанию в XCode).

Доступность

Примечания

Обратный вызов для UIAccessibilityRequestGuidedAccessSession() выполняется на глобальной очереди. Поэтому, если Вы предназначаете к выполнению какой-либо работы основной очереди в обратном вызове, если, необходимо гарантировать для синхронизации той работы назад с основной очередью.

Адресная книга

Примечания

Классы в AddressBookUI платформа теперь явно запрещает разделение на подклассы. Для приложений, соединенных против iOS 7 SDK, пытаясь инициализировать подкласс одного из этих классов, возвращает ноль. Для приложений, соединенных против более старого SDKs, единственное изменение поведения является предупреждением, зарегистрированным к консоли.

Развертывание приложения

Примечания

Сравнение [[[UIDevice currentDevice] identifierForVendor] UUIDString] на многократных Корпоративных приложениях или приложениях, установленных через XCode (не App Store), то, где bundleIDs отличаются только по последнему компоненту, приведет к идентичным строкам. Если bundleID имеет 3 или меньше компонента, это поведение неизменно от iOS 6.

Это вследствие изменения в поведении между iOS 6 и iOS 7 где -[UIDevice identifierForVendor] если нет никакого Идентификатора поставщика, принимает во внимание bundleID. Идентификатор поставщика только присваивается приложениям на App Store.

Основа AV

Примечания

  • AVCaptureSession теперь использует Ваше приложение AVAudioSession по умолчанию.

  • +[AVPlayer playerWithPlayerItem:] возвраты AVPlayer если проигрыватель создавался на другом потоке, объект, но текущий элемент возвратит ноль.

Bluetooth

Известная проблема

32-разрядные приложения, работающие на 64-разрядном устройстве, не могут присоединить к BTServer.

Контакты

Известная проблема

При создании дней рождения с помощью бета-версии iOS 7 информация дня рождения, возможно, была сохранена неправильно. Для исправления такого дня рождения, выводящего на экран неправильно отредактируйте контакт и измените дату.

Базовая анимация

Примечания

Когда UIViewGroupOpacity ключ не присутствует, значением по умолчанию является теперь YES. Значение по умолчанию было ранее НЕТ.

Это означает, что подпредставления прозрачного представления будут сначала составлены на то прозрачное представление, тогда предварительно составленное поддерево будет нарисовано в целом на фон. Установка NO приводит к менее дорогому, но также и менее точный, составляя композит: каждое представление в прозрачном поддереве составляется на то, что под ним, согласно непрозрачности родителя, в порядке алгоритма нормального живописца.

Основа

Примечания

  • NSMetadataQuery с повсеместным объемом может теперь использовать kMDItemContentTypeTree в предикатах. Например:

    NSPredicate *p = [NSComparisonPredicate
                   predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"kMDItemContentTypeTree"]
                               rightExpression:[NSExpression expressionForConstantValue:@"public.rtf"]
                                      modifier: NSAnyPredicateModifier
                                          type:NSLikePredicateOperatorType
                                       options:0];
  • Когда обратился к результатам, возвращенным запросами с повсеместными объемами, -[NSMetadataItem valueForAttribute:NSMetadataItemDisplayNameKey] теперь производит то же значение как -[NSURL getResourceValue: forKey: NSURLLocalizedNameKey], соответствие неповсеместных запросов.

GLKit

Известная проблема

Если загружено GLKTextureLoader, изображения pngcrush, имеющие альфу, являются unpremultiplied.

Обходное решение: можно или использовать формат кроме PNG или выключить pngcrush опцию XCode. Для выключения pngcrush опции XCode установите Сжатие Файлы PNG в No в Настройках Сборки XCode. Если Вы выключаете pngcrush в XCode, также устанавливаете GLKTextureLoaderApplyPremultiplication отметьте к истине.

Таймеры высокой точности

Известная проблема

При сне или ожидании чрезвычайно точных временных интервалов, таймеры могут быть задержаны до 1 миллисекунды.

iCloud

Примечания

  • kSecAttrSynchronizable APIs, который был доступен в Бета семенах, не доступен в Семени GM.

  • Блокировка активации, новая функция Находки Мой iPhone, включена автоматически, когда Находят, что Мой iPhone включен на любом устройстве рабочий iOS 7. Блокировка активации требует, чтобы пользователи ввели свой Apple, ID и пароль для выключения Находят Мой iPhone, знак из iCloud, стирают устройство или повторно активируют устройство после стирания. Важно сделать один из следующих прежде, чем передать устройство новому пользователю:

    • Знак из iCloud.

    • Выключите Активацию, Привязывают Настройки>, iCloud> Находит Мой iPhone.

Радио iTunes

Примечания

При использовании Радио iTunes в семенах до Семени GM необходимо подписаться из учетной записи и войти в систему назад. Иначе, Ваши станции не обновят. Чтобы сделать это, перейдите к Настройкам> iTunes и App Store. Выберите свой Apple ID и затем Выпишитесь. Затем введите свой Apple ID и пароль, и Регистрируйтесь.

MapKit

Примечания

Если вызовы к renderInContext на уровне, отступающем MKMapView убегаются основной поток, они должны быть устранены или перемещены в основной поток. Отказ сделать так может вызвать сбой приложения. Вместо использования renderInContext, используйте новое MKMapSnapshotter APIs.

Носители

Примечания

iOS теперь помнит последнее используемое мультимедийное приложение через перезагрузку и сбои приложения. Мультимедийные приложения, которые могут получить события дистанционного управления, должны быть подготовлены быть запущенными в фоновом режиме и потенциально получить событие дистанционного управления для начала воспроизведения. Кроме того, важно, чтобы мультимедийные приложения контролировали и обработали событие сброса медиасервера, так как мультимедийное приложение может получить удаленный запрос для возобновления воспроизведения после сброса. Уведомления для слежения за развитием этих событий медиасервера доступны в AVAudioSession, и правильное обращение описано в AVAudioSession - Общие рекомендации для обработки AVAudioSessionMediaServicesWereResetNotification.

Мультиравноправная связь

Примечания

  • Следующий новый метод на MCSession был реализован:

    - (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID error:(NSError **)error

    Этот метод делегата был реализован:

    - (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
  • Следующий новый метод на MCSession был реализован:

    - (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void(^)(NSError *error))completionHandler

    Метод делегата начать получать ресурс от удаленного узла был реализован как:

    - (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress

    Метод делегата закончить получить ресурс от удаленного узла и сохранять содержание во временном расположении реализован как:

    - (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error
  • MCAdvertiserAssistant класс удобства для реализации Рекламодателя, обрабатывающего приглашения и соединения с MCSession.

  • MCSession имеет новое initWithPeer: метод.

  • sendResource добавил «с» к completionHandler.

  • Тайм-аут был удален из connectPeer:withNearbyConnectionData.

Для получения дополнительной информации об этом APIs наблюдайте 2013 WWDC: Поблизости Объединяясь в сеть с Мультиравноправной Связью.

Многозадачность

Примечания

  • AVAudioSession больше не может становиться активным приложениями в фоновом режиме что след вследствие Фоновой Выборки, Фоновых Передач и событий Remote Notification.

  • Ограничение по времени для завершения задачи уменьшилось с этих 10 минут, это было в iOS 6.

Сети

Примечания

Два низких уровня, объединяющие в сеть APIs, раньше возвращавший MAC-адрес теперь, возвращают фиксированное значение 02:00:00:00:00:00. Рассматриваемый APIs sysctl (NET_RT_IFLIST) и ioctl (SIOCGIFCONF). Разработчики, использующие значение MAC-адреса, должны переместить на идентификаторы такой как -[UIDevice identifierForVendor]. Это изменение влияет на все приложения, работающие на iOS 7.

Время выполнения Objective C

Примечания

Вследствие изменений, в как isa поле реализовано, *self может измениться во время перечисления (например, если контейнер сохраняется).

Обходное решение: При реализации countByEnumeratingWithState, не устанавливать state->mutationsPtr = self.

Сберкнижка

Примечания

  • Сберкнижка добавила поддержку крупнейших и незначительных полей для лучше соответствия остальной части iBeacon экосистемы. Новое major и minor ключи являются независимо параметрами переменной рядом proximityUUID (требуемый) в каждом словаре в beacons массив.

  • В предыдущих версиях iOS SDK Сберкнижка не проверяла задние поля на передачах полностью. Правила проверки не изменились, но проверка теперь включает назад поля. Проверьте консольный журнал на дополнительные журналы.

  • PKPassLibraryDidCancelAddPasses новый код состояния в PKPassLibraryAddPassesStatus перечисление. Это показывает, что пользователь коснулся Отмены на предупреждении добавлять-передач.

Фотографии

Примечания

После обновления от более раннего семени фото миниатюры в фото приложении не появятся в течение короткого времени.

Safari

Известная проблема

При обновлении до Семени GM от более раннего семени могут быть потеряны предпочтения Safari.

Обходное решение: Отключите блокировку кода доступа перед обновлением.

Безопасность

Примечания

  • -[UIDevice uniqueIdentifier] больше не принимается в представлениях к App Store. В iOS 7 приложения, которые уже находятся на хранилище или на вызывающих устройствах пользователей это удалило API, больше не будет возвращаться UDID. Вместо этого -[UIDevice uniqueIdentifier] возвратит 40 символьных строк начиная с FFFFFFFF, сопровождаемого шестнадцатеричным значением -[UIDevice identifierForVendor]. Важно рассмотреть, как это будет влиять на существующие приложения. Рассмотрите подчиняющиеся обновления, больше не получающие доступ к UDID.

  • iOS теперь запрашивает пользовательское согласие на приложения использовать аудиовход на всем iOS 7 устройств. Для устройств, проданных в Китае, iOS также запросит пользовательское согласие на приложения использовать аппаратные средства камеры. Операционная система представит предупреждение согласия при установке категории инстанцированного AVAudioSession. AVAudioSession категории, которые представят предупреждение, AVAudioSessionCategoryRecord и AVAudioSessionCategoryPlayAndRecord.

    Если пользователь не предоставит доступ, то аудио данные сеанса будут всеми нулями (тишина). Для устройств, где доступ к камере требует и отклоняет пользователь, сеанс видеосъемки является черным экраном.

  • API gethostuuid() был удален и не будет принят для представления к хранилищу, независимо от предназначенного OS. Для существующих приложений, работающих на iOS 7, функция возвратит uuid_t представление идентификатора поставщика (-[UIDevice identifierForVendor]).

Социальный

Примечания

  • Через iOS 6, при использовании TWTweetComposeViewController и SLComposeViewController (последний только для Twitter и Weibo, но не Facebook), если вызывающая сторона предоставляет a completionHandler, предоставленный completionHandler ответственно за отклонение контроллера представления. С iOS 7, если ссылки приложения против iOS 7 SDK, контроллер представления отклонит себя, даже если вызывающая сторона предоставит a completionHandler. Избегать этого, вызывающей стороны completionHandler не должен отклонять контроллер представления.

  • При использовании iOS 6.1 SDK на OS X v10.8 Пума при использовании iOS 5.0 или Наследства iOS 5.1 SDK в Средстве моделирования iOS Вы не будете в состоянии использовать функции Twitter: попытка регистрироваться к Twitter через область Settings перестанет работать, и Twitter.framework не будет работать правильно. Если необходимо протестировать функции Twitter, необходимо будет выбрать или iOS 6.1 или средство моделирования iOS 6.0 выполненное место назначения, или можно протестировать с iOS 5.x на устройстве.

Трамплин

Примечания

  • Когда пользователь берет снимок экрана, активные касания больше не отменяются.

  • Динамические обои не доступны на iPhone 4.

Хранилища

Фиксированный в семени GM

Загрузки приложений больше не застревают в состоянии «Ожидания».

UIKit

Фиксированный в семени GM

Поля пароля не были выведены на экран в предупредительных представлениях для приложений в среде (например, Игровая аутентификация Центра или Закупка В приложении).

Известные проблемы

  • Если a UITextField или a UILabel это выравнивается базовой линией с ограничениями, имеет атрибуты, изменяющиеся после того, как ограничения были добавлены, расположение может быть неправильным. Исключение к этому -setFont: на UILabel, который должен работать как ожидалось.

    Обходное решение: Избегите вносить изменения в UITextField или UILabel после добавляющих ограничений базового выравнивания. Если необходимо внести изменения, необходимо удалить ограничения и затем повторно применить их позже. Обратите внимание на то, что это - хит производительности, не делайте этого, если это не необходимо.

  • backIndicatorTransitionMask от раскадровки или xib не будет интерпретироваться правильно во время выполнения.

    Обходное решение: установите backIndicatorTransitionMask в коде.

Примечания

  • Когда не будет достаточного количества комнаты в расположении панели навигации для полного текста заголовка кнопки «Назад», панель навигации заменит универсальным коротким задним заголовком (на английском языке, «Назад»). Если даже панель покажет заднюю двойную угловую скобку индикатора без заголовка, что строка является слишком длинной.

  • +[UIPasteboard pasteboardWithName:create:] и +[UIPasteboard pasteboardWithUniqueName] теперь уникальный имя, чтобы позволить только тем приложениям в той же группе приложений получать доступ к области монтажа. Если разработчик попытается создать область монтажа с именем, уже существующим, и они не часть того же комплекта приложения, то они получат свою собственную уникальную и частную область монтажа. Обратите внимание на то, что это не влияет на предоставленные области монтажа системы, общие, и найти.

  • Значение по умолчанию приложений к использованию нового представления основанная на контроллере система управления строки состояния. Для выбора из этого добавьте значение НЕ для UIViewControllerBasedStatusBarAppearance ключ к Вашему Info.plist.

  • При использовании Автоматического Расположения к позиции a UIButton, при установке сопротивления сжатия содержания или довольный приоритет объятия к минимуму кнопка будет иметь неоднозначное расположение.

    Обходное решение: не используйте сопротивление сжатия содержания или довольный приоритет объятия меньше чем 2 для UIButton.

  • UIScreenEdgePanGestureRecognizer позволяет Вы для выполнения действий в ответ на сильно ударяете по краю экрана с помощью той же эвристики, которую система использует для ее собственных жестов. Используйте это, если у Вас есть навигация, семантическая собственный, который не использует UINavigationController, но это должно включать этот жест (например, Safari).

    Это устройство распознавания жеста имеет свойство, описывающее края, на которых это активно. UIRectEdge новый перечислимый тип что это свойство и -[UIViewController edgesForExtendedLayout] может совместно использовать. UIRectEdge замены UIExtendedEdge, который будет удален. У элементов обоих есть те же значения. Используйте XCode для замены всех экземпляров «UIExtendedEdge» в проекте с «UIRectEdge».

  • UIButtonTypeInfoLight, UIButtonTypeInfoDark, и UIButtonTypeDetailDisclosure кнопки все выглядят одинаково.

  • Размытые уровни не доступны на iPhone 4.

  • Параллакс не доступен на iPhone 4.

  • Текст высокой печати не доступен на iPhone 4.

Погода

Примечания

Погодные условия не анимированы на iPhone 4.

WebKit

Примечания

  • Ранее, когда параметры области просмотра были изменены, старые параметры никогда не отбрасывались. Это заставило параметры области просмотра быть дополнением.

    Например, если Вы запустили с width=device-width и затем изменили его на initial-scale=1.0, Вы закончили с вычисленной областью просмотра width=device-width, initial-scale=1.0.

    В iOS 7 это адресовалось. Теперь Вы заканчиваете с с вычисленной областью просмотра initial-scale=1.0.

  • Ранее, при использовании <метаимя = содержание «области просмотра» = «initial-scale=1.0, user-scalable=1»>, масштаб мог быть неправильным после вращения.

    Теперь, если пользователь не масштабировал страницу явно, страница восстанавливается ее начальному масштабу. Кроме того, текущий масштаб теперь правильно ограничивается в min-scale, max-scale границы.

  • В соответствии со спецификацией CSS, background Краткое свойство CSS теперь сбрасывает значение background-size свойство к auto когда не указан фоновый размер.

    Изображения, больше, чем их контейнеры и разработанные с background свойство после background-size свойство или -webkit-background-size свойство поэтому появится дважды намеченный размер на дисплеях Сетчатки.

    Необходимо теперь указать background-size свойство или -webkit-background-size свойство после background краткое свойство в таблице стилей CSS для выводимого на экран веб-контента.

    Устаревшее поведение доступно только для приложений, соединенных с SDK до iOS 7.0 при работе iOS 7 или позже.

    Эта проблема влияет и на исходные приложения, выводящие на экран веб-контент и веб-страницы, просматриваемые в Safari для iPhone.

Известная проблема

  • Веб-приложения и веб-клипы, создаваемые до Семени 4, не останутся в папках через перезагрузку.

    Обходное решение: Удалите старое веб-приложение, или сеть отсекают и воссоздают его в этом семени путем загрузки содержания в Safari, ответвления Кнопки действий, и затем “Добавьте к домашнему экрану”.