Building for iOS/iPadOS
This guide will walk you through the process of installing Convai-powered Unity applications on iOS and iPadOS devices.
Prerequisites
Before you begin, make sure you have the following:
- Unity 2022.3 or later 
- Xcode (latest version recommended) 
- Apple Developer account 
- Project with Convai's Unity SDK integrated and running properly 
- MacBook for building and deploying to iOS/iPadOS 
Step 1: Prepare Your Unity Project
- Open your Convai-powered Unity project. 

Step 2: Configure Build Settings
- In Unity, go to - File→- Build Settings.
- Select - iOSas the target platform.
- Click - Switch Platformif it's not already selected.
- Check the - Development Buildoption for testing purposes.

Step 3: Manually add Required Files
Add link.xml
- Create a new file named - link.xmlin your project's- Assetsfolder.
- Add the following content to the file: 
<linker>
  <assembly fullname="UnityEngine">
    <type fullname="UnityEngine.Application" preserve="fields">
      <property name="platform"/>
    </type>
  </assembly>
</linker>
This file prevents potential FileNotFoundException errors related to the libgrpc_csharp_ext.x64.dylib file.
Add BuildIos.cs Script
- Create a new C# script in - Assets/Convai/Scriptsnamed- iOSBuild.cs.
- Add the following content to the script: 
#if UNITY_EDITOR && UNITY_IOS
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using UnityEngine;
public class iOSBuild : MonoBehaviour
{
    [PostProcessBuild]
    public static void OnPostProcessBuild(BuildTarget target, string path)
    {
        string projectPath = PBXProject.GetPBXProjectPath(path);
        PBXProject project = new PBXProject();
        project.ReadFromString(File.ReadAllText(projectPath));
#if UNITY_2019_3_OR_NEWER
        string targetGuid = project.GetUnityFrameworkTargetGuid();
#else
        string targetGuid = project.TargetGuidByName(PBXProject.GetUnityTargetName());
#endif
        project.AddFrameworkToProject(targetGuid, "libz.tbd", false);
        project.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");
        File.WriteAllText(projectPath, project.WriteToString());
    }
}
#endifStep 4: Install required gRPC dlls for iOS:
- Go to Convai -> Custom Package Installer 
- Click on - Install iOS Build Package
- Attach the script - iOSBuild.csto any GameObject in your scene.


Step 5: Build the Xcode Project
- In Unity, go to - File→- Build Settings.
- Click - Buildand choose a location to save your Xcode project.
- Wait for Unity to generate the Xcode project. 
Step 6: Configure and Build in Xcode
- Open the generated Xcode project. 
- In Xcode, select your project in the navigator. 
- Select your target under the "TARGETS" section. 
- Go to the "Signing & Capabilities" tab. 
- Ensure that "Automatically manage signing" is checked. 
- Select your Team from the dropdown (you need an Apple Developer account for this). 
- If needed, change the Bundle Identifier to a unique string. 

Step 7: Build and Run
- Connect your iOS device to your Mac. 
- In Xcode, select your connected device as the build target. 
- Click the "Play" button or press - Cmd + Rto build and run the app on your device.

Troubleshooting
- If you encounter any build errors, ensure all the steps above have been followed correctly. 
- Check that your Apple Developer account has the necessary provisioning profiles and certificates. 
- If you face any GRPC-related issues, verify that the - libgrpc_csharp_ext.aand- libgrpc.afiles are correctly placed in the- Assets/Convai/Plugins/gRPC/Grpc.Core/runtime/iosfolder.

Last updated
Was this helpful?