Android & iOS Resolver Settings

Overview

The External Dependency Manager in Unity includes resolver settings for both Android and iOS platforms. These settings are crucial for integrating third-party SDKs by automatically managing and adding the required dependencies to the appropriate build files—Gradle for Android and Xcode projects for iOS. Proper configuration of these settings ensures smooth and error-free builds across both platforms, minimizing potential issues during the development process.


Setup Wizard - “Fix It”

  • Pressing the “Fix It” button under the issue item in the Setup Wizard will :
    • set the values as shown below, A short description for each setting has been provided below for better understanding.

Android Resolver Settings

  • EnableAutoResolution (Set to false): Disables the automatic resolution of dependencies. This provides manual control over when dependency resolution occurs, preventing unintended changes on any new SDK import / removal.
  • UseGradleDaemon (Set to false): Disables the Gradle Daemon, which can help avoid issues with long-running Gradle processes that might lead to unpredictable builds or resource locking.
  • AutoResolveOnBuild (Set to true): Enables automatic dependency resolution during the build process, ensuring that all necessary dependencies are included before the build starts.
  • InstallAndroidPackages (Set to true): Ensures that required Android packages are automatically installed during the resolution process, avoiding missing dependencies during runtime.
  • ExplodeAars (Set to true): Enables the extraction of AAR (Android Archive) files, which is useful for modifying or inspecting their contents during the build process.
  • PatchAndroidManifest (Set to true): Automatically patches the AndroidManifest.xml file to include necessary permissions and configurations required by the integrated SDKs.
  • PatchMainTemplateGradle (Set to true): Ensures that the main Gradle build script template is patched with the necessary dependency configurations, which is crucial for maintaining compatibility with third-party libraries.
  • PatchPropertiesTemplateGradle (Set to true): Ensures that the Gradle properties template is patched, which is important for setting up specific build properties needed by some SDKs.
  • PatchSettingsTemplateGradle (Set to true): Ensures that the settings Gradle template is patched, which might be necessary for multi-project builds or specific custom configurations.
  • UseFullCustomMavenRepoPathWhenNotExport (Set to false): Disables the use of full custom Maven repository paths when the project is not being exported, simplifying the build configuration.
  • UseFullCustomMavenRepoPathWhenExport (Set to false): Disables the use of full custom Maven repository paths even when the project is being exported, which might be done to maintain a consistent build environment.
  • UseJetifier (Set to true): Enables the Jetifier tool, which converts old Android Support Library references to their equivalent AndroidX references, ensuring compatibility with modern Android libraries.
  • AutoResolutionDisabledWarning (Set to false): Disables warnings related to automatic resolution being disabled, reducing unnecessary alerts during the development process.
  • PromptBeforeAutoResolution (Set to true): Ensures that a prompt is shown before automatically resolving dependencies, providing developers with an opportunity to review and confirm changes before they are applied.

iOS Resolver Settings

  • CocoapodsIntegrationMethodPref (Set to 2): Sets the CocoaPods integration method to a specific mode (typically via workspace), ensuring proper management and integration of iOS dependencies through CocoaPods.
  • PodfileGenerationEnabled (Set to true): Enables the automatic generation of a Podfile, which is necessary for managing iOS dependencies via CocoaPods, streamlining the dependency management process.
  • PodToolExecutionViaShellEnabled (Set to true): Allows the execution of CocoaPods tools via the shell, which is often required for compatibility with various build environments.
  • PodToolShellExecutionSetLang (Set to true): Ensures that the language environment is correctly set when executing CocoaPods tools via the shell, avoiding potential issues related to locale or environment settings.
  • AutoPodToolInstallInEditorEnabled (Set to true): Automatically installs CocoaPods tools if they are not already present, ensuring that the development environment is always correctly set up.
  • UpgradeToWorkspaceWarningDisabled (Set to true): Disables warnings related to upgrading to a workspace, which can help streamline the build process by avoiding unnecessary prompts.
  • SkipPodInstallWhenUsingWorkspaceIntegration (Set to false): Ensures that pod install is run even when using workspace integration, guaranteeing that all dependencies are properly installed and integrated.
  • PodfileAddUseFrameworks (Set to true): Adds the use_frameworks! directive to the Podfile, which is required for integrating dynamic frameworks, ensuring compatibility with certain third-party SDKs.
  • PodfileStaticLinkFrameworks (Set to false): Disables static linking of frameworks, which is important for maintaining compatibility with dynamic frameworks and avoiding potential linkage issues.
  • SwiftFrameworkSupportWorkaroundEnabled (Set to true): Enables a workaround for Swift framework support, ensuring that Swift-based dependencies are correctly integrated and functional.
  • SwiftLanguageVersion (Set to "5.0"): Specifies the Swift language version to be used, ensuring that the build environment is compatible with Swift 5.0, which is often required by modern Swift-based libraries.
  • PodfileAlwaysAddMainTarget (Set to true): Ensures that the main target is always added to the Podfile, which is necessary for correctly configuring the primary build target.
  • PodfileAllowPodsInMultipleTargets (Set to true): Allows CocoaPods to be integrated into multiple targets, which is important for projects with multiple app targets, ensuring that dependencies are correctly managed across all targets.