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 thatpod install
is run even when using workspace integration, guaranteeing that all dependencies are properly installed and integrated. - PodfileAddUseFrameworks (Set to
true
): Adds theuse_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.