إنشاء حزمة Unity لنظام التشغيل Android

إنّ إصدار "أداة التعديل في Unity" مرتبط بإصدار معيّن من Gradle. تستخدِم الإصدارات السابقة من Unity Editor إصدارات سابقة من Gradle التي لا تتوافق مع أحدث إصدار من "إعلانات Google على الأجهزة الجوّالة".

يعرض الجدول التالي الحد الأقصى لإصدار المكوّن الإضافي المتوافق من "إعلانات Google على الأجهزة الجوّالة" الذي يمكن استخدامه استنادًا إلى "أداة إنشاء ألعاب Unity":

محرِّر Unity إصدار مكوّن إضافي Unity لإعلانات Google للأجهزة الجوّالة
2023.1 أو إصدار أحدث الأحدث
‎2021.3.41f1 - ‎2022.3 9.1.0
2021.3.37f1 أو إصدار أقدم 8.5.3

يمكنك تعديل Gradle يدويًا لاستخدام أحدث إصدار من مكوّن Unity الإضافي في "إعلانات Google على الأجهزة الجوّالة"، بما في ذلك إصدارات Unity Editors الأقدم. لإنشاء تطبيق Android، اختَر إصدار Unity Editor المفضّل لديك:

المتطلبات الأساسية

قبل المتابعة، تأكَّد من توفّر ما يلي:

تفعيل نماذج Gradle المخصّصة

انتقِل إلى إعدادات المشروع > المشغّل > Android > إعدادات النشر > الإصدار وفعِّل Custom Main Gradle Template وCustom Gradle Properties Template.

تفعيل نماذج Gradle المخصّصة

ضبط مستوى واجهة برمجة التطبيقات المستهدَف على 34

من القائمة الرئيسية، افتح تعديل > إعدادات المشروع > المشغّل > Android > الإعدادات الأخرى واضبط مستوى واجهة برمجة التطبيقات المستهدَف على المستوى 34 لواجهة برمجة التطبيقات أو إصدار أحدث.

ضبط مستوى واجهة برمجة التطبيقات المستهدَف

تشغيل مشروع Android

من "استوديو Android"، شغِّل ميزة "مزامنة Gradle"، ثم شغِّل المشروع.

المتطلبات الأساسية

قبل المتابعة، تأكَّد من توفّر ما يلي:

تفعيل نماذج Gradle المخصّصة

انتقِل إلى إعدادات المشروع > المشغّل > Android > إعدادات النشر > الإصدار وفعِّل Custom Main Gradle Template وCustom Gradle Properties Template.

تفعيل نماذج Gradle المخصّصة

ضبط مستوى واجهة برمجة التطبيقات المستهدَف على 34

من القائمة الرئيسية، افتح تعديل > إعدادات المشروع > المشغّل > Android > الإعدادات الأخرى واضبط مستوى واجهة برمجة التطبيقات المستهدَف على المستوى 34 لواجهة برمجة التطبيقات أو إصدار أحدث.

ضبط مستوى واجهة برمجة التطبيقات المستهدَف

التصدير إلى "استوديو Android"

عدِّل إعدادات إنشاء تطبيق Android من خلال اختيار ملف (أو Unity Editor على نظام التشغيل MacOS) > إعدادات الإنشاء وضع علامة في المربّع بجانب "تصدير المشروع":

تصدير المشروع

افتح "استوديو Android".

يحتوي هذا القسم على الخطوات التي يتم تنفيذها في Android Studio.

تعديل إعدادات Gradle JDK

افتح إعدادات Gradle من ملف (أو Android Studio على نظام التشغيل MacOS) > الإعدادات > الإنشاء > التنفيذ > النشر > أدوات الإنشاء > Gradle. ابحث عن القائمة المنسدلة Gradle JDK واضبط Gradle JDK لاستخدام JDK 17 أو إصدار أحدث.

تعديل إعدادات Gradle JDK

إذا لم يكن لديك JDK 17 مثبّتًا، اختَر خيارات تنزيل JDK من عمود قائمة Gradle JDK ونزِّل إصدارًا متوافقًا. ننصحك باستخدام موفِّر JetBrains runtime الذي يتوافق مع بنية aarch64، وذلك لمطابقة ما يوزّعه "استوديو Android".

تعديل ملف build.gradle على مستوى المشروع

اضبط إصدار أدوات Gradle على 8.1.1 أو إصدار أحدث.


