안드로이드에서 어플리케이션을 설치할 때, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE라는 에러가 나면서 실패할 때가 있다.
원인은 간단한데, AndroidManifest.xml안의 sharedUserId 때문이다. Android 사이트의 설명에 따르면, sharedUserId란 리눅스의 user ID와 유사한 것이라 한다. 개발자가 값을 따로 설정하지 않는다면 유니크한 값을 안드로이드에서 설정해준다. 이 값을 아래와 같이 따로 설정했다면 같은 user id를 가진 앱 들은 사인도 같은 keystore로 해야 데이터를 공유 (원한다면 같은 프로세스 내 실행도)할 수 있다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.app" android:sharedUserId="com.example.android" android:versionCode="1" android:versionName="1.00.00">
위의 에러 메시지는 user ID를 가진 어플리케이션이 다른 signing key로 사인되었을 경우 보여주는 메시지이다. 모르고 넣은 것이라면 AndroidManifest.xml 안의 shardUserId 파라미터를 지우면 되고, 필요해서 넣은 것이라면 같은 sharedUserId를 가진 앱들은 같은 keystore로 사인해서 다시 설치를 시도하면 된다.
아..덕분에 깨끗하게 해결되네요!
감탄하고 갑니다.
정말 감사드립니다.
도움이 되셨다니 기쁩니다 🙂