ساخت یونیتی برای اندروید

ویرایشگر Unity نسخه ای است که روی نسخه خاصی از Gradle قفل شده است. نسخه‌های قبلی Unity Editor از نسخه‌های قبلی Gradle استفاده می‌کنند که با آخرین نسخه Google Mobile Ads سازگار نیست.

جدول زیر حداکثر نسخه افزونه Google Mobile Ads سازگار را برای استفاده بر اساس Unity Editor نشان می دهد:

ویرایشگر یونیتی نسخه افزونه Google Mobile Ads Unity
2023.1 یا بالاتر آخرین
2021.3.41f1 - 2022.3 9.1.0
2021.3.37f1 یا قبل از آن 8.5.3

می‌توانید Gradle را به‌صورت دستی به‌روزرسانی کنید تا از آخرین افزونه Google Mobile Ads Unity، از جمله ویرایشگرهای قدیمی‌تر Unity استفاده کنید. برای ساخت اندروید، نسخه Unity Editor مورد نظر خود را انتخاب کنید:

2023.1 یا بالاتر

پیش نیازها

قبل از ادامه، مطمئن شوید که موارد زیر را دارید:

قالب های سفارشی Gradle را فعال کنید

به Project Settings > Player > Android > Publishing Settings > Build و فعال کردن Custom Main Gradle Template و Custom Gradle Properties Template بروید.

قالب های سفارشی Gradle را فعال کنید

Target API Level 34 را تنظیم کنید

از منوی اصلی Edit > Project Settings > Player > Android > Other Settings را باز کنید و Target API Level را روی API Level 34 یا بالاتر قرار دهید.

سطح API هدف را تنظیم کنید

پروژه اندروید را اجرا کنید

از Android Studio، gradle sync را اجرا کنید و پروژه را اجرا کنید .

2021.3.4f1 - 2022.3

پیش نیازها

قبل از ادامه، مطمئن شوید که موارد زیر را دارید:

قالب های سفارشی Gradle را فعال کنید

به Project Settings > Player > Android > Publishing Settings > Build و فعال کردن Custom Main Gradle Template و Custom Gradle Properties Template بروید.

قالب های سفارشی Gradle را فعال کنید

Target API Level 34 را تنظیم کنید

از منوی اصلی Edit > Project Settings > Player > Android > Other Settings را باز کنید و Target API Level را روی API Level 34 یا بالاتر قرار دهید.

سطح API هدف را تنظیم کنید

صادرات به Android Studio

تنظیمات ساخت اندروید را با انتخاب File (یا Unity Editor در MacOS) > Build Settings تغییر دهید و Export Project را بررسی کنید:

پروژه صادرات

اندروید استودیو را باز کنید

این بخش شامل مراحل انجام شده در Android Studio است.

پیکربندی Gradle JDK را به روز کنید

تنظیمات Gradle را از File (یا Android Studio در MacOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle را باز کنید. منوی کشویی Gradle JDK را پیدا کنید و Gradle JDK را طوری تنظیم کنید که از JDK 17 یا بالاتر استفاده کند.

پیکربندی Gradle JDK را به روز کنید

اگر JDK 17 را نصب نکرده‌اید، گزینه‌های Download JDK را از نوار منو Gradle JDK انتخاب کنید و نسخه سازگار را دانلود کنید. ما فروشنده زمان اجرا JetBrains با پشتیبانی aarch64 را توصیه می کنیم تا با آنچه Android Studio توزیع می کند مطابقت داشته باشد.

build.gradle در سطح پروژه را به روز کنید

نسخه Gradle tools را روی 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 Studio، gradle sync را اجرا کنید و پروژه را اجرا کنید .

2021.3.37f1 - 2019.4

پیش نیازها

قبل از ادامه، مطمئن شوید که موارد زیر را دارید:

قالب های سفارشی Gradle را فعال کنید

به Project Settings > Player > Android > Publishing Settings > Build و فعال کردن Custom Main Gradle Template و Custom Gradle Properties Template بروید.

قالب های سفارشی Gradle را فعال کنید

Target API Level 34 را تنظیم کنید

از منوی اصلی Edit > Project Settings > Player > Android > Other Settings را باز کنید و Target API Level را روی API Level 34 یا بالاتر قرار دهید.

سطح API هدف را تنظیم کنید

صادرات به Android Studio

تنظیمات ساخت اندروید را با انتخاب File (یا Unity Editor در MacOS) > Build Settings تغییر دهید و Export Project را بررسی کنید:

پروژه صادرات

اگر هشداری دریافت کردید که سطح 34 API پلتفرم Android SDK وجود ندارد، گزینه «به‌روزرسانی Android SDK» را انتخاب کنید.

اندروید استودیو را باز کنید

این بخش شامل مراحل انجام شده در Android Studio است.

پیکربندی Gradle JDK را به روز کنید

تنظیمات Gradle را از File (یا Android Studio در MacOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle را باز کنید. منوی کشویی Gradle JDK را پیدا کنید و Gradle JDK را طوری تنظیم کنید که از JDK 17 یا بالاتر استفاده کند.

پیکربندی Gradle JDK را به روز کنید

اگر JDK 17 را نصب نکرده‌اید، گزینه‌های Download JDK را از نوار منو Gradle JDK انتخاب کنید و نسخه سازگار را دانلود کنید. ما فروشنده زمان اجرا JetBrains با پشتیبانی aarch64 را توصیه می کنیم تا با آنچه Android Studio توزیع می کند مطابقت داشته باشد.

build.gradle در سطح پروژه را به روز کنید

نسخه Gradle tools را روی 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 سطح پروژه را به روز کنید.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 Studio، gradle sync را اجرا کنید و پروژه را اجرا کنید .