Приложения WatchKit должны иметь цель развертывания, равную iOS 8.2 (was 8.3)?
Я только что загрузил Xcode 6.3 beta 4, и мое приложение WatchKit теперь не может построить с ошибкой:
Embedded Binary Validation Utility Error
error: WatchKit apps must have a deployment target equal to iOS 8.2 (was 8.3)
приложение iOS и проект фактически имеют цель развертывания 7.1 и всегда имели, но мы работали с iOS 8.3 SDK для нашего компонента WatchKit (используя Swift 1.2) без проблем с использованием Xcode 6.3 beta 1, 2 и 3. Эта ошибка возникла только с Xcode 6.3 beta 4.
У кого-нибудь еще есть эта ошибка, И знаете, как ее исправить?
7 ответов:
выберите настройки проекта и перейдите в раздел "Цели". Нажмите на приложение Watch Kit, выберите параметры сборки. Для ключа " цель развертывания iOS "вы должны найти"iOS 8.3". По какой-то причине Xcode 6.3 Beta 4 хочет иметь это на "iOS 8.2" для "отладки" и "выпуска". Теперь ваш проект должен построить, как ожидалось.
Это по-прежнему верно для выпуска XCODE 6.3!
цель -> "имя_приложения" набор вахты приложения -> развертывание -> поиск цели развертывания меняться с iOS на iOS 8.2 -> запускаем
столкнулся с этим сам. Похоже на ошибку в Xcode 6.3 beta 4.
Я проанализировал
project.pbxprojфайл (в текстовом представлении) только что созданного проекта с расширением WatchKit. Похоже, что есть настройка:IPHONEOS_DEPLOYMENT_TARGET = 8.2;...который отсутствует в наших проектах, созданных с более ранними версиями Xcode.
так я вручную скопировал этот параметр в конфигурации Debug и Release моего проекта. Эта ошибка исчезла.
затем я получил еще одну ошибку о несоответствии версии между моим приложением и целью приложения WatchKit. Исправление этого несоответствия версий позволило сборке скомпилироваться и работать нормально.
Я знаю, что это немного hacky, но я предполагаю, что это относительно безопасно.
при поиске по проекту.pbxproj файл, вы хотите, чтобы соответствовать этому термину поиска:
"_WatchKit_Extension". Это должно определить область, рядом с которой должна быть добавлена новая инструкция.дискуссионная тема в Apple форумы:
https://devforums.apple.com/thread/266033?tstart=0
отрывок из свежего проекта:
4F9F32751AC2024F00673D86 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); IBSC_MODULE = Bogus_WatchKit_Extension; INFOPLIST_FILE = "Bogus WatchKit App/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.2; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4"; }; name = Debug; }; 4F9F32761AC2024F00673D86 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; IBSC_MODULE = Bogus_WatchKit_Extension; INFOPLIST_FILE = "Bogus WatchKit App/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.2; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4"; }; name = Release; };
я столкнулся с той же проблемой "
iOS Deployment Target '8.3' is newer thatn SDK 'iOS 8.2' in target YUOR_PROJECT WatchKit Extension"вот простое решение этой проблемы. Вы можете изменить цель .xcodeproj файл, просто выполните следующие действия:
- внесите какие-либо изменения в свой проект или файл plist (измените сборку/версию),
- выберите измененный файл проекта
- найдите '8.3' (Command+F) и замените его на 8.2.
- я прикрепил файл для справки.
вот и все.
Это поможет вам если у вас такая же проблема, как у меня.
перейти к цели - > выберите приложение Watch Kit, В разделе развертывание измените значение с 8.3 на
//:настройки = отладка IPHONEOS_DEPLOYMENT_TARGET = 8.2
//:настройки = релиз IPHONEOS_DEPLOYMENT_TARGET = 8.2
"очистить и построить". Проблема Решена!
испытал ту же проблему в симуляторе с Xcode 7.3.1 и мог бы решить ее , перейдя в приложение watch , затем перейдите к цели развертывания ОС, там вы можете выбрать более низкую версию на основе ваших часов .Надеюсь, если это поможет.


Comments