Skip to content

Instantly share code, notes, and snippets.

@kinifi
Created October 19, 2017 23:25
Show Gist options
  • Save kinifi/1cc46b1bfb37219394e0b61a26dd6d4b to your computer and use it in GitHub Desktop.
Save kinifi/1cc46b1bfb37219394e0b61a26dd6d4b to your computer and use it in GitHub Desktop.
Adds iOS Frameworks to Xcode project (on each Unity build).
//
// http://www.twitter.com/kinifi
//
using System.IO;
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
public class BuildPostProcessor
{
[PostProcessBuildAttribute(1)]
public static void OnPostProcessBuild(BuildTarget target, string path)
{
if (target == BuildTarget.iOS)
{
// Read.
string projectPath = PBXProject.GetPBXProjectPath(path);
PBXProject project = new PBXProject();
project.ReadFromString(File.ReadAllText(projectPath));
string targetName = PBXProject.GetUnityTargetName();
string projectTarget = project.TargetGuidByName(targetName);
AddFrameworks(project, projectTarget);
// Write.
File.WriteAllText(projectPath, project.WriteToString());
}
}
static void AddFrameworks(PBXProject project, string target)
{
// Framework are added here
// Example: project.AddFrameworkToProject(target, "MessageUI.framework", false);
// Add `-ObjC` to "Other Linker Flags".
project.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment