Как найти ссылку на неопубликованную c инфраструктуру в приложении Xamarin.Ma c - PullRequest
1 голос
/ 17 февраля 2020

Мы публикуем приложение MacOS в магазине приложений, в котором используются Xamarin.Ma c и Xamarin Forms. В процессе проверки в App Store Connect двоичный файл нашего приложения был отклонен по следующей причине:

Ваше приложение связывается со следующими непубликуемыми c framework (ами): Frameworks: / Система / Библиотека / PrivateFrameworks / Network.framework / Версии / A / Сеть

Как мы можем найти, где этот фреймворк используется в нашем приложении, чтобы мы могли удалить его?

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

Нам порекомендовали использовать "строки" или "otool", чтобы помочь - есть ли пример того, как использовать их в нашем случае, чтобы найти и удалить использование?

1 Ответ

0 голосов
/ 10 марта 2020

Публикация ответа здесь, поскольку нам удалось выяснить, как обнаружить ссылочные фреймворки. благодаря этой ветке Xamarin:

https://forums.xamarin.com/discussion/94838/xamarin-mac-linker-behavior-appstore-rejection

В рамках сборки мы создаем файл .pkg, но также файл .app (например, OurApplication.app и OurApplication-1.0.pkg ).

Возможно откройте файл *. app , чтобы просмотреть внутреннюю структуру файла. Для этого выберите файл в Finder и выберите « Показать содержимое пакета ». Это означает, что, открыв в терминале, мы можем перейти к местоположению:

OurApplication.app/Contents/MacOS

, которое содержит один исполняемый файл Unix: OurApplication.

Это файл, который нам нужно запустить otool, с помощью следующей команды:

otool -L OurApplication | grep "PrivateFrameworks"

, где мы наконец можем увидеть структуру выше, на которую мы ссылались. (Обратите внимание, что игнорирование части команды grep покажет все платформы, поэтому было бы полезно применить фильтр).

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

Мы удалили ссылку (и таким образом исправили проблему), установив для нашего «Линкера поведение» значение « Framework SDKs Only » и включив « Ahead» сборок"в наших настройках проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...