Для приложения xamarin. iOS, как определить сборку, из которой происходит символ - PullRequest
0 голосов
/ 01 февраля 2020

Когда я создаю архив для своего приложения Xamarin Forms iOS, компоновщик удаляет некоторые необходимые символы для Firebase. Сборка работает нормально. Я знаю, что is может использовать --linkskip для сохранения сборки, но как определить, какая сборка должна быть указана для сохранения символа.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Я нашел Object Browser чрезвычайно полезным для этой цели. Если вы установите область просмотра на «Мое решение» , он покажет вам все классы, которые определены в текущем решении и на которые имеются ссылки. После этого вы можете искать классы, которые отсутствуют во время выполнения (поиск может занять несколько секунд, в зависимости от размера ваших решений). Выберите соответствующий класс и удалите текст поиска. Выбранный класс остается выбранным, и вы можете увидеть контейнер (то есть сборку), в котором определен класс, и добавить его в linkskip.

Примечание: Когда ваш проект растет, возможно, много исключений для компоновщика, чтобы добавить. Хотя возможно добавить все это с помощью linkskip, компоновщик XML определение может быть более осуществимым. Чтобы использовать это, добавьте файл XML с целью сборки LinkDescription. В этом файле добавьте сборки и типы для сохранения

<linker>
  <assembly fullname="Firebase.XXX">
    <type fullname="*" /> <-- Preserve everything from that assembly -->
  </assembly>
</linker>
0 голосов
/ 03 февраля 2020

Это полезно, если использование [Preserve] на некоторых сборках невозможно (например, сторонний код) или в качестве временного обходного пути для ошибки.

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

...