Как упаковать приложение Watch Watch в приложении Cordova
У нас есть кроссплатформенное приложение Cordova, разработанное с использованием Telerik AppBuilder, и приложение WatchKit (расширение + приложение Watchkit), созданное с использованием Xamarin Studio. Я не знаю, каковы правильные шаги для объединения скомпилированного Расширения (.appex, верно?) И IPA-вывода Telerik AppBuilder.
Учитывая широту технологий, которые мы используем, я даже не знаю, с чего мне начать искать этот процесс. Я заметил, что могу получить доступ к содержимому IPA, как и большинство других ZIP-архивов, но не знаю, правильный ли это первый шаг...
2 ответа
Этого можно добиться, отредактировав .ipa
файл основного приложения Cordova. В общем, следует добавить .appex
файл под Plugins
папка, создать .entitlements
файл для хост-приложения iPhone / iPad и, наконец, повторно закодировать двоичный файл и заархивировать Payload
для .ipa
подать снова. Ниже приведены шаги, описывающие, как объединить приложение Cordova, разработанное с использованием Telerik AppBuilder, и приложение WatchKit (приложение extension + watchkit).
- Прежде всего вам нужно иметь
.ipa
файл для вашего основного приложения и.appex
пакет для приложения WatchKit..ipa
file - это обычный архивный файл приложения iOS, который может быть распакован как любой другой архив. Например, вы можете использоватьunzip
инструмент командной строки (например,unzip <my_ipa_file>.ipa
). Разархивируйте оба Telerik AppBuilder.ipa
и приложение WatchKit.
Примечание: каждый.ipa
архив содержит папку с именемPayload
где актуальный.app
Пакет приложений находится. Следует соблюдать это соглашение об именах при заархивировании этой папки. - Удалить
_CodeSignature
папка вPayload/<cordova_application_name>.app/_CodeSignature
,_CodeSignature
Папка содержит файл XML, который представляет собой хэш-таблицу, созданную в процессе двоичного кодирования приложения. Он содержит информацию в основном о ресурсах приложения. Нам это не нужно, потому что наша цель - создать новый. - Скопируйте
.appex
Расширение WatchKit вPayload/cordova_application_name>.app/Plugins
(вам, скорее всего, придется создатьPlugins
папка). Создайте
archived-expanded-entitlements.xcent
с помощью шаблона<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>application-identifier</key> <string>'App_Identifier_Prefix'.'Main_Application_Bundle_Identifier'</string> <key>keychain-access-groups</key> <array> <string>'App_Identifier_Prefix'.'Main_Application_Bundle_Identifier'</string> </array> </dict> </plist>
Добавить archived-expanded-entitlements.xcent
под Payload/<cordova_application_name>.app/archived-expanded-entitlements.xcent
Примечание: Main_Application_Bundle_Identifier
это CFBundleIdentifier
стоимость вашего кордова приложения. Подробнее о App_Identifier_Prefix
проверьте этот вопрос SO Изменение вручную $(AppIdentifierPrefix) свойство?
- Все
.mobileprovision
файлы должны использовать правильные идентификаторы приложений и тот же сертификат. Я бы порекомендовал, чтобы изначально.ipa
файл заявки на кордову должен быть подписан с правильным.mobileprovision
обеспечение. В противном случае вы должны разместить свой.mobileprovision
подPayload/<cordova_application_name>.app/embedded.mobileprovision
, - использование
codesign
инструмент для повторной подписи двоичного файла приложения Cordova.codesign -f -s "Certificate_Name" --entitlements Payload/<cordova_application_name>.app/archived-expanded-entitlements.xcent Payload/<cordova_application_name>.app/<cordova_application_name>
- Zip отредактированный
Payload
вернуться к.ipa
файл. (напримерzip -r <expected_ipa_name>.ipa Payload/
) - Мы в порядке!
Дайте мне знать, если вам нужна дополнительная помощь по этому вопросу.
У меня тот же вопрос, что и у Тайлера. И я немного озадачен ответом, потому что гибридные приложения для iOS естественно хотели бы также поддерживать ios с поддержкой приложений для часов, поэтому существует так много плагинов Cordova, которые пытаются поддерживать интеграцию Apple Watch.
Вопрос, который у меня возникает, заключается в том, где в буквальном смысле поместить в структуру папок гибридного проекта IPA или другие ресурсы, относящиеся к iOS и Apple, так, чтобы расширение Apple Watch было развернуто, а приложение часов было доступно тем владельцам, которые имеют Часы?
Я думаю, что это тот же вопрос, который я вижу выше, но, может быть, сформулирован по-другому. Надеюсь, поможет.
Дэйв Дж