Прошу прощения за неполноту этого ответа, но это слишком долго для комментариев и не будет никакого кода форматирования.
Короткий ответ: это не поддерживается: https://forums.developer.apple.com/thread/21503, но, вероятно, он требует радар.
Более длинный ответ: вы можете что-то взломать. Настройка динамического типа в симуляторе доступна в вашей файловой системе по адресу: ~/Library/Developer/CoreSimulator/Devices/<device identifier>/data/Library/Preferences/com.apple.UIKit.plist
. Вы можете программно получить путь к симулятору файловой системе из внутри XCTest
с помощью:
let environment = NSProcessInfo.processInfo().environment
if let resourcesDir = environment[ "SIMULATOR_SHARED_RESOURCES_DIRECTORY" ]
{
print("-- Simulator Shared Resources Directory: \(resourcesDir)")
let dictionary = NSMutableDictionary(contentsOfFile: "\(resourcesDir)/data/Library/Preferences/com.apple.UIKit.plist")!
print("Dictionary: \(dictionary)")
}
Однако тест песочницы из каталога тренажера, так что вы можете на самом деле не открыты или изменить свои предпочтения. Этот фрагмент кода не работает при попытке развернуть словарь. Я также никогда не пробовал это с Xcode Server.
Вы можете изменить plist используя скрипт оболочки следующим образом: plutil -replace UIPreferredContentSizeCategoryName -string UICTContentSizeCategoryAccessibilityXXXL com.apple.UIKit.plist
. Симулятор необходимо перезапустить после изменения файла, чтобы он не мог летать в среде совместной сборки. К сожалению, путь к файловой системе симулятора недоступен для сценариев Pre-action в Xcode. Вы можете изменить настройку для всех симуляторов, но опять же, может не летать в общей среде сборки.
В конце дня вам может быть полезно создать DynamicTypeController
и добавить некоторый процесс, чтобы никто не использовал UIApplication.preferredContentSizeCategory
.
Все это было протестировано с использованием Xcode 7.1 (7B91b).
Эй, Карлос, не нужно извиняться, я думаю, что ваш ответ такой же полный, как и он. Подход, который я начал, заключался в создании разных тренажеров, но теперь я полностью переключусь на редактирование этого plist. Сервер Xcode используется для одной и той же команды в одном проекте, поэтому это не должно быть проблемой. Огромное спасибо! :-) – niklassaers
Я добавил RADAR # 23459874. PS, извините, я только заметил, что щедрость истекло, прежде чем я должен отметить ответ как правильный. :-( – niklassaers
Отличная находка. Похоже, вы можете добавить -UIPreferredContentSizeCategoryName UICTContentSizeCategoryAccessibilityXXXL в качестве аргумента запуска (например, в схеме Xcode). Спасибо за этот ответ, который действительно помог мне. – Clafou