London Escorts sunderland escorts 1v1.lol unblocked yohoho 76 https://www.symbaloo.com/mix/yohoho?lang=EN yohoho https://www.symbaloo.com/mix/agariounblockedpvp https://yohoho-io.app/ https://www.symbaloo.com/mix/agariounblockedschool1?lang=EN
-1.8 C
New York
Thursday, January 23, 2025

New – Add Your Swift Packages to AWS CodeArtifact


Voiced by Polly

Beginning at the moment, Swift builders who write code for Apple platforms (iOS, iPadOS, macOS, tvOS, watchOS, or visionOS) or for Swift purposes working on the server aspect can use AWS CodeArtifact to securely retailer and retrieve their package deal dependencies. CodeArtifact integrates with normal developer instruments corresponding to Xcode, xcodebuild, and the Swift Bundle Supervisor (the swift package deal command).

Easy purposes routinely embrace dozens of packages. Massive enterprise purposes may need lots of of dependencies. These packages assist builders velocity up the event and testing course of by offering code that solves widespread programming challenges corresponding to community entry, cryptographic features, or information format manipulation. Builders additionally embed SDKs–such because the AWS SDKs–to entry distant companies. These packages may be produced by different groups in your group or maintained by third-parties, corresponding to open-source tasks. Managing packages and their dependencies is an integral a part of the software program improvement course of. Trendy programming languages embrace instruments to obtain and resolve dependencies: Maven in Java, NuGet in C#, npm or yarn in JavaScript, and pip in Python simply to say just a few. Builders for Apple platforms use CocoaPods or the Swift Bundle Supervisor (SwiftPM).

Downloading and integrating packages is a routine operation for software builders. Nonetheless, it presents at the least two important challenges for organizations.

The primary problem is authorized. Organizations should be sure that licenses for third-party packages are appropriate with the anticipated use of licenses on your particular challenge and that the package deal doesn’t violate another person’s mental property (IP). The second problem is safety. Organizations should be sure that the included code is secure to make use of and doesn’t embrace again doorways or intentional vulnerabilities designed to introduce safety flaws in your app. Injecting vulnerabilities in common open-source tasks is called a provide chain assault and has turn into more and more common in recent times.

To deal with these challenges, organizations sometimes set up personal package deal servers on premises or within the cloud. Builders can solely use packages vetted by their group’s safety and authorized groups and made obtainable via personal repositories.

AWS CodeArtifact is a managed service that lets you safely distribute packages to your inner groups of builders. There is no such thing as a want to put in, handle, or scale the underlying infrastructure. We handle that for you, providing you with extra time to work in your apps as an alternative of the software program improvement infrastructure.

I’m excited to announce that CodeArtifact now helps native Swift packages, along with npm, PyPI, Maven, NuGet, and generic package deal codecs. Swift packages are a preferred option to package deal and distribute reusable Swift code components. To learn to create your personal Swift package deal, you’ll be able to comply with this tutorial. The neighborhood has additionally created greater than 6,000 Swift packages that you should utilize in your Swift purposes.

Now you can publish and obtain your Swift package deal dependencies out of your CodeArtifact repository within the AWS Cloud. CodeArtifact SwiftPM works with current developer instruments corresponding to Xcode, VSCode, and the Swift Bundle Supervisor command line instrument. After your packages are saved in CodeArtifact, you’ll be able to reference them in your challenge’s Bundle.swift file or in your Xcode challenge, in an analogous method you utilize Git endpoints to entry public Swift packages.

After the configuration is full, your network-jailed construct system will obtain the packages from the CodeArtifact repository, making certain that solely accredited and managed packages are used throughout your software’s construct course of.

How To Get Began
As standard on this weblog, I’ll present you the way it works. Think about I’m engaged on an iOS software that makes use of Amazon DynamoDB as a database. My software embeds the AWS SDK for Swift as a dependency. To adjust to my group insurance policies, the applying should use a particular model of the AWS SDK for Swift, compiled in-house and accredited by my group’s authorized and safety groups. On this demo, I present you ways I put together my atmosphere, add the package deal to the repository, and use this particular package deal construct as a dependency for my challenge.

