@@ -72,6 +72,11 @@ class FileCopier {
7272 return addLibrariesFilesResult
7373 }
7474
75+ let copyDataResult = copyUnityDataFolder ( )
76+ guard copyDataResult == . success else {
77+ return copyDataResult
78+ }
79+
7580 print ( " Saving Xcode project " )
7681 let saveResult = saveProject ( )
7782 guard saveResult == . success else {
@@ -182,7 +187,6 @@ private extension FileCopier {
182187 if let mainTarget = project. pbxproj. nativeTargets. filter ( { $0. name == config. projectName } ) . first,
183188 parentGroup. name == " Libraries " {
184189 mainTarget. buildPhases. append ( frameworksBuildPhase. reference)
185- print ( " Adding to main target " )
186190 }
187191 project. pbxproj. addObject ( frameworksBuildPhase)
188192
@@ -243,6 +247,36 @@ private extension FileCopier {
243247 return add ( toPath: workingPath, parentGroup: parentGroup)
244248 }
245249
250+ func copyUnityDataFolder( ) -> Result {
251+ guard let project = project else {
252+ return . failure( UBKitError . invalidXcodeProject)
253+ }
254+
255+ guard let unityGroup = project. pbxproj. groups. filter ( { $0. path == " Unity " } ) . first else {
256+ return . failure( UBKitError . invalidXcodeProject)
257+ }
258+
259+ let resourcesBuildPhases = project. pbxproj. resourcesBuildPhases
260+ guard resourcesBuildPhases. count == 1 , let resourcesBuildPhase = resourcesBuildPhases. first else {
261+ return . failure( UBKitError . invalidXcodeProject)
262+ }
263+
264+ let fileReference = PBXFileReference ( reference: generateUUID ( PBXFileReference . self, " data " . appending ( nameSalt) ) ,
265+ sourceTree: . absolute)
266+ fileReference. name = " Data "
267+ fileReference. path = workingPath. appending ( config. relativeUnityDataPath)
268+ fileReference. lastKnownFileType = " folder "
269+ unityGroup. children. append ( fileReference. reference)
270+ project. pbxproj. addObject ( fileReference)
271+
272+ let buildFile = PBXBuildFile ( reference: generateUUID ( PBXBuildFile . self, " data " . appending ( nameSalt) ) ,
273+ fileRef: fileReference. reference)
274+ project. pbxproj. addObject ( buildFile)
275+ resourcesBuildPhase. files. append ( buildFile. reference)
276+
277+ return . success
278+ }
279+
246280 func saveProject( ) -> Result {
247281 guard let project = project else {
248282 return . failure( UBKitError . invalidXcodeProject)
0 commit comments