Compare commits

..

4 Commits

Author SHA1 Message Date
Andrew Kahr
0c16aab353 Use capture group to find Unity version to support new 6000 versions (#639) 2024-03-16 21:31:46 -07:00
Szymon Sirocki
fc0a52b805 Add 'enableGpu' param, allowing running Unity w/o -nographics (#636) 2024-03-07 16:50:30 +01:00
Andrew Kahr
e820c9ce7b Fix test workflows (#632)
* Only build mono for windows/mac on linux test builds. Add dedicated server build tests

* Fix typo

* Fix build matrix and upload name

* Remove unsupported unity version
2024-02-19 08:55:24 -05:00
Andrew Kahr
f4d2cceeb5 Hotfixes for 4.2.0 (#630)
* Fix mac env variables not getting skip activation

* Fix image tag for linux il2cpp. Force tests to use il2cpp

* Scripting backend is always il2cpp
2024-02-18 19:44:25 -08:00
17 changed files with 358 additions and 175 deletions

View File

@@ -20,7 +20,6 @@ jobs:
unityVersion: unityVersion:
- 2021.3.32f1 - 2021.3.32f1
- 2022.3.13f1 - 2022.3.13f1
- 2023.1.19f1
- 2023.2.2f1 - 2023.2.2f1
targetPlatform: targetPlatform:
- StandaloneOSX # Build a MacOS executable - StandaloneOSX # Build a MacOS executable

View File

@@ -49,15 +49,49 @@ jobs:
unityVersion: unityVersion:
- 2021.3.32f1 - 2021.3.32f1
- 2022.3.13f1 - 2022.3.13f1
- 2023.1.19f1
- 2023.2.2f1 - 2023.2.2f1
targetPlatform: targetPlatform:
- StandaloneOSX # Build a macOS standalone (Intel 64-bit) with mono backend. - StandaloneOSX # Build a macOS standalone (Intel 64-bit) with mono backend.
- StandaloneWindows64 # Build a Windows 64-bit standalone with mono backend. - StandaloneWindows64 # Build a Windows 64-bit standalone with mono backend.
- StandaloneLinux64 # Build a Linux 64-bit standalone with mono backend. - StandaloneLinux64 # Build a Linux 64-bit standalone with mono/il2cpp backend.
- iOS # Build an iOS player. - iOS # Build an iOS project.
- Android # Build an Android .apk. - Android # Build an Android .apk.
- WebGL # WebGL. - WebGL # WebGL.
buildWithIl2cpp:
- false
- true
additionalParameters:
- -param value
- -standaloneBuildSubtarget Server
# Skipping configurations that are not supported
exclude:
# No il2cpp support on Linux Host
- targetPlatform: StandaloneOSX
buildWithIl2cpp: true
- targetPlatform: StandaloneWindows64
buildWithIl2cpp: true
# Only builds with Il2cpp
- targetPlatform: iOS
buildWithIl2cpp: false
- targetPlatform: Android
buildWithIl2cpp: false
- targetPlatform: WebGL
buildWithIl2cpp: false
# No dedicated server support
- targetPlatform: WebGL
additionalParameters: -standaloneBuildSubtarget Server
- targetPlatform: Android
additionalParameters: -standaloneBuildSubtarget Server
- targetPlatform: iOS
additionalParameters: -standaloneBuildSubtarget Server
# No dedicated server support on Linux Host
- targetPlatform: StandaloneOSX
additionalParameters: -standaloneBuildSubtarget Server
# No il2cpp dedicated server support on Linux Host
- targetPlatform: StandaloneWindows64
additionalParameters: -standaloneBuildSubtarget Server
buildWithIl2cpp: true
steps: steps:
- name: Clear Space for Android Build - name: Clear Space for Android Build
if: matrix.targetPlatform == 'Android' if: matrix.targetPlatform == 'Android'
@@ -81,6 +115,14 @@ jobs:
Library-${{ matrix.projectPath }}-ubuntu- Library-${{ matrix.projectPath }}-ubuntu-
Library- Library-
###########################
# Set Scripting Backend #
###########################
- name: Set Scripting Backend To il2cpp
if: matrix.buildWithIl2cpp == true
run: |
mv -f "./test-project/ProjectSettings/ProjectSettingsIl2cpp.asset" "./test-project/ProjectSettings/ProjectSettings.asset"
########################### ###########################
# Build # # Build #
########################### ###########################
@@ -96,8 +138,9 @@ jobs:
projectPath: ${{ matrix.projectPath }} projectPath: ${{ matrix.projectPath }}
unityVersion: ${{ matrix.unityVersion }} unityVersion: ${{ matrix.unityVersion }}
targetPlatform: ${{ matrix.targetPlatform }} targetPlatform: ${{ matrix.targetPlatform }}
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
providerStrategy: ${{ matrix.providerStrategy }} providerStrategy: ${{ matrix.providerStrategy }}
allowDirtyBuild: true
- name: Sleep for Retry - name: Sleep for Retry
if: ${{ steps.build-1.outcome == 'failure' }} if: ${{ steps.build-1.outcome == 'failure' }}
@@ -117,7 +160,7 @@ jobs:
projectPath: ${{ matrix.projectPath }} projectPath: ${{ matrix.projectPath }}
unityVersion: ${{ matrix.unityVersion }} unityVersion: ${{ matrix.unityVersion }}
targetPlatform: ${{ matrix.targetPlatform }} targetPlatform: ${{ matrix.targetPlatform }}
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
providerStrategy: ${{ matrix.providerStrategy }} providerStrategy: ${{ matrix.providerStrategy }}
allowDirtyBuild: true allowDirtyBuild: true
@@ -138,7 +181,7 @@ jobs:
projectPath: ${{ matrix.projectPath }} projectPath: ${{ matrix.projectPath }}
unityVersion: ${{ matrix.unityVersion }} unityVersion: ${{ matrix.unityVersion }}
targetPlatform: ${{ matrix.targetPlatform }} targetPlatform: ${{ matrix.targetPlatform }}
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
providerStrategy: ${{ matrix.providerStrategy }} providerStrategy: ${{ matrix.providerStrategy }}
allowDirtyBuild: true allowDirtyBuild: true
@@ -147,6 +190,8 @@ jobs:
########################### ###########################
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: Build ${{ matrix.targetPlatform }} on Ubuntu (${{ matrix.unityVersion }}) name:
'Build ${{ matrix.targetPlatform }} on Ubuntu (${{ matrix.unityVersion }}_il2cpp_${{ matrix.buildWithIl2cpp
}}_params_${{ matrix.additionalParameters }})'
path: build path: build
retention-days: 14 retention-days: 14

View File

@@ -20,7 +20,6 @@ jobs:
unityVersion: unityVersion:
- 2021.3.32f1 - 2021.3.32f1
- 2022.3.13f1 - 2022.3.13f1
- 2023.1.19f1
- 2023.2.2f1 - 2023.2.2f1
targetPlatform: targetPlatform:
- Android # Build an Android apk. - Android # Build an Android apk.

View File

@@ -35,6 +35,10 @@ inputs:
required: false required: false
default: '' default: ''
description: 'Suppresses `-quit`. Exit your build method using `EditorApplication.Exit(0)` instead.' description: 'Suppresses `-quit`. Exit your build method using `EditorApplication.Exit(0)` instead.'
enableGpu:
required: false
default: ''
description: 'Launches unity without specifying `-nographics`.'
customParameters: customParameters:
required: false required: false
default: '' default: ''

35
dist/index.js generated vendored
View File

@@ -303,6 +303,7 @@ class BuildParameters {
buildMethod: input_1.default.buildMethod, buildMethod: input_1.default.buildMethod,
buildVersion, buildVersion,
manualExit: input_1.default.manualExit, manualExit: input_1.default.manualExit,
enableGpu: input_1.default.enableGpu,
androidVersionCode, androidVersionCode,
androidKeystoreName: input_1.default.androidKeystoreName, androidKeystoreName: input_1.default.androidKeystoreName,
androidKeystoreBase64: input_1.default.androidKeystoreBase64, androidKeystoreBase64: input_1.default.androidKeystoreBase64,
@@ -6430,6 +6431,7 @@ class ImageEnvironmentFactory {
{ name: 'BUILD_FILE', value: parameters.buildFile }, { name: 'BUILD_FILE', value: parameters.buildFile },
{ name: 'BUILD_METHOD', value: parameters.buildMethod }, { name: 'BUILD_METHOD', value: parameters.buildMethod },
{ name: 'MANUAL_EXIT', value: parameters.manualExit }, { name: 'MANUAL_EXIT', value: parameters.manualExit },
{ name: 'ENABLE_GPU', value: parameters.enableGpu },
{ name: 'VERSION', value: parameters.buildVersion }, { name: 'VERSION', value: parameters.buildVersion },
{ name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode }, { name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode },
{ name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName }, { name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName },
@@ -6503,7 +6505,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
const platform_1 = __importDefault(__nccwpck_require__(9707)); const platform_1 = __importDefault(__nccwpck_require__(9707));
class ImageTag { class ImageTag {
constructor(imageProperties) { constructor(imageProperties) {
const { editorVersion, targetPlatform, customImage, buildPlatform, containerRegistryRepository, containerRegistryImageVersion, } = imageProperties; const { editorVersion, targetPlatform, customImage, buildPlatform, containerRegistryRepository, containerRegistryImageVersion, providerStrategy, } = imageProperties;
if (!ImageTag.versionPattern.test(editorVersion)) { if (!ImageTag.versionPattern.test(editorVersion)) {
throw new Error(`Invalid version "${editorVersion}".`); throw new Error(`Invalid version "${editorVersion}".`);
} }
@@ -6514,7 +6516,7 @@ class ImageTag {
this.repository = containerRegistryRepository; this.repository = containerRegistryRepository;
this.editorVersion = editorVersion; this.editorVersion = editorVersion;
this.targetPlatform = targetPlatform; this.targetPlatform = targetPlatform;
this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(targetPlatform, editorVersion); this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(targetPlatform, editorVersion, providerStrategy);
this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform); this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform);
this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version. this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version.
} }
@@ -6550,7 +6552,7 @@ class ImageTag {
return ''; return '';
} }
} }
static getTargetPlatformToTargetPlatformSuffixMap(platform, version) { static getTargetPlatformToTargetPlatformSuffixMap(platform, version, providerStrategy) {
const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } = ImageTag.targetPlatformSuffixes; const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } = ImageTag.targetPlatformSuffixes;
const [major, minor] = version.split('.').map((digit) => Number(digit)); const [major, minor] = version.split('.').map((digit) => Number(digit));
// @see: https://docs.unity3d.com/ScriptReference/BuildTarget.html // @see: https://docs.unity3d.com/ScriptReference/BuildTarget.html
@@ -6573,8 +6575,13 @@ class ImageTag {
return windows; return windows;
case platform_1.default.types.StandaloneLinux64: { case platform_1.default.types.StandaloneLinux64: {
// Unity versions before 2019.3 do not support il2cpp // Unity versions before 2019.3 do not support il2cpp
if (process.env.USE_IL2CPP === 'true' && (major >= 2020 || (major === 2019 && minor >= 3))) { if (major >= 2020 || (major === 2019 && minor >= 3)) {
return linuxIl2cpp; if (providerStrategy === 'local') {
return linuxIl2cpp;
}
else {
return process.env.USE_IL2CPP === 'true' ? linuxIl2cpp : linux;
}
} }
return linux; return linux;
} }
@@ -6979,6 +6986,10 @@ class Input {
const input = Input.getInput('manualExit') ?? false; const input = Input.getInput('manualExit') ?? false;
return input === 'true'; return input === 'true';
} }
static get enableGpu() {
const input = Input.getInput('enableGpu') ?? false;
return input === 'true';
}
static get customParameters() { static get customParameters() {
return Input.getInput('customParameters') ?? ''; return Input.getInput('customParameters') ?? '';
} }
@@ -7429,6 +7440,7 @@ class SetupMac {
process.env.UNITY_VERSION = buildParameters.editorVersion; process.env.UNITY_VERSION = buildParameters.editorVersion;
process.env.UNITY_SERIAL = buildParameters.unitySerial; process.env.UNITY_SERIAL = buildParameters.unitySerial;
process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer; process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer;
process.env.SKIP_ACTIVATION = buildParameters.skipActivation;
process.env.PROJECT_PATH = buildParameters.projectPath; process.env.PROJECT_PATH = buildParameters.projectPath;
process.env.BUILD_TARGET = buildParameters.targetPlatform; process.env.BUILD_TARGET = buildParameters.targetPlatform;
process.env.BUILD_NAME = buildParameters.buildName; process.env.BUILD_NAME = buildParameters.buildName;
@@ -7449,6 +7461,7 @@ class SetupMac {
process.env.CUSTOM_PARAMETERS = buildParameters.customParameters; process.env.CUSTOM_PARAMETERS = buildParameters.customParameters;
process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo; process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo;
process.env.MANUAL_EXIT = buildParameters.manualExit.toString(); process.env.MANUAL_EXIT = buildParameters.manualExit.toString();
process.env.ENABLE_GPU = buildParameters.enableGpu.toString();
} }
} }
SetupMac.unityHubBasePath = `/Applications/"Unity Hub.app"`; SetupMac.unityHubBasePath = `/Applications/"Unity Hub.app"`;
@@ -7744,9 +7757,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
const node_fs_1 = __importDefault(__nccwpck_require__(87561)); const node_fs_1 = __importDefault(__nccwpck_require__(87561));
const node_path_1 = __importDefault(__nccwpck_require__(49411)); const node_path_1 = __importDefault(__nccwpck_require__(49411));
class UnityVersioning { class UnityVersioning {
static get versionPattern() {
return /20\d{2}\.\d\.\w{3,4}|3/;
}
static determineUnityVersion(projectPath, unityVersion) { static determineUnityVersion(projectPath, unityVersion) {
if (unityVersion === 'auto') { if (unityVersion === 'auto') {
return UnityVersioning.read(projectPath); return UnityVersioning.read(projectPath);
@@ -7761,11 +7771,12 @@ class UnityVersioning {
return UnityVersioning.parse(node_fs_1.default.readFileSync(filePath, 'utf8')); return UnityVersioning.parse(node_fs_1.default.readFileSync(filePath, 'utf8'));
} }
static parse(projectVersionTxt) { static parse(projectVersionTxt) {
const matches = projectVersionTxt.match(UnityVersioning.versionPattern); const versionRegex = /m_EditorVersion: (\d+\.\d+\.\d+[A-Za-z]?\d+)/;
if (!matches || matches.length === 0) { const matches = projectVersionTxt.match(versionRegex);
throw new Error(`Failed to parse version from "${projectVersionTxt}".`); if (!matches || matches.length < 2) {
throw new Error(`Failed to extract version from "${projectVersionTxt}".`);
} }
return matches[0]; return matches[1];
} }
} }
exports["default"] = UnityVersioning; exports["default"] = UnityVersioning;

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@@ -131,7 +131,7 @@ echo ""
-logFile - \ -logFile - \
$( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \ $( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \
-batchmode \ -batchmode \
-nographics \ $( [ "${ENABLE_GPU}" == "true" ] || echo "-nographics" ) \
-username "$UNITY_EMAIL" \ -username "$UNITY_EMAIL" \
-password "$UNITY_PASSWORD" \ -password "$UNITY_PASSWORD" \
-customBuildName "$BUILD_NAME" \ -customBuildName "$BUILD_NAME" \

View File

@@ -32,6 +32,7 @@ class BuildParameters {
public buildMethod!: string; public buildMethod!: string;
public buildVersion!: string; public buildVersion!: string;
public manualExit!: boolean; public manualExit!: boolean;
public enableGpu!: boolean;
public androidVersionCode!: string; public androidVersionCode!: string;
public androidKeystoreName!: string; public androidKeystoreName!: string;
public androidKeystoreBase64!: string; public androidKeystoreBase64!: string;
@@ -157,6 +158,7 @@ class BuildParameters {
buildMethod: Input.buildMethod, buildMethod: Input.buildMethod,
buildVersion, buildVersion,
manualExit: Input.manualExit, manualExit: Input.manualExit,
enableGpu: Input.enableGpu,
androidVersionCode, androidVersionCode,
androidKeystoreName: Input.androidKeystoreName, androidKeystoreName: Input.androidKeystoreName,
androidKeystoreBase64: Input.androidKeystoreBase64, androidKeystoreBase64: Input.androidKeystoreBase64,

View File

@@ -42,6 +42,7 @@ class ImageEnvironmentFactory {
{ name: 'BUILD_FILE', value: parameters.buildFile }, { name: 'BUILD_FILE', value: parameters.buildFile },
{ name: 'BUILD_METHOD', value: parameters.buildMethod }, { name: 'BUILD_METHOD', value: parameters.buildMethod },
{ name: 'MANUAL_EXIT', value: parameters.manualExit }, { name: 'MANUAL_EXIT', value: parameters.manualExit },
{ name: 'ENABLE_GPU', value: parameters.enableGpu },
{ name: 'VERSION', value: parameters.buildVersion }, { name: 'VERSION', value: parameters.buildVersion },
{ name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode }, { name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode },
{ name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName }, { name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName },

View File

@@ -17,6 +17,7 @@ class ImageTag {
buildPlatform, buildPlatform,
containerRegistryRepository, containerRegistryRepository,
containerRegistryImageVersion, containerRegistryImageVersion,
providerStrategy,
} = imageProperties; } = imageProperties;
if (!ImageTag.versionPattern.test(editorVersion)) { if (!ImageTag.versionPattern.test(editorVersion)) {
@@ -31,7 +32,11 @@ class ImageTag {
this.repository = containerRegistryRepository; this.repository = containerRegistryRepository;
this.editorVersion = editorVersion; this.editorVersion = editorVersion;
this.targetPlatform = targetPlatform; this.targetPlatform = targetPlatform;
this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(targetPlatform, editorVersion); this.builderPlatform = ImageTag.getTargetPlatformToTargetPlatformSuffixMap(
targetPlatform,
editorVersion,
providerStrategy,
);
this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform); this.imagePlatformPrefix = ImageTag.getImagePlatformPrefixes(buildPlatform);
this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version. this.imageRollingVersion = Number(containerRegistryImageVersion); // Will automatically roll to the latest non-breaking version.
} }
@@ -72,7 +77,11 @@ class ImageTag {
} }
} }
static getTargetPlatformToTargetPlatformSuffixMap(platform: string, version: string): string { static getTargetPlatformToTargetPlatformSuffixMap(
platform: string,
version: string,
providerStrategy: string,
): string {
const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } = const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } =
ImageTag.targetPlatformSuffixes; ImageTag.targetPlatformSuffixes;
@@ -100,8 +109,12 @@ class ImageTag {
return windows; return windows;
case Platform.types.StandaloneLinux64: { case Platform.types.StandaloneLinux64: {
// Unity versions before 2019.3 do not support il2cpp // Unity versions before 2019.3 do not support il2cpp
if (process.env.USE_IL2CPP === 'true' && (major >= 2020 || (major === 2019 && minor >= 3))) { if (major >= 2020 || (major === 2019 && minor >= 3)) {
return linuxIl2cpp; if (providerStrategy === 'local') {
return linuxIl2cpp;
} else {
return process.env.USE_IL2CPP === 'true' ? linuxIl2cpp : linux;
}
} }
return linux; return linux;

View File

@@ -122,6 +122,24 @@ describe('Input', () => {
}); });
}); });
describe('enableGpu', () => {
it('returns the default value', () => {
expect(Input.enableGpu).toStrictEqual(false);
});
it('returns true when string true is passed', () => {
const spy = jest.spyOn(core, 'getInput').mockReturnValue('true');
expect(Input.enableGpu).toStrictEqual(true);
expect(spy).toHaveBeenCalledTimes(1);
});
it('returns false when string false is passed', () => {
const spy = jest.spyOn(core, 'getInput').mockReturnValue('false');
expect(Input.enableGpu).toStrictEqual(false);
expect(spy).toHaveBeenCalledTimes(1);
});
});
describe('versioningStrategy', () => { describe('versioningStrategy', () => {
it('returns the default value', () => { it('returns the default value', () => {
expect(Input.versioningStrategy).toStrictEqual('Semantic'); expect(Input.versioningStrategy).toStrictEqual('Semantic');

View File

@@ -133,6 +133,12 @@ class Input {
return input === 'true'; return input === 'true';
} }
static get enableGpu(): boolean {
const input = Input.getInput('enableGpu') ?? false;
return input === 'true';
}
static get customParameters(): string { static get customParameters(): string {
return Input.getInput('customParameters') ?? ''; return Input.getInput('customParameters') ?? '';
} }

View File

@@ -168,6 +168,7 @@ class SetupMac {
process.env.UNITY_VERSION = buildParameters.editorVersion; process.env.UNITY_VERSION = buildParameters.editorVersion;
process.env.UNITY_SERIAL = buildParameters.unitySerial; process.env.UNITY_SERIAL = buildParameters.unitySerial;
process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer; process.env.UNITY_LICENSING_SERVER = buildParameters.unityLicensingServer;
process.env.SKIP_ACTIVATION = buildParameters.skipActivation;
process.env.PROJECT_PATH = buildParameters.projectPath; process.env.PROJECT_PATH = buildParameters.projectPath;
process.env.BUILD_TARGET = buildParameters.targetPlatform; process.env.BUILD_TARGET = buildParameters.targetPlatform;
process.env.BUILD_NAME = buildParameters.buildName; process.env.BUILD_NAME = buildParameters.buildName;
@@ -188,6 +189,7 @@ class SetupMac {
process.env.CUSTOM_PARAMETERS = buildParameters.customParameters; process.env.CUSTOM_PARAMETERS = buildParameters.customParameters;
process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo; process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo;
process.env.MANUAL_EXIT = buildParameters.manualExit.toString(); process.env.MANUAL_EXIT = buildParameters.manualExit.toString();
process.env.ENABLE_GPU = buildParameters.enableGpu.toString();
} }
} }

View File

@@ -11,6 +11,12 @@ describe('Unity Versioning', () => {
m_EditorVersionWithRevision: 2021.3.4f1 (cb45f9cae8b7)`; m_EditorVersionWithRevision: 2021.3.4f1 (cb45f9cae8b7)`;
expect(UnityVersioning.parse(projectVersionContents)).toBe('2021.3.4f1'); expect(UnityVersioning.parse(projectVersionContents)).toBe('2021.3.4f1');
}); });
it('parses Unity 6000 and newer from ProjectVersion.txt', () => {
const projectVersionContents = `m_EditorVersion: 6000.0.0f1
m_EditorVersionWithRevision: 6000.0.0f1 (cb45f9cae8b7)`;
expect(UnityVersioning.parse(projectVersionContents)).toBe('6000.0.0f1');
});
}); });
describe('read', () => { describe('read', () => {

View File

@@ -2,10 +2,6 @@ import fs from 'node:fs';
import path from 'node:path'; import path from 'node:path';
export default class UnityVersioning { export default class UnityVersioning {
static get versionPattern() {
return /20\d{2}\.\d\.\w{3,4}|3/;
}
static determineUnityVersion(projectPath: string, unityVersion: string) { static determineUnityVersion(projectPath: string, unityVersion: string) {
if (unityVersion === 'auto') { if (unityVersion === 'auto') {
return UnityVersioning.read(projectPath); return UnityVersioning.read(projectPath);
@@ -24,11 +20,13 @@ export default class UnityVersioning {
} }
static parse(projectVersionTxt: string) { static parse(projectVersionTxt: string) {
const matches = projectVersionTxt.match(UnityVersioning.versionPattern); const versionRegex = /m_EditorVersion: (\d+\.\d+\.\d+[A-Za-z]?\d+)/;
if (!matches || matches.length === 0) { const matches = projectVersionTxt.match(versionRegex);
throw new Error(`Failed to parse version from "${projectVersionTxt}".`);
if (!matches || matches.length < 2) {
throw new Error(`Failed to extract version from "${projectVersionTxt}".`);
} }
return matches[0]; return matches[1];
} }
} }

View File

@@ -158,6 +158,7 @@ PlayerSettings:
Android: com.GameCI.TestProject Android: com.GameCI.TestProject
Standalone: com.GameCI.TestProject Standalone: com.GameCI.TestProject
iPhone: com.GameCI.TestProject iPhone: com.GameCI.TestProject
tvOS: com.GameCI.TestProject
buildNumber: buildNumber:
Standalone: 0 Standalone: 0
iPhone: 0 iPhone: 0
@@ -462,6 +463,43 @@ PlayerSettings:
m_Height: 1024 m_Height: 1024
m_Kind: 4 m_Kind: 4
m_SubKind: App Store m_SubKind: App Store
- m_BuildTarget: tvOS
m_Icons:
- m_Textures: []
m_Width: 1280
m_Height: 768
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 800
m_Height: 480
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 400
m_Height: 240
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 4640
m_Height: 1440
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 2320
m_Height: 720
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 3840
m_Height: 1440
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 1920
m_Height: 720
m_Kind: 1
m_SubKind:
m_BuildTargetBatching: m_BuildTargetBatching:
- m_BuildTarget: Standalone - m_BuildTarget: Standalone
m_StaticBatching: 1 m_StaticBatching: 1
@@ -806,6 +844,8 @@ PlayerSettings:
platformArchitecture: {} platformArchitecture: {}
scriptingBackend: scriptingBackend:
Android: 1 Android: 1
Server: 0
Standalone: 0
il2cppCompilerConfiguration: {} il2cppCompilerConfiguration: {}
managedStrippingLevel: {} managedStrippingLevel: {}
incrementalIl2cppBuild: {} incrementalIl2cppBuild: {}
@@ -821,8 +861,8 @@ PlayerSettings:
apiCompatibilityLevelPerPlatform: {} apiCompatibilityLevelPerPlatform: {}
m_RenderingPath: 1 m_RenderingPath: 1
m_MobileRenderingPath: 1 m_MobileRenderingPath: 1
metroPackageName: Template_3D metroPackageName: Template3D
metroPackageVersion: metroPackageVersion: 1.0.0.0
metroCertificatePath: metroCertificatePath:
metroCertificatePassword: metroCertificatePassword:
metroCertificateSubject: metroCertificateSubject:
@@ -830,7 +870,7 @@ PlayerSettings:
metroCertificateNotAfter: 0000000000000000 metroCertificateNotAfter: 0000000000000000
metroApplicationDescription: Template_3D metroApplicationDescription: Template_3D
wsaImages: {} wsaImages: {}
metroTileShortName: metroTileShortName: TestProject
metroTileShowName: 0 metroTileShowName: 0
metroMediumTileShowName: 0 metroMediumTileShowName: 0
metroLargeTileShowName: 0 metroLargeTileShowName: 0

View File

@@ -158,6 +158,7 @@ PlayerSettings:
Android: com.GameCI.TestProject Android: com.GameCI.TestProject
Standalone: com.GameCI.TestProject Standalone: com.GameCI.TestProject
iPhone: com.GameCI.TestProject iPhone: com.GameCI.TestProject
tvOS: com.GameCI.TestProject
buildNumber: buildNumber:
Standalone: 0 Standalone: 0
iPhone: 0 iPhone: 0
@@ -167,7 +168,7 @@ PlayerSettings:
AndroidMinSdkVersion: 22 AndroidMinSdkVersion: 22
AndroidTargetSdkVersion: 33 AndroidTargetSdkVersion: 33
AndroidPreferredInstallLocation: 1 AndroidPreferredInstallLocation: 1
aotOptions: aotOptions:
stripEngineCode: 1 stripEngineCode: 1
iPhoneStrippingLevel: 0 iPhoneStrippingLevel: 0
iPhoneScriptCallOptimization: 0 iPhoneScriptCallOptimization: 0
@@ -207,7 +208,7 @@ PlayerSettings:
rgba: 0 rgba: 0
iOSLaunchScreenFillPct: 100 iOSLaunchScreenFillPct: 100
iOSLaunchScreenSize: 100 iOSLaunchScreenSize: 100
iOSLaunchScreenCustomXibPath: iOSLaunchScreenCustomXibPath:
iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadType: 0
iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadImage: {fileID: 0}
iOSLaunchScreeniPadBackgroundColor: iOSLaunchScreeniPadBackgroundColor:
@@ -215,9 +216,9 @@ PlayerSettings:
rgba: 0 rgba: 0
iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadFillPct: 100
iOSLaunchScreeniPadSize: 100 iOSLaunchScreeniPadSize: 100
iOSLaunchScreeniPadCustomXibPath: iOSLaunchScreeniPadCustomXibPath:
iOSLaunchScreenCustomStoryboardPath: iOSLaunchScreenCustomStoryboardPath:
iOSLaunchScreeniPadCustomStoryboardPath: iOSLaunchScreeniPadCustomStoryboardPath:
iOSDeviceRequirements: [] iOSDeviceRequirements: []
iOSURLSchemes: [] iOSURLSchemes: []
macOSURLSchemes: [] macOSURLSchemes: []
@@ -227,9 +228,9 @@ PlayerSettings:
metalAPIValidation: 1 metalAPIValidation: 1
iOSRenderExtraFrameOnPause: 0 iOSRenderExtraFrameOnPause: 0
iosCopyPluginsCodeInsteadOfSymlink: 0 iosCopyPluginsCodeInsteadOfSymlink: 0
appleDeveloperTeamID: appleDeveloperTeamID:
iOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileID:
tvOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID:
iOSManualSigningProvisioningProfileType: 0 iOSManualSigningProvisioningProfileType: 0
tvOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0
appleEnableAutomaticSigning: 0 appleEnableAutomaticSigning: 0
@@ -251,8 +252,8 @@ PlayerSettings:
AndroidTargetDevices: 0 AndroidTargetDevices: 0
AndroidSplashScreenScale: 0 AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0} androidSplashScreen: {fileID: 0}
AndroidKeystoreName: AndroidKeystoreName:
AndroidKeyaliasName: AndroidKeyaliasName:
AndroidBuildApkPerCpuArchitecture: 0 AndroidBuildApkPerCpuArchitecture: 0
AndroidTVCompatibility: 0 AndroidTVCompatibility: 0
AndroidIsGame: 1 AndroidIsGame: 1
@@ -279,92 +280,92 @@ PlayerSettings:
m_Width: 432 m_Width: 432
m_Height: 432 m_Height: 432
m_Kind: 2 m_Kind: 2
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 324 m_Width: 324
m_Height: 324 m_Height: 324
m_Kind: 2 m_Kind: 2
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 216 m_Width: 216
m_Height: 216 m_Height: 216
m_Kind: 2 m_Kind: 2
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 162 m_Width: 162
m_Height: 162 m_Height: 162
m_Kind: 2 m_Kind: 2
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 108 m_Width: 108
m_Height: 108 m_Height: 108
m_Kind: 2 m_Kind: 2
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 81 m_Width: 81
m_Height: 81 m_Height: 81
m_Kind: 2 m_Kind: 2
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 192 m_Width: 192
m_Height: 192 m_Height: 192
m_Kind: 1 m_Kind: 1
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 144 m_Width: 144
m_Height: 144 m_Height: 144
m_Kind: 1 m_Kind: 1
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 96 m_Width: 96
m_Height: 96 m_Height: 96
m_Kind: 1 m_Kind: 1
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 72 m_Width: 72
m_Height: 72 m_Height: 72
m_Kind: 1 m_Kind: 1
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 48 m_Width: 48
m_Height: 48 m_Height: 48
m_Kind: 1 m_Kind: 1
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 36 m_Width: 36
m_Height: 36 m_Height: 36
m_Kind: 1 m_Kind: 1
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 192 m_Width: 192
m_Height: 192 m_Height: 192
m_Kind: 0 m_Kind: 0
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 144 m_Width: 144
m_Height: 144 m_Height: 144
m_Kind: 0 m_Kind: 0
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 96 m_Width: 96
m_Height: 96 m_Height: 96
m_Kind: 0 m_Kind: 0
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 72 m_Width: 72
m_Height: 72 m_Height: 72
m_Kind: 0 m_Kind: 0
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 48 m_Width: 48
m_Height: 48 m_Height: 48
m_Kind: 0 m_Kind: 0
m_SubKind: m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 36 m_Width: 36
m_Height: 36 m_Height: 36
m_Kind: 0 m_Kind: 0
m_SubKind: m_SubKind:
- m_BuildTarget: iPhone - m_BuildTarget: iPhone
m_Icons: m_Icons:
- m_Textures: [] - m_Textures: []
@@ -462,6 +463,43 @@ PlayerSettings:
m_Height: 1024 m_Height: 1024
m_Kind: 4 m_Kind: 4
m_SubKind: App Store m_SubKind: App Store
- m_BuildTarget: tvOS
m_Icons:
- m_Textures: []
m_Width: 1280
m_Height: 768
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 800
m_Height: 480
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 400
m_Height: 240
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 4640
m_Height: 1440
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 2320
m_Height: 720
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 3840
m_Height: 1440
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 1920
m_Height: 720
m_Kind: 1
m_SubKind:
m_BuildTargetBatching: m_BuildTargetBatching:
- m_BuildTarget: Standalone - m_BuildTarget: Standalone
m_StaticBatching: 1 m_StaticBatching: 1
@@ -561,12 +599,12 @@ PlayerSettings:
enableInternalProfiler: 0 enableInternalProfiler: 0
logObjCUncaughtExceptions: 1 logObjCUncaughtExceptions: 1
enableCrashReportAPI: 0 enableCrashReportAPI: 0
cameraUsageDescription: cameraUsageDescription:
locationUsageDescription: locationUsageDescription:
microphoneUsageDescription: microphoneUsageDescription:
bluetoothUsageDescription: bluetoothUsageDescription:
switchNMETAOverride: switchNMETAOverride:
switchNetLibKey: switchNetLibKey:
switchSocketMemoryPoolSize: 6144 switchSocketMemoryPoolSize: 6144
switchSocketAllocatorPoolSize: 128 switchSocketAllocatorPoolSize: 128
switchSocketConcurrencyLimit: 14 switchSocketConcurrencyLimit: 14
@@ -575,39 +613,39 @@ PlayerSettings:
switchUseGOLDLinker: 0 switchUseGOLDLinker: 0
switchLTOSetting: 0 switchLTOSetting: 0
switchApplicationID: 0x01004b9000490000 switchApplicationID: 0x01004b9000490000
switchNSODependencies: switchNSODependencies:
switchTitleNames_0: switchTitleNames_0:
switchTitleNames_1: switchTitleNames_1:
switchTitleNames_2: switchTitleNames_2:
switchTitleNames_3: switchTitleNames_3:
switchTitleNames_4: switchTitleNames_4:
switchTitleNames_5: switchTitleNames_5:
switchTitleNames_6: switchTitleNames_6:
switchTitleNames_7: switchTitleNames_7:
switchTitleNames_8: switchTitleNames_8:
switchTitleNames_9: switchTitleNames_9:
switchTitleNames_10: switchTitleNames_10:
switchTitleNames_11: switchTitleNames_11:
switchTitleNames_12: switchTitleNames_12:
switchTitleNames_13: switchTitleNames_13:
switchTitleNames_14: switchTitleNames_14:
switchTitleNames_15: switchTitleNames_15:
switchPublisherNames_0: switchPublisherNames_0:
switchPublisherNames_1: switchPublisherNames_1:
switchPublisherNames_2: switchPublisherNames_2:
switchPublisherNames_3: switchPublisherNames_3:
switchPublisherNames_4: switchPublisherNames_4:
switchPublisherNames_5: switchPublisherNames_5:
switchPublisherNames_6: switchPublisherNames_6:
switchPublisherNames_7: switchPublisherNames_7:
switchPublisherNames_8: switchPublisherNames_8:
switchPublisherNames_9: switchPublisherNames_9:
switchPublisherNames_10: switchPublisherNames_10:
switchPublisherNames_11: switchPublisherNames_11:
switchPublisherNames_12: switchPublisherNames_12:
switchPublisherNames_13: switchPublisherNames_13:
switchPublisherNames_14: switchPublisherNames_14:
switchPublisherNames_15: switchPublisherNames_15:
switchIcons_0: {fileID: 0} switchIcons_0: {fileID: 0}
switchIcons_1: {fileID: 0} switchIcons_1: {fileID: 0}
switchIcons_2: {fileID: 0} switchIcons_2: {fileID: 0}
@@ -640,11 +678,11 @@ PlayerSettings:
switchSmallIcons_13: {fileID: 0} switchSmallIcons_13: {fileID: 0}
switchSmallIcons_14: {fileID: 0} switchSmallIcons_14: {fileID: 0}
switchSmallIcons_15: {fileID: 0} switchSmallIcons_15: {fileID: 0}
switchManualHTML: switchManualHTML:
switchAccessibleURLs: switchAccessibleURLs:
switchLegalInformation: switchLegalInformation:
switchMainThreadStackSize: 1048576 switchMainThreadStackSize: 1048576
switchPresenceGroupId: switchPresenceGroupId:
switchLogoHandling: 0 switchLogoHandling: 0
switchReleaseVersion: 0 switchReleaseVersion: 0
switchDisplayVersion: 1.0.0 switchDisplayVersion: 1.0.0
@@ -652,7 +690,7 @@ PlayerSettings:
switchTouchScreenUsage: 0 switchTouchScreenUsage: 0
switchSupportedLanguagesMask: 0 switchSupportedLanguagesMask: 0
switchLogoType: 0 switchLogoType: 0
switchApplicationErrorCodeCategory: switchApplicationErrorCodeCategory:
switchUserAccountSaveDataSize: 0 switchUserAccountSaveDataSize: 0
switchUserAccountSaveDataJournalSize: 0 switchUserAccountSaveDataJournalSize: 0
switchApplicationAttribute: 0 switchApplicationAttribute: 0
@@ -672,14 +710,14 @@ PlayerSettings:
switchRatingsInt_10: 0 switchRatingsInt_10: 0
switchRatingsInt_11: 0 switchRatingsInt_11: 0
switchRatingsInt_12: 0 switchRatingsInt_12: 0
switchLocalCommunicationIds_0: switchLocalCommunicationIds_0:
switchLocalCommunicationIds_1: switchLocalCommunicationIds_1:
switchLocalCommunicationIds_2: switchLocalCommunicationIds_2:
switchLocalCommunicationIds_3: switchLocalCommunicationIds_3:
switchLocalCommunicationIds_4: switchLocalCommunicationIds_4:
switchLocalCommunicationIds_5: switchLocalCommunicationIds_5:
switchLocalCommunicationIds_6: switchLocalCommunicationIds_6:
switchLocalCommunicationIds_7: switchLocalCommunicationIds_7:
switchParentalControl: 0 switchParentalControl: 0
switchAllowsScreenshot: 1 switchAllowsScreenshot: 1
switchAllowsVideoCapturing: 1 switchAllowsVideoCapturing: 1
@@ -708,35 +746,35 @@ PlayerSettings:
switchMicroSleepForYieldTime: 25 switchMicroSleepForYieldTime: 25
switchRamDiskSpaceSize: 12 switchRamDiskSpaceSize: 12
ps4NPAgeRating: 12 ps4NPAgeRating: 12
ps4NPTitleSecret: ps4NPTitleSecret:
ps4NPTrophyPackPath: ps4NPTrophyPackPath:
ps4ParentalLevel: 11 ps4ParentalLevel: 11
ps4ContentID: ED1633-NPXX51362_00-0000000000000000 ps4ContentID: ED1633-NPXX51362_00-0000000000000000
ps4Category: 0 ps4Category: 0
ps4MasterVersion: 01.00 ps4MasterVersion: 01.00
ps4AppVersion: 01.00 ps4AppVersion: 01.00
ps4AppType: 0 ps4AppType: 0
ps4ParamSfxPath: ps4ParamSfxPath:
ps4VideoOutPixelFormat: 0 ps4VideoOutPixelFormat: 0
ps4VideoOutInitialWidth: 1920 ps4VideoOutInitialWidth: 1920
ps4VideoOutBaseModeInitialWidth: 1920 ps4VideoOutBaseModeInitialWidth: 1920
ps4VideoOutReprojectionRate: 60 ps4VideoOutReprojectionRate: 60
ps4PronunciationXMLPath: ps4PronunciationXMLPath:
ps4PronunciationSIGPath: ps4PronunciationSIGPath:
ps4BackgroundImagePath: ps4BackgroundImagePath:
ps4StartupImagePath: ps4StartupImagePath:
ps4StartupImagesFolder: ps4StartupImagesFolder:
ps4IconImagesFolder: ps4IconImagesFolder:
ps4SaveDataImagePath: ps4SaveDataImagePath:
ps4SdkOverride: ps4SdkOverride:
ps4BGMPath: ps4BGMPath:
ps4ShareFilePath: ps4ShareFilePath:
ps4ShareOverlayImagePath: ps4ShareOverlayImagePath:
ps4PrivacyGuardImagePath: ps4PrivacyGuardImagePath:
ps4ExtraSceSysFile: ps4ExtraSceSysFile:
ps4NPtitleDatPath: ps4NPtitleDatPath:
ps4RemotePlayKeyAssignment: -1 ps4RemotePlayKeyAssignment: -1
ps4RemotePlayKeyMappingDir: ps4RemotePlayKeyMappingDir:
ps4PlayTogetherPlayerCount: 0 ps4PlayTogetherPlayerCount: 0
ps4EnterButtonAssignment: 1 ps4EnterButtonAssignment: 1
ps4ApplicationParam1: 0 ps4ApplicationParam1: 0
@@ -764,9 +802,9 @@ PlayerSettings:
ps4ScriptOptimizationLevel: 0 ps4ScriptOptimizationLevel: 0
ps4Audio3dVirtualSpeakerCount: 14 ps4Audio3dVirtualSpeakerCount: 14
ps4attribCpuUsage: 0 ps4attribCpuUsage: 0
ps4PatchPkgPath: ps4PatchPkgPath:
ps4PatchLatestPkgPath: ps4PatchLatestPkgPath:
ps4PatchChangeinfoPath: ps4PatchChangeinfoPath:
ps4PatchDayOne: 0 ps4PatchDayOne: 0
ps4attribUserManagement: 0 ps4attribUserManagement: 0
ps4attribMoveSupport: 0 ps4attribMoveSupport: 0
@@ -781,18 +819,18 @@ PlayerSettings:
ps4attribEyeToEyeDistanceSettingVR: 0 ps4attribEyeToEyeDistanceSettingVR: 0
ps4IncludedModules: [] ps4IncludedModules: []
ps4attribVROutputEnabled: 0 ps4attribVROutputEnabled: 0
monoEnv: monoEnv:
splashScreenBackgroundSourceLandscape: {fileID: 0} splashScreenBackgroundSourceLandscape: {fileID: 0}
splashScreenBackgroundSourcePortrait: {fileID: 0} splashScreenBackgroundSourcePortrait: {fileID: 0}
blurSplashScreenBackground: 1 blurSplashScreenBackground: 1
spritePackerPolicy: spritePackerPolicy:
webGLMemorySize: 16 webGLMemorySize: 16
webGLExceptionSupport: 1 webGLExceptionSupport: 1
webGLNameFilesAsHashes: 0 webGLNameFilesAsHashes: 0
webGLDataCaching: 1 webGLDataCaching: 1
webGLDebugSymbols: 0 webGLDebugSymbols: 0
webGLEmscriptenArgs: webGLEmscriptenArgs:
webGLModulesDirectory: webGLModulesDirectory:
webGLTemplate: APPLICATION:Default webGLTemplate: APPLICATION:Default
webGLAnalyzeBuildSize: 0 webGLAnalyzeBuildSize: 0
webGLUseEmbeddedResources: 0 webGLUseEmbeddedResources: 0
@@ -806,6 +844,7 @@ PlayerSettings:
platformArchitecture: {} platformArchitecture: {}
scriptingBackend: scriptingBackend:
Android: 1 Android: 1
Server: 1
Standalone: 1 Standalone: 1
il2cppCompilerConfiguration: {} il2cppCompilerConfiguration: {}
managedStrippingLevel: {} managedStrippingLevel: {}
@@ -814,7 +853,7 @@ PlayerSettings:
allowUnsafeCode: 0 allowUnsafeCode: 0
useDeterministicCompilation: 1 useDeterministicCompilation: 1
enableRoslynAnalyzers: 1 enableRoslynAnalyzers: 1
additionalIl2CppArgs: additionalIl2CppArgs:
scriptingRuntimeVersion: 1 scriptingRuntimeVersion: 1
gcIncremental: 1 gcIncremental: 1
assemblyVersionValidation: 1 assemblyVersionValidation: 1
@@ -822,16 +861,16 @@ PlayerSettings:
apiCompatibilityLevelPerPlatform: {} apiCompatibilityLevelPerPlatform: {}
m_RenderingPath: 1 m_RenderingPath: 1
m_MobileRenderingPath: 1 m_MobileRenderingPath: 1
metroPackageName: Template_3D metroPackageName: Template3D
metroPackageVersion: metroPackageVersion: 1.0.0.0
metroCertificatePath: metroCertificatePath:
metroCertificatePassword: metroCertificatePassword:
metroCertificateSubject: metroCertificateSubject:
metroCertificateIssuer: metroCertificateIssuer:
metroCertificateNotAfter: 0000000000000000 metroCertificateNotAfter: 0000000000000000
metroApplicationDescription: Template_3D metroApplicationDescription: Template_3D
wsaImages: {} wsaImages: {}
metroTileShortName: metroTileShortName: TestProject
metroTileShowName: 0 metroTileShowName: 0
metroMediumTileShowName: 0 metroMediumTileShowName: 0
metroLargeTileShowName: 0 metroLargeTileShowName: 0
@@ -845,23 +884,23 @@ PlayerSettings:
metroSplashScreenUseBackgroundColor: 0 metroSplashScreenUseBackgroundColor: 0
platformCapabilities: {} platformCapabilities: {}
metroTargetDeviceFamilies: {} metroTargetDeviceFamilies: {}
metroFTAName: metroFTAName:
metroFTAFileTypes: [] metroFTAFileTypes: []
metroProtocolName: metroProtocolName:
vcxProjDefaultLanguage: vcxProjDefaultLanguage:
XboxOneProductId: XboxOneProductId:
XboxOneUpdateKey: XboxOneUpdateKey:
XboxOneSandboxId: XboxOneSandboxId:
XboxOneContentId: XboxOneContentId:
XboxOneTitleId: XboxOneTitleId:
XboxOneSCId: XboxOneSCId:
XboxOneGameOsOverridePath: XboxOneGameOsOverridePath:
XboxOnePackagingOverridePath: XboxOnePackagingOverridePath:
XboxOneAppManifestOverridePath: XboxOneAppManifestOverridePath:
XboxOneVersion: 1.0.0.0 XboxOneVersion: 1.0.0.0
XboxOnePackageEncryption: 0 XboxOnePackageEncryption: 0
XboxOnePackageUpdateGranularity: 2 XboxOnePackageUpdateGranularity: 2
XboxOneDescription: XboxOneDescription:
XboxOneLanguage: XboxOneLanguage:
- enus - enus
XboxOneCapability: [] XboxOneCapability: []
@@ -874,31 +913,31 @@ PlayerSettings:
XboxOneAllowedProductIds: [] XboxOneAllowedProductIds: []
XboxOnePersistentLocalStorageSize: 0 XboxOnePersistentLocalStorageSize: 0
XboxOneXTitleMemory: 8 XboxOneXTitleMemory: 8
XboxOneOverrideIdentityName: XboxOneOverrideIdentityName:
XboxOneOverrideIdentityPublisher: XboxOneOverrideIdentityPublisher:
vrEditorSettings: {} vrEditorSettings: {}
cloudServicesEnabled: cloudServicesEnabled:
UNet: 1 UNet: 1
luminIcon: luminIcon:
m_Name: m_Name:
m_ModelFolderPath: m_ModelFolderPath:
m_PortalFolderPath: m_PortalFolderPath:
luminCert: luminCert:
m_CertPath: m_CertPath:
m_SignPackage: 1 m_SignPackage: 1
luminIsChannelApp: 0 luminIsChannelApp: 0
luminVersion: luminVersion:
m_VersionCode: 1 m_VersionCode: 1
m_VersionName: m_VersionName:
apiCompatibilityLevel: 6 apiCompatibilityLevel: 6
activeInputHandler: 0 activeInputHandler: 0
cloudProjectId: cloudProjectId:
framebufferDepthMemorylessMode: 0 framebufferDepthMemorylessMode: 0
qualitySettingsNames: [] qualitySettingsNames: []
projectName: projectName:
organizationId: organizationId:
cloudEnabled: 0 cloudEnabled: 0
legacyClampBlendShapeWeights: 0 legacyClampBlendShapeWeights: 0
playerDataPath: playerDataPath:
forceSRGBBlit: 1 forceSRGBBlit: 1
virtualTexturingSupportEnabled: 0 virtualTexturingSupportEnabled: 0