Дублирование цели для WatchOS2 с приложением и расширением на Xcode

У меня есть проект с целью WatchOS2 вместе с расширением. Я хочу дублировать цель приложения WatchOS и расширение. Однако, когда я дублирую цель приложения WatchOS, она по-прежнему связана со старым расширением. Поскольку у нас больше нет доступа к этапам сборки для приложения WatchOS, я не могу изменить его на этапе расширения встраивания приложения.

Исходное состояние

  • WatchAppTarget1 (расширение для встраивания — WatchAppExtension1)
  • WatchAppExtension1

Конечное состояние

  • WatchAppTarget1 (расширение для встраивания — WatchAppExtension1)
  • WatchAppExtension1
  • WatchAppTarget-Duplicate (встроенное расширение по-прежнему указывает на — WatchAppExtension1)
  • WatchAppExtension-дубликат

Можно ли каким-либо образом изменить цель приложения WatchOS, чтобы принять дублированное расширение в качестве выбора для встраивания (кроме ручного редактирования .pbxproj)


person insanoid    schedule 07.10.2015    source источник
comment
Я столкнулся с той же проблемой. Вам удалось ее решить?   -  person salabaha    schedule 15.10.2015
comment
@RomanSalabay Я ответил, может быть, это поможет.   -  person insanoid    schedule 15.10.2015


Ответы (1)


На данный момент наименее раздражающий способ, который я нашел для достижения этого после того, как потратил много часов, — это изменить приложение WatchOS, чтобы оно вело себя как фреймворк, поэтому Xcode предоставляет раздел «Фазы сборки».

Откройте project.pbxproj в текстовом редакторе, перейдите в раздел, похожий на /* Begin PBXNativeTarget section */, найдите в конфигурации свою цель WatchOS (ту, которую хотите изменить), в ней должна быть строка:

productType = "com.apple.product-type.application.watchapp2";

Измените это на:

productType = "com.apple.product-type.application"; OR productType = "com.apple.product-type.framework";

Теперь откройте проект в Xcode, вы должны быть яблоком, чтобы увидеть раздел «Фазы сборки», перейдите туда и удалите старые ссылки на расширения в «Целевых зависимостях» и «Встроить расширение приложения» и замените их новыми. Когда вы закончите, вернитесь к project.pbxproj, отмените изменения и верните WatchOS обратно к productType = "com.apple.product-type.application.watchapp2";.

Иногда вам, возможно, придется создать новую схему сборки как для WatchOS, так и для приложения iOS, но это должно сработать!

person insanoid    schedule 15.10.2015
comment
Спасибо, боролся с этим несколько часов. - person Frank van Vliet; 06.06.2016