![]() |
VOOZH | about |
dotnet add package GiantCroissant.Lunar.Build.Mobile.iOS --version 0.1.1-ci.113
NuGet\Install-Package GiantCroissant.Lunar.Build.Mobile.iOS -Version 0.1.1-ci.113
<PackageReference Include="GiantCroissant.Lunar.Build.Mobile.iOS" Version="0.1.1-ci.113" />
<PackageVersion Include="GiantCroissant.Lunar.Build.Mobile.iOS" Version="0.1.1-ci.113" />Directory.Packages.props
<PackageReference Include="GiantCroissant.Lunar.Build.Mobile.iOS" />Project file
paket add GiantCroissant.Lunar.Build.Mobile.iOS --version 0.1.1-ci.113
#r "nuget: GiantCroissant.Lunar.Build.Mobile.iOS, 0.1.1-ci.113"
#:package GiantCroissant.Lunar.Build.Mobile.iOS@0.1.1-ci.113
#addin nuget:?package=GiantCroissant.Lunar.Build.Mobile.iOS&version=0.1.1-ci.113&prereleaseInstall as a Cake Addin
#tool nuget:?package=GiantCroissant.Lunar.Build.Mobile.iOS&version=0.1.1-ci.113&prereleaseInstall as a Cake Tool
RFC021: iOS Build Integration - Comprehensive iOS build component for the GiantCroissant Lunar Build system.
This component provides comprehensive iOS build capabilities including:
Built on RFC018: Build Component Specification patterns:
[BuildComponent("ios")]
public class IosBuildComponent : IBuildComponentV2, IMobileBuildComponent
IFastlaneRunner: Automation pipeline executionIProvisioningProfileService: Provisioning profile managementIXcodeValidationService: Xcode environment validationIIosSigningService: Code signing configurationITestFlightService: TestFlight deploymentIFirebaseDistributionService: Firebase App Distributionvar iosContext = new IosBuildContext
{
XcodeProjectPath = "./ios/Unity-iPhone.xcodeproj",
Scheme = "Unity-iPhone",
ExportMethod = "development",
BundleIdentifier = "com.example.app",
SigningConfig = new IosSigningConfig
{
UseAutomaticSigning = true,
TeamId = "TEAM123456"
}
};
{
"mobile": {
"ios": {
"enabled": true,
"xcodeProjectPath": "./ios",
"scheme": "Unity-iPhone",
"exportOptions": {
"method": "development",
"teamID": "YOUR_TEAM_ID",
"signingStyle": "automatic"
},
"deployments": {
"testflight": {
"apiKeyId": "XXXXXXXXXX",
"apiKeyPath": "./fastlane/AuthKey.p8",
"issuerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
},
"firebase": {
"appId": "1:1234567890:ios:abc123def456",
"serviceAccountKeyFile": "./firebase-service-account.json",
"testerGroups": ["internal-testers"]
}
}
}
}
}
var iosComponent = serviceProvider.GetService<IosBuildComponent>();
var buildContext = new IosBuildContext
{
XcodeProjectPath = "./ios/Unity-iPhone.xcodeproj",
Scheme = "Unity-iPhone",
ExportMethod = "development"
};
var buildSuccess = await iosComponent.BuildAsync(buildContext);
var deployContext = new IosDeployContext
{
UploadToTestFlight = true,
IpaPath = "./build/ios/App.ipa",
TestFlightConfig = new TestFlightConfig
{
ApiKeyId = "XXXXXXXXXX",
ApiKeyPath = "./fastlane/AuthKey.p8",
IssuerId = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
DistributeExternal = true,
Groups = { "Beta Testers" }
}
};
var deploySuccess = await iosComponent.DeployAsync(deployContext);
var deployContext = new IosDeployContext
{
UploadToFirebase = true,
IpaPath = "./build/ios/App.ipa",
FirebaseConfig = new IosFirebaseDistributionConfig
{
AppId = "1:1234567890:ios:abc123def456",
ServiceAccountKeyFile = "./firebase-service-account.json",
TesterEmails = { "tester@example.com" },
TesterGroups = { "internal-team" },
ReleaseNotes = "Latest iOS build with new features"
}
};
var deploySuccess = await iosComponent.DeployAsync(deployContext);
gem install fastlane)This implementation leverages proven patterns from the sango-card iOS build system:
Comprehensive error handling with RFC018 BuildComponentException patterns:
try
{
var result = await iosComponent.BuildAsync(context);
}
catch (BuildComponentException ex) when (ex.ComponentId == "ios")
{
// Handle iOS-specific build errors
_logger.LogError("iOS build failed: {Message}", ex.Message);
}
Component includes comprehensive test coverage:
This component follows RFC018 Build Component Specification standards:
For implementation details, see .
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 1 NuGet packages that depend on GiantCroissant.Lunar.Build.Mobile.iOS:
| Package | Downloads |
|---|---|
|
GiantCroissant.Lunar.Build
Meta-package that depends on the Lunar Build component packages for one-line install. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1-ci.113 | 182 | 10/7/2025 |
| 0.1.1-ci.112 | 174 | 10/7/2025 |
| 0.1.1-ci.111 | 267 | 9/15/2025 |
| 0.1.1-ci.110 | 263 | 9/15/2025 |
| 0.1.1-ci.109 | 259 | 9/15/2025 |
| 0.1.1-ci.108 | 253 | 9/15/2025 |
| 0.1.1-ci.107 | 247 | 9/15/2025 |
| 0.1.1-ci.104 | 224 | 9/15/2025 |
| 0.1.1-ci.90 | 174 | 9/8/2025 |
| 0.1.1-ci.40 | 110 | 9/6/2025 |
| 0.1.1-chore-ci-pack-mobile-... | 82 | 9/4/2025 |