-
Notifications
You must be signed in to change notification settings - Fork 2
unity-xcode-builder@v1.3.4 #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR upgrades the unity-xcode-builder package to version 1.3.4 with significant refactoring to improve code organization, error handling, and CI workflow structure.
- Major code refactoring with improved separation of concerns and utility functions
- Enhanced error handling and debugging output throughout the codebase
- Restructured CI workflows to use a matrix-based approach with external configuration
Reviewed Changes
Copilot reviewed 8 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Version bump to 1.3.4 and dependency updates |
| src/index.ts | Simplified main logic by extracting Xcode version handling |
| src/xcode.ts | Major refactoring with new functions, improved error handling, and better code organization |
| src/utilities.ts | Added new utility functions for file operations and pattern matching |
| src/XcodeProject.ts | Updated constructor parameter order and added new properties |
| .github/workflows/validate.yml | Restructured to use job matrix with external configuration |
| .github/workflows/build.yml | New workflow file for build execution |
| .github/workflows/build-options.json | Configuration file for build matrix options |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| throw new Error('Failed to get Xcode version!'); | ||
| } | ||
|
|
||
| const selectedXcodeVersionString = xcodeVersionMatch.groups.version; |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Potential undefined access. The groups property could be undefined even if the match succeeds. Add a null check before accessing the version property.
| await exec('sudo', ['xcodebuild', '-license', 'accept'], { ignoreReturnCode: true }); | ||
| await exec('sudo', ['xcodebuild', '-runFirstLaunch']); | ||
|
|
||
| return semver.coerce(xcodeVersionString); |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When xcodeVersionString is undefined (no input provided), this will return null from semver.coerce(), but the function return type is SemVer. Should return semver.coerce(selectedXcodeVersionString) instead.
| return semver.coerce(xcodeVersionString); | |
| return semver.coerce(selectedXcodeVersionString); |
|
|
||
| if (installedXcodeVersions.length === 0 || !xcodeVersionString.includes('latest')) { | ||
| if (installedXcodeVersions.length === 0 || !installedXcodeVersions.includes(xcodeVersionString)) { | ||
| throw new Error(`Xcode version ${xcodeVersionString} is not installed! You will need to install this is a step before this one.`); |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Grammatical error: 'install this is a step' should be 'install this in a step'.
| throw new Error(`Xcode version ${xcodeVersionString} is not installed! You will need to install this is a step before this one.`); | |
| throw new Error(`Xcode version ${xcodeVersionString} is not installed! You will need to install this in a step before this one.`); |
| throw new Error(`Failed to resolve: ${pattern}`); | ||
| } | ||
|
|
||
| return group ? match.groups?.[group] : match[1]; |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Potential undefined access. When group is provided but match.groups is undefined, this will return undefined instead of throwing an error as intended by the function logic.
| return group ? match.groups?.[group] : match[1]; | |
| if (group) { | |
| if (!match.groups || !(group in match.groups)) { | |
| throw new Error(`Group '${group}' not found in pattern: ${pattern}`); | |
| } | |
| return match.groups[group]; | |
| } else { | |
| return match[1]; | |
| } |
Uh oh!
There was an error while loading. Please reload this page.