0

Я унаследовал приложение для Android, которое первоначально было передано внешнему разработчику, исправлено, и теперь я готов отправить новое обновление в магазин воспроизведения. Затем я узнал, что мне нужен специальный ключ для подписки, чтобы обновить приложение, которое мы получили от предыдущего разработчика. Итак, я сгенерировал подписанный выпуск apk с помощью ключа, который я получил и попытался загрузить. После загрузки я получаю всплывающее окно с ошибкой. see screenshot for detailsМогут ли Android-сертификаты повреждаться? Я не могу загрузить новое обновление App Store Store

enter image description here

Мы попросили разработчиков, если он был уверен, что был ключ он использовал, и он клянется, что он искал везде, и его единственный ключ он использовал. Хотя, я думаю, он, возможно, изменил пароль для этого ..., не совсем уверен.

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

Некоторые вещи, которые я заметил: когда я получил приложение, в манифесте приложения было указано имя пакета без комментариев и новое имя нашей компании. Первоначальный был назван компанией аутсорсинга вместо «примера» бита «com.example.appname», поэтому они должны были изменить имя пакета при создании apk release. Я понятия не имею, означает ли это что-либо из-за того, что имя пакета одинаково, когда я все это в apk ... Просто магазин утверждает, что приложение было подписано с другим сертификатом, и предыдущий разработчик клянется, что он использовал то же, что он послал нам.

Может ли кто-нибудь сказать мне, можно ли что-либо сделать, чтобы сделать эту работу, или мы полностью обречены и вам придется загружать новое приложение в магазин?

Спасибо за любую помощь.

Обновление: Потому что люди спрашивают о packagename, позвольте мне уточнить. Когда я получил приложение, все пакиады в манифесте были не такими же, как у Playstore ... поэтому я реорганизовал весь пакет приложений, чтобы отразить имя пакета play-store ..., а затем я представил продукт ароматизаторы, потому что нам нужно новое приложение с различными брендинга, который похож на оригинал ... так что я закончил со структурой, как это:

defaultConfig { 
    applicationId "PlayStorePackagName" 
} 
productFlavors { 
    brand1 { 
     applicationId "PlayStorePackagName" //<- for original app 
    } 
    new_brand{ 
     applicationId "NewPlayStorePackagName" //<- for new app. 
    } 
} 

в этом случае следует не важно имя, что пакет в манифесте, не так ли?

+0

Сменив имя пакета, вам нужно будет загрузить новый APK с новым пакетом. Сожалею. –

+0

Но я не изменил название пакета ... Только внутри ... Это имеет значение? –

+0

Ваше приложение указано с помощью вашего имени пакета. Поскольку вы изменили его, оно рассматривается как новое приложение. –

ответ

0

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

Сертификат проверка

Однако вы можете проверить информацию, хранящуюся в вашем доступном хранилище ключей и сравнить его с текущим магазином APK. Для примера:

jarsigner -verify -verbose -certs yourapp.apk 

Вы можете получить более подробную информацию с keytool. См. this Тема для получения дополнительной информации.

Имя пакета

Вы можете проверить правильное название пакета для вашего приложения при просмотре вашего приложения в игровом магазине.

Пример для Google Plus: https://play.google.com/store/apps/details?id=com.google.android.apps.plus

id=com.google.android.apps.plus это имя пакета в этом случае. Это не может быть изменен для вашего приложения

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

+0

Это, вероятно, самый правильный ответ. Я честно считаю, что ключ, который мы получили, был либо поврежден, либо неправильный, потому что не имеет смысла, что отпечаток пальца случайно изменится, когда я уверен, что использовал правильное название пакета. Я имею в виду, что весь смысл отпечатка пальца в том, что он остается прежним, если вы используете ту же конфигурацию, нет? В любом случае мы загрузили новое приложение. На этот раз мы испекли ключ :) –

0

Из docs:

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

Используйте следующий контрольный список, чтобы убедиться, что ваш новый APK готов обновить существующие пользователь:

  • Имя пакета обновленного APK должно быть таким же, как в текущей версии.
  • Код версии должен быть больше текущей версии. Подробнее об управлении версиями приложений ...
  • Обновленный APK должен быть подписан с той же подписью, что и текущая версия.

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

$ jarsigner -verify -verbose -certs my_application.apk

Если результаты совпадают, вы используете тот же ключ и готовы к продолжению. Если результаты разные, вам нужно будет переписать APK с помощью правильного ключа.

Вы говорите, что:

значительные изменения, которые я представил в приложение изменяет пакет в очевидном

Так что это является источником проблемы. Вам нужно будет использовать одно и то же имя пакета.

+0

Но имя пакета androidmanifest всегда было «неправильным» ... как в .. это не то же самое, что и в игровом магазине. Так что я изменил имя в манифесте, чтобы отразить один в playstore, а также настроить productflavours, чтобы перезаписать имя пакета: 'defaultConfig { \t ApplicationID "originalPlayStorePackagName" } productFlavors { \t brand1 { \t \t ApplicationID "originalPlayStorePackagName" \t} \t new_brand { \t \t ApplicationID "NewPlayStorePackagName" \t} } '..... так что это не возможно overwr ite th packagename? o.o –