For this demo, I give attention to the steps particular to Swift packages. You may learn the tutorial written by my colleague Steven to get began with CodeArtifact.

I take advantage of an AWS account that has a package deal repository (MySwiftRepo) and area (stormacq-test) already configured.

CodeArtifact repository

To let SwiftPM acess my CodeArtifact repository, I begin by accumulating an authentication token from CodeArtifact.

export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token 
                                     --domain stormacq-test              
                                     --domain-owner 012345678912         
                                     --query authorizationToken          
                                     --output textual content`

Observe that the authentication token expires after 12 hours. I have to repeat this command after 12 hours to acquire a recent token.

Then, I request the repository endpoint. I move the area identify and area proprietor (the AWS account ID). Discover the --format swift possibility.

export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint  
                               --domain stormacq-test               
                               --domain-owner 012345678912          
                               --format swift                       
                               --repository MySwiftRepo             
                               --query repositoryEndpoint           
                               --output textual content`

Now that I’ve the repository endpoint and an authentication token, I take advantage of the AWS Command Line Interface (AWS CLI) to configure SwiftPM on my machine.

SwiftPM can retailer the repository configurations at consumer stage (within the file ~/.swiftpm/configurations) or at challenge stage (within the file <your challenge>/.swiftpm/configurations). By default, the CodeArtifact login command creates a project-level configuration to help you use completely different CodeArtifact repositories for various tasks.

I take advantage of the AWS CLI to configure SwiftPM on my construct machine.

aws codeartifact login          
    --tool swift                
    --domain stormacq-test      
    --repository MySwiftRepo    
    --namespace aws             
    --domain-owner 012345678912

The command invokes swift package-registry login with the proper choices, which in flip, creates the required SwiftPM configuration information with the given repository identify (MySwiftRepo) and scope identify (aws).

Now that my construct machine is prepared, I put together my group’s accredited model of the AWS SDK for Swift package deal after which I add it to the repository.

git clone https://github.com/awslabs/aws-sdk-swift.git
pushd aws-sdk-swift
swift package deal archive-source
mv aws-sdk-swift.zip ../aws-sdk-swift-0.24.0.zip
popd

Lastly, I add this package deal model to the repository.

When utilizing Swift 5.9 or more moderen, I can add my package deal to my personal repository utilizing the SwiftPM command:

swift package-registry publish           
                       aws.aws-sdk-swift 
                       0.24.0            
                       --verbose

The variations of Swift earlier than 5.9 don’t present a swift package-registry publish command. So, I take advantage of the curl command as an alternative.

curl  -X PUT 
      --user "aws:$CODEARTIFACT_AUTH_TOKEN"               
      -H "Settle for: software/vnd.swift.registry.v1+json" 
      -F source-archive="@aws-sdk-swift-0.24.0.zip"       
      "${CODEARTIFACT_REPO}aws/aws-sdk-swift/0.24.0"

Discover the format of the package deal identify after the URI of the repository: <scope>/<package deal identify>/<package deal model>. The package deal model should comply with the semantic versioning scheme.

I can use the CLI or the console to confirm that the package deal is offered within the repository.

CodeArtifact List Packages

aws codeartifact list-package-versions      
                  --domain stormacq-test    
                  --repository MySwiftRepo  
                  --format swift            
                  --namespace aws           
                  --package aws-sdk-swift
{
    "variations": [
        {
            "version": "0.24.0",
            "revision": "6XB5O65J8J3jkTDZd8RMLyqz7XbxIg9IXpTudP7THbU=",
            "status": "Published",
            "origin": {
                "domainEntryPoint": {
                    "repositoryName": "MySwiftRepo"
                },
                "originType": "INTERNAL"
            }
        }
    ],
    "defaultDisplayVersion": "0.24.0",
    "format": "swift",
    "package deal": "aws-sdk-swift",
    "namespace": "aws"
}

Now that the package deal is offered, I can use it in my tasks as standard.

Xcode makes use of SwiftPM instruments and configuration information I simply created. So as to add a package deal to my Xcode challenge, I choose the challenge identify on the left pane, after which I choose the Bundle Dependencies tab. I can see the packages which might be already a part of my challenge. So as to add a personal package deal, I select the + signal underneath Packages.

