> For the complete documentation index, see [llms.txt](https://lionstudios.gitbook.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lionstudios.gitbook.io/readme/detected-issues/android-and-ios-resolver-settings.md).

# 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.

<div align="center" data-full-width="false"><img src="/files/luxvlBuvfk5FwsyYB3mL" alt="" width="563"></div>

#### 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.

<div align="center"><img src="/files/hcV35kIwGPk5BkCektcR" alt="" width="563"></div>

#### 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 `True`)**: Enable 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 `False`)**: Prevents the main target from being automatically added to the Podfile. This is useful when the main target should be explicitly managed or excluded, allowing for more granular control over Podfile configuration.
* **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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://lionstudios.gitbook.io/readme/detected-issues/android-and-ios-resolver-settings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
