Хобрук: Ваш путь к мастерству в программировании

Приложение Watchkit включает две разные цели

Я пытаюсь интегрировать приложение watchkit в существующее приложение. Поскольку у нас есть корпоративная версия для тестирования, а также общедоступное приложение, есть две разные цели приложения:

com.mycompany.productname
com.mycompany.internal.productname

У меня успешно построено приложение watchkit на нашей внутренней цели, но я не могу связать то же самое приложение watchkit с целью приложения. Это ошибка, которую я получаю:

Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier

Я знаю, что это потому, что расширение WatchKit должно иметь идентификатор пакета с префиксом идентификатора пакета целевого приложения, но, к сожалению, они не совпадают для двух целей, поэтому мое расширение WatchKit не может иметь их оба в качестве префикса. Любые предложения по устранению этой проблемы?

15.06.2015

  • Не уверен, что понимаю полностью. Почему вы не можете сделать так, как говорит ошибка? Имейте и расширение для часов, и родительское приложение с одинаковым префиксом. В наших проектах у нас есть отдельная настройка схемы, между которой мы можем переключаться и которая обрабатывает эти изменения bundleID для нас. 16.06.2015
  • Поскольку приложение имеет две разные цели, одну для корпоративного бета-тестирования и одну для рабочей среды, оно использует два разных идентификатора пакета. Таким образом, приложение для часов может соответствовать только одному из них. Я ищу способ, который позволяет нам создавать для любой цели без необходимости переключения идентификаторов пакетов для проекта watchapp в зависимости от создаваемой цели. 16.06.2015
  • Я почти уверен, что вы не можете этого сделать. Идентификатор пакета, номера сборки и номера версий должны совпадать. Однако расширение Watch будет иметь «расширение» в bundleID. Если вы хотите избежать постоянного переключения и даже запускать оба приложения на одном устройстве, эта ссылка даст вам представление о том, как это сделать с помощью схем. swwritings.com/post/< /а> 16.06.2015

Ответы:


1

Вы можете добавить еще одну цель приложения WatchKit в свой проект и встроить ее в другую цель сборки.

Xcode создаст новую раскадровку, Info.plist и некоторые контроллеры представления, но вы можете удалить все эти вновь созданные файлы.

Затем продублируйте файл Info.plist вашего исходного приложения WatchKit, переименуйте его и укажите второе приложение WatchKit на эту копию.

Оба приложения WatchKit теперь будут использовать одни и те же файлы (раскадровки и т. д.), и вы сможете использовать разные идентификаторы пакетов и профили подготовки, поскольку у каждого из них есть свой собственный Info.plist.

Пожалуйста, дайте мне знать, если вы хотите, чтобы я объяснил себя, используя скриншоты.

03.07.2015
  • Это единственное разумное решение? 05.08.2015
  • Тот же вопрос - 2018 год. Это единственное решение. Кроме того, я хочу спросить, что если мне нужно переместить watchkit с одной цели на другую? Должен ли я создать еще одну цель? 26.04.2018
  • Новые материалы

    Прогресс в технологии Трансформеров часть 3
    Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

    Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
    Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

    Приключения в Javascript, часть 1
    Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

    Понимание дженериков в TypeScript: подробное руководство
    Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..