Skip to content

Commit 9b46e00

Browse files
authored
Merge pull request #310 from immutable/chore/move-sample-app
chore: move sample app
2 parents 48b326a + 488fb03 commit 9b46e00

File tree

128 files changed

+413
-11
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+413
-11
lines changed

.github/workflows/test-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
3131
with:
3232
unityVersion: 2021.3.26f1
33-
projectPath: './src/Packages/Passport/Samples~/sample'
33+
projectPath: './sample'
3434
githubToken: ${{ secrets.GITHUB_TOKEN }}
3535
testMode: 'EditMode'
3636
- uses: actions/upload-artifact@v4
@@ -78,7 +78,7 @@ jobs:
7878
with:
7979
unityVersion: 2021.3.26f1
8080
targetPlatform: ${{ matrix.targetPlatform }}
81-
projectPath: './src/Packages/Passport/Samples~/sample'
81+
projectPath: './sample'
8282
- name: Deploy to GitHub Pages
8383
uses: JamesIves/[email protected]
8484
if: matrix.targetPlatform == 'WebGL'

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ crashlytics-build.properties
8282
sample-passport-unity-game/
8383
src/Packages/Passport/Samples~/sample/iosBuild
8484
!src/Packages/Passport/Samples~/sample/webgl/Build/
85+
sample/iosBuild
86+
sample/webgl/Build/
8587

8688
# Android
8789
src/Packages/Passport/Runtime/Assets/ImmutableAndroid.androidlib/**/*.meta

sample/Assets/Editor.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
#if UNITY_EDITOR
2+
3+
using UnityEngine;
4+
using UnityEditor;
5+
using UnityEditor.SceneManagement;
6+
using AltTester.AltTesterUnitySDK.Editor;
7+
using AltTester.AltTesterUnitySDK;
8+
using System;
9+
using System.IO;
10+
11+
public class AndroidBuilder
12+
{
13+
private const string DefaultBuildPath = "Builds/Android/SampleApp.apk";
14+
15+
static void Build()
16+
{
17+
BuildPlayer(DefaultBuildPath, BuildOptions.Development);
18+
}
19+
20+
static void BuildForAltTester()
21+
{
22+
BuildPlayer(DefaultBuildPath, BuildOptions.Development | BuildOptions.IncludeTestAssemblies, true);
23+
}
24+
25+
26+
private static void BuildPlayer(string defaultBuildPath, BuildOptions buildOptions, bool setupForAltTester = false)
27+
{
28+
try
29+
{
30+
string buildPath = GetBuildPathFromArgs(defaultBuildPath);
31+
32+
BuildPlayerOptions buildPlayerOptions = CreateBuildPlayerOptions(buildPath, buildOptions);
33+
34+
if (setupForAltTester)
35+
{
36+
SetupAltTester(buildPlayerOptions);
37+
}
38+
39+
var results = BuildPipeline.BuildPlayer(buildPlayerOptions);
40+
41+
if (setupForAltTester)
42+
{
43+
// Clean up AltTester settings after build
44+
AltBuilder.RemoveAltTesterFromScriptingDefineSymbols(BuildTargetGroup.Android);
45+
RemoveAltFromScene(buildPlayerOptions.scenes[0]);
46+
}
47+
}
48+
catch (Exception exception)
49+
{
50+
Debug.LogException(exception);
51+
}
52+
}
53+
54+
private static string GetBuildPathFromArgs(string defaultBuildPath)
55+
{
56+
string[] args = Environment.GetCommandLineArgs();
57+
for (int i = 0; i < args.Length; i++)
58+
{
59+
if (args[i] == "--buildPath" && i + 1 < args.Length)
60+
{
61+
return args[i + 1];
62+
}
63+
}
64+
return defaultBuildPath;
65+
}
66+
67+
private static BuildPlayerOptions CreateBuildPlayerOptions(string buildPath, BuildOptions buildOptions)
68+
{
69+
return new BuildPlayerOptions
70+
{
71+
scenes = new[]
72+
{
73+
"Assets/Scenes/SelectAuthMethod.unity",
74+
"Assets/Scenes/UnauthenticatedScene.unity",
75+
"Assets/Scenes/AuthenticatedScene.unity",
76+
"Assets/Scenes/ZkEvmGetBalance.unity",
77+
"Assets/Scenes/ZkEvmGetTransactionReceipt.unity",
78+
"Assets/Scenes/ZkEvmSendTransaction.unity",
79+
"Assets/Scenes/ImxNftTransfer.unity"
80+
},
81+
locationPathName = buildPath,
82+
target = BuildTarget.Android,
83+
options = buildOptions
84+
};
85+
}
86+
87+
private static void SetupAltTester(BuildPlayerOptions buildPlayerOptions)
88+
{
89+
AltBuilder.AddAltTesterInScriptingDefineSymbolsGroup(BuildTargetGroup.Android);
90+
AltBuilder.CreateJsonFileForInputMappingOfAxis();
91+
92+
var instrumentationSettings = new AltInstrumentationSettings();
93+
AltBuilder.InsertAltInScene(buildPlayerOptions.scenes[0], instrumentationSettings);
94+
}
95+
96+
public static void RemoveAltFromScene(string scene)
97+
{
98+
Debug.Log("Removing AltTesterPrefab from the [" + scene + "] scene.");
99+
100+
var sceneToModify = EditorSceneManager.OpenScene(scene);
101+
102+
// Find the AltTesterPrefab instance in the scene
103+
var altRunner = GameObject.FindObjectOfType<AltRunner>();
104+
105+
if (altRunner != null)
106+
{
107+
// Destroy the AltTesterPrefab instance
108+
GameObject.DestroyImmediate(altRunner.gameObject);
109+
110+
// Mark the scene as dirty and save it
111+
EditorSceneManager.MarkSceneDirty(sceneToModify);
112+
EditorSceneManager.SaveOpenScenes();
113+
114+
Debug.Log("AltTesterPrefab successfully removed from the [" + scene + "] scene.");
115+
}
116+
else
117+
{
118+
Debug.LogWarning("AltTesterPrefab was not found in the [" + scene + "] scene.");
119+
}
120+
}
121+
122+
}
123+
124+
#endif

