You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.1 KiB

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using System.IO;
using System.Collections;
#if UNITY_EDITOR_OSX
using UnityEditor.iOS.Xcode;
public class GrpcBuildPostProcess
{
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
if (buildTarget == BuildTarget.iOS)
{
/* .xcodeproj/project.pbxproj */
//Get path to the PBX project
string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
//Read the pbx project
PBXProject proj = new PBXProject();
proj.ReadFromString(File.ReadAllText(projPath));
//Get the build target
string target = proj.TargetGuidByName("Unity-iPhone");
//set ENABLE_BITCODE to false (this shouldn't be required in Unity 5.2+)
proj.SetBuildProperty(target, "ENABLE_BITCODE", "No");
//Add libz.dylib
string name = proj.AddFile("/usr/lib/libz.dylib", "Frameworks/libz.dylib", PBXSourceTree.Source);
proj.AddFileToBuild(target, name);
//proj.AddFrameworkToProject(target, "/usr/lib/libz.dylib", false);
//Write back out the PBX project
File.WriteAllText(projPath, proj.WriteToString());
/* Info.plist */
// Read the Info.plist file
string plistPath = path + "/Info.plist";
PlistDocument plist = new PlistDocument();
plist.ReadFromString(File.ReadAllText(plistPath));
// Get root of plist
PlistElementDict rootDict = plist.root;
//Set Requires full screen = true. This was needed only with Xcode 9.
rootDict.SetBoolean("UIRequiresFullScreen", true);
//Adding background modes for remote notification (For Push notifications - OneSignal)
var bgModes = rootDict.CreateArray("UIBackgroundModes");
bgModes.AddString("remote-notification");
//Write out the Info.plist file
plist.WriteToFile(plistPath);
}
}
}
#endif