AndroidManifest.xml Nedir ve Nasıl Doğru Yapılandırılır

Kerem Aydın·7 Temmuz 2026·⏱3 dk

AndroidManifest.xml, uygulamanın zorunlu XML kimlik dosyasıdır: paket adı, bileşenler (Activity, Service, BroadcastReceiver, ContentProvider), çalışma zamanı izinleri ve intent filtreleri burada belirtilir. Doğru yapılandırılmamış bir manifest dosyası olmadan uygulama çalışmayabilir veya yayınlama sırasında reddedilebilir.

Kısaca: AndroidManifest.xml Neden Gereklidir?

Manifest dosyası, Android sistemine uygulama ile nasıl etkileşime girileceğini bildirir:

  • hangi ekranların mevcut olduğu ve hangisinin başlatıcı (launcher) olduğu;
  • hangi arka plan servislerinin ve veri sağlayıcılarının bulunduğu;
  • uygulamanın hangi izinleri talep ettiği;
  • hangi harici çağrıları (deep links, paylaşım intent'leri) işlediği;
  • meta veriler: minSdkVersion/targetSdkVersion, simge, tema.

bölümleri etiketinden önce gelmelidir. Yalnızca gerekli olan izinleri belirtin; gereksiz izinler Google Play'de reddedilme riskini artırır.

Manifest Dosyasını Adım Adım Nasıl Yapılandırılır

  1. Temel Şablon Minimal yapı örneği:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name">
        <activity android:name=".MainActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>
  1. Activity ve Intent Filtreleri
  • Intent filtresi içeren bileşenler için android:exported="true|false" ayarı zorunludur (Android 12+).
  • Deep link'ler için gerekirse ve android:autoVerify="true" ekleyin.
  1. İzinler ve Çalışma Zamanı
  • Tehlikeli izinleri manifest dosyasında belirtin, ancak bunları kod içinde (çalışma zamanında) talep edin — özellikle Android 6+ için.
  • Android 13+ üzerindeki bildirimler için POST_NOTIFICATIONS iznini ekleyin ve çalışma zamanında talep edin.
  1. Sağlayıcılar ve Dosya Erişimi
  • Dosya paylaşımı için FileProvider kullanın ve doğru authorities değeriyle tanımlayın.
  • Scoped storage, dosya paylaşıyorsanız doğru yapılandırma ve manifest sağlayıcısı gerektirir.

Gelişmiş Ayarlar ve Güvenlik

  • targetSdkVersion değerini Gradle'da ayarlayın ve platform değişikliklerini takip edin; yeni politikalar izin davranışlarını etkiler.
  • Uygulamanın etkileşime girdiği paketleri listelemek için Android 11+ ile birlikte kullanın.
  • Servisler için: çağrıları kısıtlamak gerekiyorsa android:exported ve permission değerlerini açıkça belirtin.
  • Yayın sürümü için izinleri minimize edin ve derlemede obfuscation (ProGuard/R8) özelliğini etkinleştirin.

Açık bir gereklilik olmadan SMS, mikrofon veya kişilere erişim izni eklemeyin; bu, mağazada engellenme riskini ve kullanıcıların reddetme olasılığını artırır.

Sık Karşılaşılan Hatalar

  • Başlangıçta çökme: Intent filtresi olan Activity'de android:exported="true" unutuldu (Android 12+).
  • "Uygulama yüklenmedi": Paket çakışması veya güncelleme sırasında hatalı imza.
  • Ağ erişimi yok: android.permission.INTERNET unutuldu.
  • Simge değişmiyor: Derleme önbelleği — Clean/Rebuild işlemi yapın.

Uygulamayı farklı API seviyelerinde (örneğin 21, 30, 33) test edin ve sorunları tespit etmek için Lint/ADB kullanın.

SSS

  • Flutter/React Native'de manifest dosyasını düzenlemek gerekir mi? Manifest dosyası şablon tarafından oluşturulur, ancak izinler veya intent filtreleri eklemek için android/app/src/main/AndroidManifest.xml dosyasında manuel düzenlemeler yapılır.

  • minSdk ve targetSdk nerede belirtilir? build.gradle (modül) dosyasında, manifest dosyasının kendisinde değil; manifest meta veriler içerebilir ancak asıl kaynak Gradle'dır.

  • Google Play'de gereksiz izinler nedeniyle reddedilirse ne yapılmalı? Manifest dosyasından gereksiz öğelerini kaldırın, erişimin neden gerekli olduğunu formda açıklayın veya alternatif yaklaşımlar kullanın (örneğin, yalnızca kullanım anında isteme).

Sonuç: AndroidManifest.xml dosyasındaki bileşenleri ve izinleri dikkatlice tanımlayın, android:exported ayarlarını ve çalışma zamanı taleplerini kontrol edin; bu, başlatma sırasında hataları azaltacak ve moderasyon sürecini hızlandıracaktır.