Skip to content

Commit 25bf165

Browse files
authored
Merge pull request #42 from lorant-csonka-planorama/fix-example-project
Update example unity project's Editor scripts
2 parents 7b008c3 + f973f62 commit 25bf165

File tree

3 files changed

+329
-507
lines changed

3 files changed

+329
-507
lines changed

example/unity/DemoApp/Assets/Editor/Build.cs

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Diagnostics;
32
using System.IO;
43
using System.Linq;
54
using System.Text.RegularExpressions;
@@ -14,17 +13,31 @@ public class Build : MonoBehaviour
1413

1514
static readonly string apkPath = Path.Combine(ProjectPath, "Builds/" + Application.productName + ".apk");
1615

17-
[MenuItem("Flutter/Export Android %&a", false, 1)]
18-
public static void DoBuildAndroid()
16+
static readonly string androidExportPath = Path.GetFullPath(Path.Combine(ProjectPath, "../../android/UnityExport"));
17+
static readonly string iosExportPath = Path.GetFullPath(Path.Combine(ProjectPath, "../../ios/UnityExport"));
18+
19+
[MenuItem("Flutter/Export Android (Unity 2019.3.*) %&n", false, 1)]
20+
public static void DoBuildAndroidLibrary()
21+
{
22+
DoBuildAndroid(Path.Combine(apkPath, "unityLibrary"));
23+
24+
// Copy over resources from the launcher module that are used by the library
25+
Copy(Path.Combine(apkPath + "/launcher/src/main/res"), Path.Combine(androidExportPath, "src/main/res"));
26+
}
27+
28+
[MenuItem("Flutter/Export Android %&a", false, 2)]
29+
public static void DoBuildAndroidLegacy()
1930
{
20-
string buildPath = Path.Combine(apkPath, Application.productName);
21-
string exportPath = Path.GetFullPath(Path.Combine(ProjectPath, "../../android/UnityExport"));
31+
DoBuildAndroid(Path.Combine(apkPath, Application.productName));
32+
}
2233

34+
public static void DoBuildAndroid(String buildPath)
35+
{
2336
if (Directory.Exists(apkPath))
2437
Directory.Delete(apkPath, true);
2538

26-
if (Directory.Exists(exportPath))
27-
Directory.Delete(exportPath, true);
39+
if (Directory.Exists(androidExportPath))
40+
Directory.Delete(androidExportPath, true);
2841

2942
EditorUserBuildSettings.androidBuildSystem = AndroidBuildSystem.Gradle;
3043

@@ -39,38 +52,37 @@ public static void DoBuildAndroid()
3952
if (report.summary.result != BuildResult.Succeeded)
4053
throw new Exception("Build failed");
4154

42-
Copy(buildPath, exportPath);
55+
Copy(buildPath, androidExportPath);
4356

4457
// Modify build.gradle
45-
var build_file = Path.Combine(exportPath, "build.gradle");
58+
var build_file = Path.Combine(androidExportPath, "build.gradle");
4659
var build_text = File.ReadAllText(build_file);
4760
build_text = build_text.Replace("com.android.application", "com.android.library");
61+
build_text = build_text.Replace("implementation fileTree(dir: 'libs', include: ['*.jar'])", "implementation project(':unity-classes')");
4862
build_text = Regex.Replace(build_text, @"\n.*applicationId '.+'.*\n", "\n");
4963
File.WriteAllText(build_file, build_text);
5064

5165
// Modify AndroidManifest.xml
52-
var manifest_file = Path.Combine(exportPath, "src/main/AndroidManifest.xml");
66+
var manifest_file = Path.Combine(androidExportPath, "src/main/AndroidManifest.xml");
5367
var manifest_text = File.ReadAllText(manifest_file);
5468
manifest_text = Regex.Replace(manifest_text, @"<application .*>", "<application>");
5569
Regex regex = new Regex(@"<activity.*>(\s|\S)+?</activity>", RegexOptions.Multiline);
5670
manifest_text = regex.Replace(manifest_text, "");
5771
File.WriteAllText(manifest_file, manifest_text);
5872
}
5973

60-
[MenuItem("Flutter/Export IOS %&i", false, 2)]
74+
[MenuItem("Flutter/Export IOS (Unity 2019.3.*) %&i", false, 3)]
6175
public static void DoBuildIOS()
6276
{
63-
string exportPath = Path.GetFullPath(Path.Combine(ProjectPath, "../../ios/UnityExport"));
64-
65-
if (Directory.Exists(exportPath))
66-
Directory.Delete(exportPath, true);
77+
if (Directory.Exists(iosExportPath))
78+
Directory.Delete(iosExportPath, true);
6779

6880
EditorUserBuildSettings.iOSBuildConfigType = iOSBuildType.Release;
6981

7082
var options = BuildOptions.AcceptExternalModificationsToPlayer;
7183
var report = BuildPipeline.BuildPlayer(
7284
GetEnabledScenes(),
73-
exportPath,
85+
iosExportPath,
7486
BuildTarget.iOS,
7587
options
7688
);

0 commit comments

Comments
 (0)