Я обновляю приложение с целью развертывания iOS 7, чтобы оно могло работать с iOS 9. Кроме того, я добавляю несколько интересных функций iOS 8 и 9. Я прочитал много статей об обратной совместимости версий, и теперь, когда Swift 2.0 делает это проще. Вещи, о которых я позаботился до сих пор:
- Наличие базового SDK, установленного на iOS 9, и цели развертывания, установленной на версии 7.
- Проверка версии во время выполнения с помощью
if #available(iOS 9.0, *)
при использовании новых API - Необязательное связывание фреймворков только для iOS9, как показано здесь:
Как видите, я использую два новых фреймворка: ContactsUI
и CoreSpotlight
. Когда я запускаю приложение в симуляторе, оно работает отлично, но когда я пытаюсь собрать и запустить его на своем устройстве (на котором, очевидно, работает iOS 9), я получаю следующую ошибку подписи кода:
/path/to/a/file.framework: bundle format unrecognized, invalid, or unsuitable
Command /usr/bin/codesign failed with exit code 1
Эта ошибка появляется дважды как для платформы ContactsUI, так и для CoreSpotlight.
Сначала я подумал, что это проблема совместимости, так как она впервые появилась, когда я попытался запустить свое приложение на устройстве с iOS 7 (чтобы убедиться, что оно работает правильно), но потом то же самое произошло с моим обычным и современным устройство.
В чем здесь проблема? Связана ли ошибка подписи кода с совместимостью фреймворков? И, наконец, когда это будет решено, будет ли мое приложение работать во всех версиях, которые я хочу поддерживать?
Заранее спасибо, если вам нужна дополнительная информация, просто прокомментируйте.