plugins {
    id 'com.android.application' version '8.1.1' apply false
    id 'com.android.library' version '8.1.1' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

تحديث /gradle/gradle-wrapper.properties

اضبط distributionUrl لاستخدام Gradle 8.1.1 أو إصدار أحدث.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

تشغيل مشروع Android

من "استوديو Android"، شغِّل ميزة "مزامنة Gradle"، ثم شغِّل المشروع.

المتطلبات الأساسية

قبل المتابعة، تأكَّد من توفّر ما يلي:

تفعيل نماذج Gradle المخصّصة

انتقِل إلى إعدادات المشروع > المشغّل > Android > إعدادات النشر > الإصدار وفعِّل Custom Main Gradle Template وCustom Gradle Properties Template.

تفعيل نماذج Gradle المخصّصة

ضبط مستوى واجهة برمجة التطبيقات المستهدَف على 34

من القائمة الرئيسية، افتح تعديل > إعدادات المشروع > المشغّل > Android > الإعدادات الأخرى واضبط مستوى واجهة برمجة التطبيقات المستهدَف على المستوى 34 لواجهة برمجة التطبيقات أو إصدار أحدث.

ضبط مستوى واجهة برمجة التطبيقات المستهدَف

التصدير إلى "استوديو Android"

عدِّل إعدادات إنشاء تطبيق Android من خلال اختيار ملف (أو Unity Editor على نظام التشغيل MacOS) > إعدادات الإنشاء وضع علامة في المربّع بجانب "تصدير المشروع":

تصدير المشروع

إذا تلقّيت تحذيرًا بأنّه لا يتوفّر المستوى 34 من واجهة برمجة تطبيقات نظام Android SDK، اختَر "تحديث حزمة تطوير البرامج (SDK) لنظام Android".

افتح "استوديو Android".

يحتوي هذا القسم على الخطوات التي يتم تنفيذها في Android Studio.

تعديل إعدادات Gradle JDK

افتح إعدادات Gradle من ملف (أو Android Studio على نظام التشغيل MacOS) > الإعدادات > الإنشاء > التنفيذ > النشر > أدوات الإنشاء > Gradle. ابحث عن القائمة المنسدلة Gradle JDK واضبط Gradle JDK لاستخدام JDK 17 أو إصدار أحدث.

تعديل إعدادات Gradle JDK

إذا لم يكن لديك JDK 17 مثبّتًا، اختَر خيارات تنزيل JDK من عمود قائمة Gradle JDK ونزِّل إصدارًا متوافقًا. ننصحك باستخدام موفِّر JetBrains runtime الذي يتوافق مع بنية aarch64، وذلك لمطابقة ما يوزّعه "استوديو Android".

تعديل ملف build.gradle على مستوى المشروع

اضبط إصدار أدوات Gradle على 8.1.1 أو إصدار أحدث.


plugins {
    id 'com.android.application' version '8.1.1' apply false
    id 'com.android.library' version '8.1.1' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

تحديث /gradle/gradle-wrapper.properties

اضبط distributionUrl لاستخدام Gradle 8.1.1 أو إصدار أحدث.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

تحديث launcher/build.gradle

  • اضبط سمة namespace باستخدام قيمة سمة package من launcher/AndroidManifest.xml.
  • ضبط sourceCompatibility وtargetCompatibility على Java 17

apply plugin: 'com.android.application'

dependencies {
    implementation project(':unityLibrary')
}

android {
    namespace "com.google.android.gms.example"
    compileSdkVersion 35
    buildToolsVersion '35.0.0'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    defaultConfig {
        minSdkVersion 28
        targetSdkVersion 35
        applicationId 'com.google.android.gms.example'
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
        versionCode 1
        versionName '1.0'
    }

    aaptOptions {
        noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp']
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }

    lintOptions {
        abortOnError false
    }

    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
            jniDebuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
        }
    }

    packagingOptions {
        doNotStrip '*/armeabi-v7a/*.so'
        doNotStrip '*/arm64-v8a/*.so'
        doNotStrip '*/x86/*.so'
        doNotStrip '*/x86_64/*.so'
        jniLibs {
            useLegacyPackaging true
        }
    }

    bundle {
        language {
            enableSplit = false
        }
        density {
            enableSplit = false
        }
        abi {
            enableSplit = true
        }
    }
}

apply from: '../unityLibrary/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'

تعديل settings.gradle على مستوى المشروع

اضبط قسمَي pluginManagement وdependencyResolutionManagement.


pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

include ':launcher', ':unityLibrary'
include 'unityLibrary:GoogleMobileAdsPlugin.androidlib'

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {

        google()
        mavenCentral()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

تعديل unityLibrary/build.gradle

  • ضبط namespace على القيمة "com.unity3d.player"
  • اضبط sourceCompatibility وtargetCompatibility على JavaVersion.VERSION_17.

    apply plugin: 'com.android.library'

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        // Android Resolver Dependencies Start
        implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
        implementation 'com.google.android.gms:play-services-ads:23.6.0'
        implementation 'com.google.android.ump:user-messaging-platform:3.1.0'
        // Android Resolver Dependencies End
        implementation(name: 'googlemobileads-unity', ext:'aar')
        implementation project('GoogleMobileAdsPlugin.androidlib')
    }

    // Android Resolver Exclusions Start
    android {
      packagingOptions {
          exclude ('/lib/armeabi/*' + '*')
          exclude ('/lib/mips/*' + '*')
          exclude ('/lib/mips64/*' + '*')
          exclude ('/lib/x86/*' + '*')
      }
    }
    // Android Resolver Exclusions End

    android {
        namespace "com.unity3d.player"
        compileSdkVersion 34
        buildToolsVersion '30.0.2'

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }

        defaultConfig {
            minSdkVersion 28
            targetSdkVersion 34
            ndk {
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
            }
            versionCode 1
            versionName '1.0'
            consumerProguardFiles 'proguard-unity.txt'
        }

        lintOptions {
            abortOnError false
        }

        aaptOptions {
            ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
        }

        packagingOptions {
            doNotStrip '*/armeabi-v7a/*.so'
            doNotStrip '*/arm64-v8a/*.so'
            doNotStrip '*/x86_64/*.so'
        }
    }


    apply from: 'GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'
    gradle.projectsEvaluated { apply from: 'GoogleMobileAdsPlugin.androidlib/validate_dependencies.gradle' }

تعديل unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle

اضبط السمة namespace على القيمة "com.google.unity.ads".


apply plugin: 'android-library'

dependencies {
    implementation fileTree(dir: 'bin', include: ['.jar'])
    implementation fileTree(dir: 'libs', include: ['.jar'])
}

android {
    namespace "com.google.unity.ads"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            //java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }
    }

    compileSdkVersion 34
    buildToolsVersion '30.0.2'
    defaultConfig {
        targetSdkVersion 31
    }

    lintOptions {
        abortOnError false
    }
}

تشغيل مشروع Android

من "استوديو Android"، شغِّل ميزة "مزامنة Gradle"، ثم شغِّل المشروع.