Apk 패키지 충돌 - Apk paekiji chungdol

최근들어서 패키지 파싱문제로 앱 설치가 되지 않는 등의 문제가 많이 발생하고 있어서 확인해 본 결과로는 안드로이드 11버전 이상부터 보안상의 문제로 외부 apk 설치가 되지 않고 있었습니다

Apk 패키지 충돌 - Apk paekiji chungdol

해결방법으로는 지금으로써는 안드로이드 버전 다운그레이드를 하거나 구버전의 폰을 이용하여 하는 방법이 있는데

다운그레이드는 다소 설정이 복잡하기 때문에 구버전의 폰을 이용하시는 것을 권장드립니다^^

(친절해님의 해결방법)

APK Editor 실행 -> Select APK file -> search ->  설치할 APK 파일 선택 -> Common Edit -> Install Location은 Internal Only, Target SDK Version을 28로 설정 -> save -> 바로 install 하거나 내파일 실행하시고 ApkEditor 폴더에 tmp 폴더 들어가시면 작업하신 APK 파일 찾아서 실행

APK Editor 다운로드 링크

https://apk-editor.kr.uptodown.com/android 

 스마트폰에 앱을 설치하려고 하는데 "앱이 설치되지 않았습니다."라는 메시지와 함께 설치가 되지 않는 경우가 있다.

 주로 apk로 되어있는 파일 형태의 앱을 설치할 때 이런 메시지가 발생하는 경우가 많은데 딱히 불법적인 앱이 아님에도 메시지가 나타나면서 설치가 되지 않는다면 다음의 설정을 변경하고 다시 설치를 시도해보도록 하자.

앱이 설치되지 않았습니다. 오류 해결 방법

1. Play 프로텍트 해제.

 PLAY 프로텍트는 구글 플레이 스토어의 보안 관련 기능으로 앱의 설치가 되지 않을 때 확인해 봐야 하는 기능 중 하나이다.

 구글 플레이의 오른쪽 상단의 프로필을 클릭하여 메뉴를 열고 [Play 프로텍트] 터치.

Apk 패키지 충돌 - Apk paekiji chungdol

 Play 프로텍트 화면이 나타나면 오른쪽 상단의 [톱니바퀴]를 터치하고 설정 화면에서 [Play 프로텍트로 앱 검사] 설정을 해제하면 된다.

Apk 패키지 충돌 - Apk paekiji chungdol

2. 출처를 알 수 없는 앱 허용.

 apk 파일 형태로 된 앱을 설치하는 경우라면 출처를 알 수 없는 앱도 설치가 가능하도록 허용해줘야 한다.

 해당 설정은 스마트폰과 안드로이드 버전에 따라 메뉴가 조금씩 다르지만 보통은 안드로이드 설정에서 보안과 관련된 메뉴에서 찾을 수 있다.

 (찾지 못하겠다면 검색을 통해 [출처를 알수 없는 앱]을 검색해도 된다.)

Apk 패키지 충돌 - Apk paekiji chungdol

 앱의 목록이 나타나면 보통은 [내 파일] 앱을 허용해주면 되며, 상황에 따라서는 삼성 인터넷이나 크롬 같은 apk파일을 다운로드한 브라우저 앱까지 허용해주면 된다.

Apk 패키지 충돌 - Apk paekiji chungdol

3. 저장공간 데이터, 캐시 삭제.

 위 두가지 설정을 했음에도 여전히 설치가 되지 않는다면 Play 스토어의 데이터와 캐시를 삭제하고 파일을 다시 다운로드한 뒤 설치를 시도해보도록 하자.

 Play 캐시의 삭제는 안드로이드 설정의 애플리케이션에서 Google Play 스토어로 이동.

Apk 패키지 충돌 - Apk paekiji chungdol

 사용량에서 저장공간을 선택하고 데이터와 캐시를 삭제하면 된다.

Apk 패키지 충돌 - Apk paekiji chungdol

 삭제를 완료했다면 apk 파일을 삭제하고 다시 다운로드하여 설치를 시도해보도록 하자.

그 외 내용

 위 설정을 모두 했음에도 설치가 되지 않는다면 루팅이 필요한 앱일 수도 있다.

 이런 경우에는 일반적인 스마트폰에는 설치가 되지 않으니 그냥 포기하는 것이 좋으며 정 사용하겠다면 루팅을 해야 하는데 루팅을 하게 되면 생각지도 못한 다른 문제가 발생할 수도 있으니 기타 다른 문제가 발생 시 해결 능력이 되지 않는 다면 루팅은 그다지 추천하지 않는다.

Apk 패키지 충돌 - Apk paekiji chungdol

안녕하세요. Base Of Coding입니다.

하.. 아직 1년차도 안된 신입이다 보니.. 잘 모르고 개발하다보니 이런 경우가 있었네요.

안드로이드를 배웠지만, 프로바이더 개념 자체는 잘 모르고 있었던터라.. 이런 실수를ㅠㅠ

2018/08/16 - [BaseOfCoding/Issue 문제 및 해결] - Native Share 에셋 Provider 문제.

