안드로이드 SDK 31 로 변경..
카카오 SDK V2로 변경...
다른 SDK 추가 및 변경 작업...
내부 테스트 완료...
끝났다고 씐났는데... 프로덕션 배포요청을 했는데...
거부를 당했다...
아래와 같은 메일을 수신을 받음...
결론적으로는 "QUERY_ALL_PACKAGES 권한 사용을 승인할 수 없습니다." 이게 문제였다
Android 11 이상의 보안정책이 변경되었다고 한다.. 2022년 11월 부로..
https://support.google.com/googleplay/android-developer/answer/10158779?hl=ko
폭넓은 패키지(앱) 가시성(QUERY_ALL_PACKAGES) 권한 사용 - Play Console 고객센터
도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요
support.google.com
기존에는 Manifest.xml 에서 아래와 같이 사용을 하여 앱검토중 반려를 받았다.
<!-- SDK 30 이상부터.. 보안관련으로 심사통과 못함..-->
<!-- 아래 영역을 사용하면 안됨.. -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
현재 운영중인 앱에서는 카드사나 PG사 어플로 결제가 필요하여 따로 설정이 필요했다.
두가지 방법이 있었다.
1. 특정 패키지 이름을 추가 ( <queries>요소에 패키지 정의)
- APP to APP 으로 바로 앱을 실행 시키려면 해당 앱 특정 패키지 이름을 추가해 주면 된다.
<manifest package="com.example.game">
<queries>
<package android:name="com.example.store" />
<package android:name="com.example.services" />
</queries>
...
</manifest>
2. shouldOverrideUrlLoading() 메소드에서 startActivity() 호출 시 App 미설치로 발생하는
ActivityNotFoundException (No Activity found to handle Intent)에 예외처리 로직 추가
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (!URLUtil.isNetworkUrl(url) && !URLUtil.isJavaScriptUrl(url)) {
final Uri uri;
try {
uri = Uri.parse(url);
} catch (Exception e) {
return false;
}
if ("intent".equals(uri.getScheme())) {
return startSchemeIntent(url);
} else {
try {
startActivity(new Intent(Intent.ACTION_VIEW, uri));
return true;
} catch (Exception e) {
return false;
}
}
}
return false;
}
private boolean startSchemeIntent(String url) {
final Intent schemeIntent;
try {
schemeIntent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
} catch (URISyntaxException e) {
return false;
}
try {
startActivity(schemeIntent);
return true;
} catch (ActivityNotFoundException e) {
final String packageName = schemeIntent.getPackage();
if (!TextUtils.isEmpty(packageName)) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageName)));
return true;
}
}
return false;
}
위와 같이 작업을 하여 배포 완료~
올래~
= 참고 사이트 =
- https://developer.android.com/training/package-visibility/declaring?hl=ko
패키지 공개 상태 요구사항 선언 | Android 개발자 | Android Developers
패키지 공개 상태 요구사항 선언 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱을 만들 때는 앱이 상호작용해야 하는 기기의 다른 앱을 고려하는 것이
developer.android.com
- https://codedaeng.tistory.com/6
안드로이드11 패키지 가시성제한 대응
올해 초 새로 출시한 안드로이드 앱에 결제 모듈을 연동한 결제기능이 있다. 그런데 메일이 한통 왔는데 1. 배경 1) 안드로이드 11의 보안 정책 변경 (11월 1일 부) 2) 안드로이드 11 이전 버전 OS에서
codedaeng.tistory.com
웹뷰(WebView)에서 외부 앱 열기 | 토스페이먼츠 개발자센터
브라우저가 아닌 모바일 웹뷰로 결제창을 띄울 때 카드사별 결제 수단을 인증하려면 외부 앱(3rd-party 앱)을 연동해야 합니다. 연동에 필요한 외부 앱 스킴(App URL Scheme)목록과 추가 로직을 살펴보
docs.tosspayments.com
'개발경험 및 메모 > Android' 카테고리의 다른 글
Android 12 (SDK 31) 로 변경 - Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` (0) | 2022.12.23 |
---|---|
Android KAKAO SDK V2 카카오 로그인 (0) | 2022.12.21 |
최근댓글