Skip to main content

How to configure SDK through pod in unity

1. Set up CocoaPods on Mac#

Official website: https://cocoapods.org

2. Use PlayerServicesResolver in Unity projects#

PlayerServicesResolver official project address: https://github.com/googlesamples/unity-jar-resolver

You can conveniently download the external-dependency-manager-latest.unitypackage from the project repository. Then import it into your project.

3. Automatically convert configurations using a tool#

Since configuring pods in PlayerServicesResolver requires a specific XML format different from regular pod configurations, we provide an automatic conversion tool. Download link: https://github.com/tradplus/iOS_unity_pod_tool

If you are using Verve, Smaato, Ogury, or Baidu, When using this tool, you need to disable the "Always add the main target to Podfile" setting in PlayerServicesResolver.

  • Assets > External Dependency Manager > iOS Resolver > Settings

  • Disable the "Always add the main target to Podfile" setting in PlayerServicesResolver.

Instructions for use#

  • 2.Add the configurations to the TPPods file.

  • 3.Place TPPods, ParsePod.sh, TPPodSet.cs in the same directory.

  • 4.Execute ParsePod.sh in the Terminal on Mac. This will automatically generate and update the content of TPPodsDependencies.xml and TPPodSet.cs.

  • 5.Place the TPPodsDependencies.xml and TPPodSet.cs files in the Assets/ExternalDependencyManager/Editor folder of the Unity project.

Note: If you are not using Verve, Smaato, Ogury, or Baidu, and do not need other features in TPPodSet.cs, you only need to include TPPodsDependencies.xml.

This way, when exporting the Xcode project from the Unity project, the relevant SDKs can be automatically loaded through CocoaPods.

Instructions for TPPodSet.cs#

  • TPPodSet.cs also includes adding content to Info.plist and disabling bitcode features. Please use them according to your actual needs.

  • TPPodSet.cs handles third-party dynamic library configuration issues.

Instructions for special sources:

  • Due to being a dynamic library, Kuaishou SDK cannot be directly configured in UnityFramework.

  • Configuring Baidu in UnityFramework will cause the SDK to be unable to find Baidu's resource package.

  • Verve, Smaato, Ogury, Amazon SDKs contain dynamic libraries that cannot be directly configured in UnityFramework.

  • Starting from Fyber v8.2.0, third-party libraries are changed to dynamic libraries and cannot be directly configured in UnityFramework.

  • Start.io v4.9.1, third-party libraries are changed to dynamic libraries and cannot be directly configured in UnityFramework.

  • Starting from Miao v2.0.0 third-party libraries are changed to dynamic libraries and cannot be directly configured in UnityFramework.

  • Starting from Tapjoy v13.3.0 third-party libraries are changed to dynamic libraries and cannot be directly configured in UnityFramework.