Native Share 에셋 Provider 문제.

이미지 또는 동영상을 공유하기 위해, Native Share를 쓰고 있는 중이다. 기능구현이 완료되어, 기능구현에 대한 것들을 영상으로 남기기 위해, 모비즌으로 녹화를 하던 중. 피드는 공유가 되지만, 앨범 탭에 있..

includecoding.tistory.com

2018/09/11 - [BaseOfCoding/Issue 문제 및 해결] - Native Share 에셋 Provider 추가 방법

Native Share 에셋 Provider 추가 방법

2018/08/16 - [Programming/Issue 문제 및 해결] - [ 2018.08.16] Issue 문제 및 해결, Native Share Provider 문제. 리팩토링을 하다가 다시 공유가 안되는 부분을 인지하고, 아 Provider를 연결을 안해줬지. 라..

includecoding.tistory.com

이 두개의 글에 보면, 해당 개발자의 GitHub가 있습니다.

하지만 저도 모르게 지나쳤던 부분이..

// 원본

<provider android:name="com.yasirkula.unity.UnitySSContentProvider" 
android:authorities="MY_UNIQUE_AUTHORITY" 
android:exported="false" 
android:grantUriPermissions="true" />

// 수정

<provider android:name="com.yasirkula.unity.UnitySSContentProvider" 
android:authorities="BASE OF CODING " 
android:exported="false" 
android:grantUriPermissions="true" />

android:authorities 이 부분이 만약에 같다면, 같은 부분의 앱끼리 서로 충돌이 일어났다고 표기가 되어있네요. Build And Run을 하고

디버깅 결과를 보고 알아차렸습니다. 그리고 다시 GitHub에 갔더니, 저 부분을 고쳐달라고 되어있네요.

CommandInvokationFailure: Unable to install APK to device. Please make sure the Android SDK is installed and is properly configured in the Editor. See the Console for more details. 
/Users/유저명/Library/Android/sdk/platform-tools/adb -s "ce0616060dc3e01305" install -r "/Users/유저명/Desktop/폴더1/폴더1의 하위폴더/그 밑에 하위폴더/앱이름.apk"

stderr[
adb: failed to install /Users/유저명/Desktop/폴더1/폴더1의 하위폴더/그리고 하위폴더/이름.apk: 
Failure [INSTALL_FAILED_CONFLICTING_PROVIDER: Package couldn't be installed in /data/app/패키지명-LoI1QJZn9I-QoqasZWY_9Q==: Can't install because provider name MY_UNIQUE_AUTHORITY (in package 패키지명) is already used by 다른앱 패키지명]
]
stdout[

]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.ADB.RunInternal (System.String[] command, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.ADB.Run (System.String[] command, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidDevice.Exec (System.String[] command, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidDevice.Install (System.String apkfile, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit)
UnityEditor.Android.AndroidDeploymentTargetsExtension+<UploadAPK>c__AnonStorey2.<>m__0 ()
UnityEditor.Android.AndroidDeploymentTargetsExtension.UploadAPK (UnityEditor.BuildReporting.BuildReport buildReport, UnityEditor.Android.AndroidDevice device, UnityEditor.ProgressTaskManager taskManager)
UnityEditor.Android.AndroidDeploymentTargetsExtension+<LaunchBuildOnTarget>c__AnonStorey1.<>m__0 ()
UnityEditor.ProgressTaskManager.Run () (at /Users/builduser/buildslave/unity/build/Editor/Mono/Utils/ProgressBarUtils.cs:71)
UnityEditor.Android.AndroidDeploymentTargetsExtension.LaunchBuildOnTarget (UnityEditor.BuildReporting.BuildReport buildReport, DeploymentTargetId targetId, UnityEditor.ProgressHandler progressHandler)
UnityEditor.DeploymentTargets.DeploymentTargetManager.LaunchBuildOnTarget (BuildTargetGroup targetGroup, UnityEditor.BuildReporting.BuildReport buildReport, DeploymentTargetId targetId, UnityEditor.ProgressHandler progressHandler) (at /Users/builduser/buildslave/unity/build/Editor/Mono/DeploymentTargets/DeploymentTargetManager.cs:36)
UnityEditor.PostprocessBuildPlayer+<Launch>c__AnonStorey0.<>m__1 () (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:181)
UnityEditor.ProgressTaskManager.Run () (at /Users/builduser/buildslave/unity/build/Editor/Mono/Utils/ProgressBarUtils.cs:71)
UnityEditor.PostprocessBuildPlayer.Launch (BuildTargetGroup targetGroup, BuildTarget buildTarget, System.String path, System.String productName, BuildOptions options, UnityEditor.BuildReporting.BuildReport buildReport) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:197)
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()

만약에 저 처럼 플레이스토어에서 충돌이 일어나서 안되는 경우라면.. 꼭 한 개의 앱을 설치 후 다른 하나의 앱을 Build And Run을 이용하여 설치 한 다음 문제점을 파악하세요ㅠㅠ

Provider 조심하세요~!

지금까지 Base Of Coding이였습니다.