Во-первых, процитирую Стива Джобса:
«Я опечален, не успехом Microsoft - у меня нет проблем с их успехом. (...) У меня проблема с тем, чтоони просто делают продукты действительно третьего сорта. "
JK.Теперь пошли.Я только что передал проект Xamarin в своей компании, и у меня действительно нет опыта работы с этой платформой, поэтому я подумал, что кто-то может просветить меня в некоторых моментах.
Я пытаюсь выполнить вход на Facebook в Debugрежим в физическом устройстве, но я просто не могу заставить работать ключ хеша.Выдает ошибку "Недопустимый хеш-ключ. Хеш-ключ xxxxxxxxx не соответствует ни одному из сохраненных хешей ky. Etc ...".
Я делал это много раз в Android Studio, и это всегда казалосьдовольно прямо.У меня есть настройка appId в моем AndroidManifest.xml
, и я добавил хэши в Facebook для инструментальной панели Develops.Сейчас я следую учебному пособию Facebook по ключевым хэшам, но независимо от того, что я делаю, ключевой хэш, который я генерирую, всегда отличается от того, который отображается на моем устройстве.
Я на Mac, использую Visual Studio для Mac7,5.Сначала я попытался сгенерировать хеш, используя ~/.android/debug.keystore
, но безуспешно.В ходе дальнейших исследований я обнаружил, что Xamarin фактически использует другое хранилище debug.keystore, расположенное в ~/.local/share/Xamarin/Mono for Android/debug.keystore
, также с той же ошибкой.Еще одна любопытная вещь, которую я заметил, это то, что если я использую другой пароль, он дает мне другие хэши.
В поисках немного больше, я обнаружил, что есть способ генерировать ключи программно с использованием класса PackageManager
но, так как я нахожусь в Ксамарине, мне трудно понять это.Я не могу найти Xamarin-эквивалент PackageManager.GET_SIGNATURES.
Теперь по вопросам:
Почему хэш моего устройства отличается от тех, которые я генерирую на моем Mac?Из документов Facebook я понял, что если файлы хранилища ключей, используемые для создания хеша и создания моего приложения, совпадают, то ключ хеша должен быть одинаковым.
Может быть, я использую неправильный пароль?Если так, как я могу изменить его или найти правильный?
Может быть, Visual Studio использует третье хранилище ключей, о котором я не знаю?Если да, как я могу узнать, какой файл хранилища ключей используется?
Как заставить класс PackageManager работать в Xamarin?Я смотрел на их документы , но я действительно не мог понять это.
Спасибо!
РЕДАКТИРОВАТЬ
Я действительно использовал неправильный пароль.Что мне помогло, так это использование хранилища ключей, расположенного по адресу ~/.local/share/Xamarin/Mono for Android/debug.keystore
с паролем android