Xcode add a package as dependency to a project

On the highest proper search subject, I enter aws.aws-sdk-swift (that is <scope identify>.<package deal identify>). After a second or two, the package deal identify seems on the checklist. On the highest proper aspect, you’ll be able to confirm the supply repository (subsequent to the Registry label). Earlier than choosing the Add Bundle button, choose the model of the package deal, similar to you do for publicly obtainable packages.

Add a private package from Codeartifact on Xcode

Alternatively, for my server-side or command-line purposes, I add the dependency within the Bundle.swift file. I additionally use the format (<scope>.<package deal identify>) as the primary parameter of .package deal(id:from:)perform.

    dependencies: [
        .package(id: "aws.aws-sdk-swift", from: "0.24.0")
    ],

After I sort swift package deal replace, SwiftPM downloads the package deal from the CodeArtifact repository.

Issues to Know
There are some issues to remember earlier than importing your first Swift packages.

  • Be certain to replace to the most recent model of the CLI earlier than making an attempt any command proven within the previous directions.
  • It’s a must to use Swift model 5.8 or newer to make use of CodeArtifact with the swift package deal command. On macOS, the Swift toolchain comes with Xcode. Swift 5.8 is offered on macOS 13 (Ventura) and Xcode 14. On Linux and Home windows, you’ll be able to obtain the Swift toolchain from swift.org.
  • It’s a must to use Xcode 15 on your iOS, iPadOS, tvOS, or watchOS purposes. I examined this with Xcode 15 beta8.
  • The swift package-registry publish command is offered with Swift 5.9 or newer. While you use Swift 5.8, you should utilize curlto add your package deal, as I confirmed within the demo (or use any HTTP consumer of your selection).
  • Swift packages have the idea of scope. A scope offers a namespace for associated packages inside a package deal repository. Scopes are mapped to CodeArtifact namespaces.
  • The authentication token expires after 12 hours. We propose writing a script to automate its renewal or utilizing a scheduled AWS Lambda perform and securely storing the token in AWS Secrets and techniques Supervisor (for instance).

Troubleshooting
If Xcode can’t discover your personal package deal, double-check the registry configuration in ~/.swiftpm/configurations/registries.json. Particularly, verify if the scope identify is current. Additionally confirm that the authentication token is current within the keychain. The identify of the entry is the URL of your repository. You may confirm the entries within the keychain with the /Utility/Utilities/Keychain Entry.app software or utilizing the safety command line instrument.

safety find-internet-password                                                  
          -s "stormacq-test-012345678912.d.codeartifact.us-west-2.amazonaws.com" 
          -g

Right here is the SwiftPM configuration on my machine.

cat ~/.swiftpm/configuration/registries.json

{
  "authentication" : {
    "stormacq-test-012345678912.d.codeartifact.us-west-2.amazonaws.com" : {
      "loginAPIPath" : "/swift/MySwiftRepo/login",
      "sort" : "token"
    }
  },
  "registries" : {
    "aws" : { // <-- that is the scope identify!
      "url" : "https://stormacq-test-012345678912.d.codeartifact.us-west-2.amazonaws.com/swift/MySwiftRepo/"
    }
  },
  "model" : 1
}

Keychain item for codeartifact authentication token

Pricing and Availability
CodeArtifact prices for Swift packages are the identical as for the opposite package deal codecs already supported. CodeArtifact billing relies on three metrics: the storage (measured in GB monthly), the variety of requests, and the info switch out to the web or to different AWS Areas. Information switch to AWS companies in the identical Area will not be charged, which means you’ll be able to run your CICD jobs on Amazon EC2 Mac situations, for instance, with out incurring a cost for the CodeArtifact information switch. As standard, the pricing web page has the main points.

CodeArtifact for Swift packages is offered in all 13 Areas the place CodeArtifact is offered.

Now go construct your Swift purposes and add your personal packages to CodeArtifact!

— seb

PS : Are you aware you’ll be able to write Lambda features within the Swift programming language? Test the fast begin information or comply with this 35-minute tutorial.



Related Articles

Social Media Auto Publish Powered By : XYZScripts.com