[Delphi] 안드로이드 인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 업로드 오류 해결

    728x90

    안녕하세요 로로봉입니다.

    프로젝트 진행하는 일이 바빠서 너무 오랫만에 블로그를 쓰게 되었네요.

    블로그 활동도 잠시 못할정도로 바빴는데 이제 조금 시간이 생겼습니다.

    오늘은 안드로이드 앱을 배포하면서 exported 속성을 설정하지 않아서 배포가 되지 않던 문제를 해결해보겠습니다.

    안드로이드 sdk는 지속적으로 업데이트가 되기 때문에 배포할 때 변하는 것들이 많은 것 같습니다.

    물론 ios도 동일하지요. Delphi 에서는 App Bundle로 컴파일 할 수 있도록 지원을 해주고 있습니다.

    기존과 같이 항상 하던 식으로 앱번들 파일을 안드로이드 프로덕션 버전을 만들어 업로드를 하였으나 Android 12 버전 이상 부터는 exported 속성 설정이 필요한 것 같습니다.

    [ 그림 1 : 배포 오류 화면 ]

    위와 같이 android:exported 오류가 발생한다면 아래와 같이 해결이 가능합니다.

    우선 프로젝트 폴더에 있는 AndroidManifest.template.xml 파일을 열어줍니다.

    [ 그림 2 : AndroidManifest.template.xml 파일 ]

    메모장으로 AndroidManifest.template.xml 을 열고 아래와 같이 activity 부분에 android:exported="true"를 추가해줍니다.

    [ 그림 3 : android:exported 설정 ]

    처음에는 exported 설정을 false로 해봤으나 값이 false인 경우 앱 배포 후에 설치가 제대로 안되는 문제가 생겼습니다.

    그래서 true로 추가해주고 프로젝트를 빌드 후 다시 앱 번들 파일을 배포해보았습니다.

    [ 그림 4 : Android 앱 배포 성공 ]

    exported 설정만 true로 해준 뒤 앱 번들 파일을 넣으면 정상적으로 배포가 성공하는 것을 볼 수 있습니다.

    실제 앱 검토 후 배포 후에도 설치도 정상으로 잘 되고 실행에도 문제 없이 잘 되네요.

     

    좋아요 ♥ + 구독 부탁드립니다 : )

    728x90
    반응형

    댓글