Как обеспечить развертывание проекта расширения Xamarin.ios вместе с основным проектом

Я пытаюсь добавить внутренний общий доступ к существующему проекту Xamarin.iOS в Visual Studio. Я добавил проект расширения общего доступа (используя проект шаблона в VS), однако при тестировании на устройстве ничего не отображается на экране общего доступа к ОС. Я создал и протестировал пример MS который отлично работает и отображается на устройстве. Я думаю, проблема в том, что второй EXE для моего приложения вообще не развертывается, когда я тестирую. Когда я нажимаю F5, чтобы запустить проект MS на подключенном устройстве, окно Build Output содержит такие строки, как:

CopyingFile - PercentComplete: 40%
CopyingFile - Path: /var/folders/ns/vw2n_fhd58d3v21nv64s4fhw0000gn/T/Xamarin.iOS_InstallShadowPath/Share.app.mXLJ6c/Share.app_sparse.ipa/Payload/Share.app/PlugIns/ShareExtension.appex/ShareExtension.aotdata.arm64
CopyingFile - Path: /var/folders/ns/vw2n_fhd58d3v21nv64s4fhw0000gn/T/Xamarin.iOS_InstallShadowPath/Share.app.mXLJ6c/Share.app_sparse.ipa/Payload/Share.app/PlugIns/ShareExtension.appex/ShareExtension.aotdata.arm64
CopyingFile - PercentComplete: 41%
CopyingFile - Path: /var/folders/ns/vw2n_fhd58d3v21nv64s4fhw0000gn/T/Xamarin.iOS_InstallShadowPath/Share.app.mXLJ6c/Share.app_sparse.ipa/Payload/Share.app/PlugIns/ShareExtension.appex/ShareExtension.dll
CopyingFile - PercentComplete: 41%
CopyingFile - Path: /var/folders/ns/vw2n_fhd58d3v21nv64s4fhw0000gn/T/Xamarin.iOS_InstallShadowPath/Share.app.mXLJ6c/Share.app_sparse.ipa/Payload/Share.app/PlugIns/ShareExtension.appex/ShareExtension.dll
CopyingFile - PercentComplete: 41%
CopyingFile - Path: /var/folders/ns/vw2n_fhd58d3v21nv64s4fhw0000gn/T/Xamarin.iOS_InstallShadowPath/Share.app.mXLJ6c/Share.app_sparse.ipa/Payload/Share.app/PlugIns/ShareExtension.appex/ShareExtension.dll
CopyingFile - PercentComplete: 42%
CopyingFile - Path: /var/folders/ns/vw2n_fhd58d3v21nv64s4fhw0000gn/T/Xamarin.iOS_InstallShadowPath/Share.app.mXLJ6c/Share.app_sparse.ipa/Payload/Share.app/PlugIns/ShareExtension.appex/libmono-native-compat.dylib

Он явно копирует второй проект в подпапку /plugins/. Однако, когда я нажимаю F5 для своего собственного приложения, в выводе сборки для моего основного проекта и его ресурсов и т. д. появляется множество строк, но нет такого эквивалента для второго проекта или какой-либо ссылки на подпапку плагинов. В решении моего приложения я установил проект расширения для сборки (и флажок развертывания недоступен для xamarin.ios в диспетчере конфигурации). В свойствах решения я установил свой основной проект как зависимый от второго проекта. Я проверил, что второй проект действительно собирается: если я добавлю ошибку или изменю его идентификатор так, что идентификатор пакета больше не будет соответствовать моему профилю подготовки с подстановочными знаками, тогда сборка и развертывание завершатся с ошибкой.

Как убедиться, что проект расширения включен (как при тестировании решения из VS, так и при создании IPA для загрузки)?


person Stuart Whitehouse    schedule 06.01.2020    source источник


Ответы (1)


Вам нужно сослаться на расширение общего ресурса из основного проекта, чтобы убедиться, что оно включено во встроенный двоичный файл.

Однако это не гарантирует, что приложение будет отображаться во время совместного использования, вам необходимо указать, что ваше приложение получает, в файле info.plist расширения общего доступа.

person Ivan Ičin    schedule 06.01.2020
comment
Спасибо, похоже, что это он. Я не могу убедиться, что он успешно развертывается, так как со ссылкой он теперь терпит неудачу с загадочным то же самое, выходящим с кодом 0, но, похоже, он пытается это сделать. - person Stuart Whitehouse; 06.01.2020