sample/Assets/Editor/AndroidBuilder.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sample/Assets/Editor/MacBuilder.cs

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
#if UNITY_EDITOR_OSX
2+
3+
using UnityEngine;
4+
using UnityEditor;
5+
using UnityEditor.SceneManagement;
6+
using AltTester.AltTesterUnitySDK.Editor;
7+
using AltTester.AltTesterUnitySDK;
8+
using System;
9+
10+
public class MacBuilder
11+
{
12+
private const string DefaultBuildPath = "Builds/MacOS/SampleApp.app";
13+
14+
static void Build()
15+
{
16+
BuildPlayer(DefaultBuildPath, BuildOptions.None);
17+
}
18+
19+
static void BuildForAltTester()
20+
{
21+
BuildPlayer(DefaultBuildPath, BuildOptions.Development | BuildOptions.IncludeTestAssemblies | BuildOptions.AutoRunPlayer, true);
22+
}
23+
24+
private static void BuildPlayer(string defaultBuildPath, BuildOptions buildOptions, bool setupForAltTester = false)
25+
{
26+
try
27+
{
28+
string buildPath = GetBuildPathFromArgs(defaultBuildPath);
29+
BuildPlayerOptions buildPlayerOptions = CreateBuildPlayerOptions(buildPath, buildOptions);
30+
31+
if (setupForAltTester)
32+
{
33+
SetupAltTester(buildPlayerOptions);
34+
}
35+
36+
var results = BuildPipeline.BuildPlayer(buildPlayerOptions);
37+
38+
if (setupForAltTester)
39+
{
40+
// Clean up AltTester settings after build
41+
AltBuilder.RemoveAltTesterFromScriptingDefineSymbols(BuildTargetGroup.Standalone);
42+
RemoveAltFromScene(buildPlayerOptions.scenes[0]);
43+
}
44+
}
45+
catch (Exception exception)
46+
{
47+
Debug.LogException(exception);
48+
}
49+
}
50+
51+
private static string GetBuildPathFromArgs(string defaultBuildPath)
52+
{
53+
string[] args = Environment.GetCommandLineArgs();
54+
for (int i = 0; i < args.Length; i++)
55+
{
56+
if (args[i] == "--buildPath" && i + 1 < args.Length)
57+
{
58+
return args[i + 1];
59+
}
60+
}
61+
return defaultBuildPath;
62+
}
63+
64+
private static BuildPlayerOptions CreateBuildPlayerOptions(string buildPath, BuildOptions buildOptions)
65+
{
66+
return new BuildPlayerOptions
67+
{
68+
scenes = new[]
69+
{
70+
"Assets/Scenes/SelectAuthMethod.unity",
71+
"Assets/Scenes/UnauthenticatedScene.unity",
72+
"Assets/Scenes/AuthenticatedScene.unity",
73+
"Assets/Scenes/ZkEvmGetBalance.unity",
74+
"Assets/Scenes/ZkEvmGetTransactionReceipt.unity",
75+
"Assets/Scenes/ZkEvmSendTransaction.unity",
76+
"Assets/Scenes/ImxNftTransfer.unity"
77+
},
78+
locationPathName = buildPath,
79+
target = BuildTarget.StandaloneOSX,
80+
options = buildOptions
81+
};
82+
}
83+
84+
private static void SetupAltTester(BuildPlayerOptions buildPlayerOptions)
85+
{
86+
AltBuilder.AddAltTesterInScriptingDefineSymbolsGroup(BuildTargetGroup.Standalone);
87+
AltBuilder.CreateJsonFileForInputMappingOfAxis();
88+
89+
var instrumentationSettings = new AltInstrumentationSettings();
90+
AltBuilder.InsertAltInScene(buildPlayerOptions.scenes[0], instrumentationSettings);
91+
}
92+
93+
public static void RemoveAltFromScene(string scene)
94+
{
95+
Debug.Log("Removing AltTesterPrefab from the [" + scene + "] scene.");
96+
97+
var sceneToModify = EditorSceneManager.OpenScene(scene);
98+
99+
// Find the AltTesterPrefab instance in the scene
100+
var altRunner = GameObject.FindObjectOfType<AltRunner>();
101+
102+
if (altRunner != null)
103+
{
104+
// Destroy the AltTesterPrefab instance
105+
GameObject.DestroyImmediate(altRunner.gameObject);
106+
107+
// Mark the scene as dirty and save it
108+
EditorSceneManager.MarkSceneDirty(sceneToModify);
109+
EditorSceneManager.SaveOpenScenes();
110+
111+
Debug.Log("AltTesterPrefab successfully removed from the [" + scene + "] scene.");
112+
}
113+
else
114+
{
115+
Debug.LogWarning("AltTesterPrefab was not found in the [" + scene + "] scene.");
116+
}
117+
}
118+
119+
}
120+
121+
#endif

sample/Assets/Editor/MacBuilder.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)