참고 : https://medium.com/mobile-app-development-publication/three-important-yet-unbeknown-android-app-launcher-behaviors-f8b6e59d5340

원인

AndroidManifest에서 android.intent.action.MAIN action과 android.intent.category.LAUNCHER category가 있는 <intent-filter><data> 태그를 추가하는 경우 앱 아이콘이 사라집니다.

해결책

해당 Activity에 <data> 태그가 필요한 경우, 아래와 같이 <intent-filter>를 분리해서 2개로 나눠 쓰면 해결됩니다.

Before : 앱 아이콘이 사라지는 경우 예시

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
		<!-- 문제가 되는 부분 : MAIN action과 LAUNCHER category가 있는 위치에 <data>태그를 같이 넣음 -->
        <data android:scheme="http" 
             android:host="www.example.com" 
             android:pathPrefix="/gizmos" />
    </intent-filter>
</activity>

After : 앱 아이콘도 정상적으로 나타남

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
	<!-- 해결 : MAIN action과 LAUNCHER category를 <data> 태그와 분리해서 사용 -->
    <intent-filter>
       <action android:name="android.intent.action.VIEW" />
       <category android:name="android.intent.category.DEFAULT" />
       <category android:name="android.intent.category.BROWSABLE" />
       <data android:scheme="http" 
             android:host="www.example.com"        
             android:pathPrefix="/gizmos" />
    </intent-filter>
</activity>
profile
Flutter 메인의 풀스택 개발자 / 한양대 컴퓨터소프트웨어학과, HUHS의 화석

0개의 댓글