Apple только что выпустила iOS 8.1 beta 1 в своем центре разработчиков. Обновление имеет номер сборки 12B401. Как мы сообщали ранее, компания также работает над iOS 8.2 и 8.3 для будущих релизов. Релиз доступен для всех устройств, совместимых с iOS 8, включая Apple TV.
Мы будем обновлять эту статью с любыми новыми изменениями, обнаруженными в бета-версии.
Основные изменения:
Значки в списке виджетов Центра уведомлений стали крупнее
Диктовка теперь опциональна и может быть отключена отдельно от Siri в настройках клавиатуры:
[tweet https://twitter.com/Nkapoor124/status/516727312856133633 align=’center’]
Альбом фотографий «Недавно добавленные» снова называется «Camera Roll»
[tweet https://twitter.com/Nkapoor124/status/516731508393271297 align=’center’]
Значок iBooks теперь соответствует промо-изображениям
Изменения в экране разрешений для приложений
[tweet https://twitter.com/Nkapoor124/status/516736006607761408 align=’center’]
Полный текст заметок к релизу:
Заметки и известные проблемы
Следующие проблемы связаны с использованием iOS SDK 8.1 для разработки кода.AVCapture
Известная проблема
Использование новой константы AVCaptureISOCurrent приведет к непоследовательным значениям ISO (как наблюдается в свойстве ISO), если AVCaptureISOCurrent вызовется несколько раз подряд.
CloudKit
Примечание
Экземпляр CKAsset больше нельзя использовать в качестве значения для нескольких CKRecords.
Контакты
Примечание
Выборщик людей в пользовательском интерфейсе Address Book был изменен для iOS 8. Добавлен новый режим с новым API, где приложение не требует доступа к контактам пользователя, и пользователю не будет предложено предоставить доступ. Приложение получает временную копию выбранного контакта. Подробнее см. в ABPeoplePickerNavigationController.h.См. новый пример проекта PeoplePicker: Picking a Person or Property, демонстрирующий использование нового режима.
Поставщики документов
Заметки
Вашему приложению требуется привилегия iCloud, чтобы использоваться в качестве поставщика документов.
При выпуске iOS 8 потребуется привилегия com.apple.developer.icloud-container-identifiers.
Известные проблемы
После поворота окна выбора документов в ландшафтный режим строка состояния скрывается.
При вызове окна выбора документов в ландшафтном режиме содержащая его область может сместиться под панель навигации.
Расширения
Заметки
Расширениям требуется срез arm64 для работы на 64-битных устройствах. Если вы попытаетесь запустить срез armv7 на 64-битном устройстве, это не сработает.
Приложениям требуется срез arm64, если пакет содержит фреймворк, на который ссылаются как приложение, так и расширение приложения.
Файловая система
Примечание
Структура файловой системы контейнеров приложений изменена на диске. Вместо использования жестко закодированной структуры каталогов используйте функцию NSSearchPathForDirectoriesInDomains или метод URLForDirectory:inDomain:appropriateForURL:create:error: класса NSFileManager. См. «Доступ к файлам и каталогам» в руководстве по программированию файловой системы.
Шрифты
Примечание
Тайский системный шрифт увеличен для улучшения читаемости. Это приведет к обрезке во многих местах вашего пользовательского интерфейса, если вы не предпримете соответствующих действий:Используйте UILabel как можно чаще. Если вы используете Interface Builder, убедитесь, что опция Clip Subviews не выбрана. UIKit будет увеличивать область обрезки по мере необходимости, чтобы текст не обрезался.
Используйте Dynamic Type. Это гарантирует, что у вас не будет накладывающихся глифов в многострочных метках или текстовых полях.
Если вы не можете использовать пункты 1 и 2, потому что реализуете свои собственные представления, вы должны реализовать меры для предотвращения обрезки. Вы можете использовать CoreText, чтобы определить соответствующую область обрезки для строки текста, вызвав:CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents);
Чтобы избежать наложения глифов в многострочных текстовых элементах, отрегулируйте межстрочный интервал. Рекомендуется дополнительно 30%.Эта мера также поможет вашему приложению лучше работать на других языках, включая арабский, хинди и вьетнамский.
GameController
Исправлено в iOS 8.1 Beta
Переадресация GameController может не работать.
HealthKit
Примечание
Код, пытающийся прочитать информацию о тренировках в HealthKit, может быть не в состоянии выполнять последующие запросы к HealthKit.Если вы используете HKWorkouts, вам следует избегать чтения тренировок при работе на версиях iOS до 8.1 с помощью:
NSOperatingSystemVersion ios8_1_0 = (NSOperatingSystemVersion){8, 1, 0};
if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:ios8_1_0]) {
// Читать и записывать информацию о тренировках в HealthKit.
} else {
// Записывать информацию о тренировках в HealthKit
}
Исправлено в iOS 8.1 Beta
Фоновая доставка данных HealthKit работает некорректно.
iCloud
Примечание
Функции «Почта: переход» и AirDrop могут перестать работать после изменения пароля iCloud на appleid.apple.com.Обходное решение: выйдите из iCloud и снова войдите в систему на устройстве.
Резервное копирование iCloud
Известная проблема
После восстановления из резервной копии iCloud вы можете быть не в состоянии синхронизировать новый музыкальный или видеоконтент из iTunes.
iCloud Drive
Примечание
URLForUbiquityContainerIdentifier: может возвращать nil при запуске приложения в Xcode. В этом случае откройте «Системные настройки», перейдите в iCloud > iCloud Drive и включите Xcode.
Связка ключей iCloud
Исправлено в iOS 8.1 Beta
При входе в iCloud пользователь может столкнуться с сбросом связки ключей на других своих устройствах, которые ранее были в группе.
Элементы связки ключей, защищенные Touch ID, не допускают SecItemUpdate. SecItemUpdate всегда возвращает errSecInteractionNotAllowed.
Клавиатуры
Исправлено в iOS 8.1 Beta
Сетевой доступ отключается после добавления новой клавиатуры из того же пакета.
Пользовательские клавиатуры могут стать пустыми после переключения между приложениями.
Известная проблема
Сторонние клавиатуры могут не отображаться в Safari, Картах или сторонних приложениях на симуляторе.Обходное решение: клавиатуры должны тестироваться в Календаре, Spotlight, Контактах и Фото.
Почта
Исправлено в iOS 8.1 Beta
Применение ограничения «Разрешить изменение учетной записи» к устройству без настроенных почтовых учетных записей по-прежнему позволяет пользователю создать учетную запись почты, запустив приложение «Почта».
Metal
Исправлено в iOS 8.1 Beta
При изменении шейдерного файла metal с использованием офлайн-компиляции для создания библиотеки metallib, размер которой уменьшился, библиотека metallib не сможет загрузиться на устройстве.Обходное решение: удалите библиотеку metallib перед ее повторным созданием, выполнив очистку в Xcode или удалив файл вручную перед сборкой архива.
Центр уведомлений
Примечание
Расписание и предполагаемое использование widgetPerformUpdateWithCompletionHandler: предназначены для удобного размещения всей логики обновления данных/модели. Если реализовано, система будет вызывать его в подходящее время для обновления состояния виджета, как при видимом Центре уведомлений, так и в фоновом режиме. Реализация требуется для включения фоновых обновлений. Ожидается, что виджет выполнит работу по обновлению асинхронно и, насколько это возможно, вне основного потока. Виджеты должны вызывать блок аргумента после завершения работы, передавая соответствующий NCUpdateResult. Виджеты НЕ должны блокировать возврат из viewWillAppear: по результатам этой операции. Вместо этого виджеты должны загружать кэшированное состояние в viewWillAppear:, чтобы соответствовать состоянию представления из последнего viewWillDisappear:, а затем плавно переходить к новым данным, когда они поступят.
NSURLSession
Примечание
Класс NSURLSessionTask предоставляет новое свойство «priority» с тремя связанными константами: NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLow и NSURLSessionTaskPriorityHigh. Приоритеты NSURLSessionTask могут использоваться для указания того, как следует приоритизировать несколько запросов и ответов к одному и тому же хосту. Обратите внимание, что приоритет является подсказкой, а не строгой гарантией производительности NSURLSessionTask.Для получения полных сведений об использовании приоритетов NSURLSessionTask обратитесь к файлу заголовка NSURLSession.h, который предоставляется фреймворком Foundation.
Телефон
Примечание
Чтобы активировать функцию Wi-Fi Calling для T-Mobile (только в США), выполните следующие действия:Перейдите в «Настройки» > «Телефон» > «Wi-Fi Calling».
Переключите переключатель «Wi-Fi Calling» в положение «Вкл».
Если у оператора нет зарегистрированного экстренного адреса пользователя, вам будет предложено добавить его перед активацией функции.
Фото
Заметки
Создайте резервную копию вашей фототеки перед включением и во время использования iCloud Photo Library beta, выполнив:Импорт на Mac с помощью iPhoto
Импорт на Mac с помощью Image Capture
iCloud Photo Library beta не будет загружать фотографии и видео, синхронизированные с вашим устройством через iTunes. Любые фотографии и видео, синхронизированные с вашим устройством через iTunes, будут удалены при включении iCloud Photo Library beta.
iPhoto для iOS не запустится на iOS 8 Beta. Запуск Photos.app перенесет ваши правки iPhoto в библиотеку фотографий iOS 8. Убедитесь, что ваши данные iPhoto для iOS включены в резервную копию устройства.
Исправлено в iOS 8.1 Beta
Возможность автоматической оптимизации места на устройстве включена для всех учетных записей размером более 5 ГБ.
Известные проблемы
Если включена iCloud Photo Library beta, «Настройки» -> «iCloud» -> «Фото» может вызвать сбой.Обходное решение: используйте «Настройки» -> «Фото и Камера» для управления настройками фотографий.
Возможность автоматической оптимизации места на устройстве включена для всех учетных записей размером более 5 ГБ.
При использовании Семейного доступа iCloud включены как «Общий доступ к фото iCloud», так и «Фотопоток».
Профили подготовки
Известная проблема
Если вы обновились до 8.1 Beta с бета-версий iOS 8, ваши приложения могут аварийно завершать работу из-за проблем с профилями подготовки.Обходное решение:
Подключите устройство через USB к вашему Mac
Запустите Xcode
Выберите Окно -> Устройства
Щелкните правой кнопкой мыши по устройству в левом столбце, выберите «Показать профили подготовки»
Нажмите на соответствующий профиль подготовки
Нажмите кнопку «-»
Продолжайте удалять все затронутые профили.
Переустановите приложение
Синтез речи
Исправлено в iOS 8.1 Beta
AVSpeechSynthesizer может не работать.Обходное решение: если вы не слышите речь на определенном языке или диалекте, перейдите в «Настройки» > «Основные» > «Универсальный доступ» > «Речь» > «Голоса» > «Язык» и загрузите голос «Улучшенное качество» для этого языка/диалекта.
Магазины
Исправлено в iOS 8.1 Beta
Иногда загрузка определенных страниц или выполнение поиска в App Store или iTunes Store может быть медленным.
UIKit
Заметки
UILabel по умолчанию имеет значение YES для clipsToBounds. Это отличается от стандартного значения NO для UIView.
API leftLayoutGuide и rightLayoutGuide были удалены. Вместо них используйте свойство layoutMargins.
Исправлено в iOS 8.1 Beta
Поддержка файлов RTF в UIWebView не работает.Обходное решение: для отображения файлов RTF пользователю используйте фреймворк Quick Look (QLPreviewController) или загрузите NSAttributedString из файла RTF и отобразите его в UITextView, что позволит отрисовать контент более чисто.
WebKit
Примечание
API Navigation Timing отключен только в iOS из-за проблем с производительностью.
Wi-Fi Calling (только для T-Mobile US)
Примечание
Название оператора в строке состояния будет отображаться как «T-Mobile Wi-Fi», когда устройство сможет совершать и принимать звонки через Wi-Fi.
