<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "PackageDescription",
  "identifier" : "/documentation/PackageDescription/Version/init(_:_:_:prereleaseIdentifiers:buildMetadataIdentifiers:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "PackageDescription"
    ],
    "preciseIdentifier" : "s:18PackageDescription7VersionV___21prereleaseIdentifiers013buildMetadataE0ACSi_S2iSaySSGAFtcfc"
  },
  "title" : "init(_:_:_:prereleaseIdentifiers:buildMetadataIdentifiers:)"
}
-->

# init(_:_:_:prereleaseIdentifiers:buildMetadataIdentifiers:)

Initializes a version struct with the provided components of a semantic version.

```
init(_ major: Int, _ minor: Int, _ patch: Int, prereleaseIdentifiers: [String] = [], buildMetadataIdentifiers: [String] = [])
```

## Parameters

`major`

The major version number.

`minor`

The minor version number.

`patch`

The patch version number.

`prereleaseIdentifiers`

The pre-release identifier.

`buildMetadataIdentifiers`

Build metadata that identifies a build.

## Discussion> Precondition: `major >= 0 && minor >= 0 && patch >= 0`.

> Precondition: `prereleaseIdentifiers` can contain only ASCII alpha-numeric characters and “-”.

> Precondition: `buildMetadataIdentifiers` can contain only ASCII alpha-numeric characters and “-”.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)