@@ -25,16 +25,23 @@ import Foundation
2525
2626extension File {
2727
28- class func unityBuildScriptFile( ) -> Data ? {
28+ class func unityBuildScriptFile( iOSProjectFolderPath : String , iOSProjectName : String ) -> Data ? {
2929 let file = """
3030 using System.Collections;
3131 using System.IO;
3232 using UnityEngine;
3333 using UnityEditor;
3434 using UnityEditor.SceneManagement;
3535 using UnityEngine.SceneManagement;
36+ using UnityEditor.iOS.Xcode;
3637
3738 public class iOSBuilder: MonoBehaviour {
39+
40+ private const string iOSProjectRoot = \" \( iOSProjectFolderPath) \" ;
41+ private const string iOSProjectName = \" \( iOSProjectName) \" ;
42+ private const string DataProjectPath = " Vendor/UBK/Data " ;
43+ private const string PbxFilePath = iOSProjectName + " .xcodeproj/project.pbxproj " ;
44+
3845 public static void Perform () {
3946 var outputLocation = GetArg ( " -outputLocation " );
4047 var sceneName = GetArg ( " -sceneName " );
@@ -51,6 +58,21 @@ extension File {
5158 playerOptions.target = BuildTarget.iOS;
5259 playerOptions.options = BuildOptions.None;
5360 BuildPipeline.BuildPlayer (playerOptions);
61+
62+ CopyDataFolderReference (outputLocation);
63+ }
64+
65+ private static void CopyDataFolderReference (string folderRootPath) {
66+ var pbx = new PBXProject();
67+ var pbxPath = Path.Combine(iOSProjectRoot, PbxFilePath);
68+ pbx.ReadFromFile(pbxPath);
69+
70+ var folderGuid = pbx.AddFolderReference(Path.Combine(folderRootPath, " Data " ), Path.Combine(iOSProjectRoot, DataProjectPath), PBXSourceTree.Absolute);
71+ var targetGiud = pbx.TargetGuidByName(iOSProjectName);
72+ var resourceGiud = pbx.GetResourcesBuildPhaseByTarget(targetGiud);
73+ pbx.AddFileToBuildSection(targetGiud, resourceGiud, folderGuid);
74+
75+ pbx.WriteToFile(pbxPath);
5476 }
5577
5678 private static string GetArg (string name) {
0 commit comments