Swift 명령행 도구의 패키지 관리 도구 "최소"설정 및 작업 방법

6820 단어 Swiftmint

입문


워낙 신경이 쓰여서 모콜로의 설치를 가져오기로 했어요.

"Mint"란 무엇입니까?


Swift 명령행 도구의 설치 및 실행을 관리하는 도구입니다.
Bundler의 Swift 버전을 고려하면 이해하기 쉽다.

이점


기본적으로 Bundler를 사용하여 Ruby 라이브러리를 관리하는 것과 같은 이점이 있습니다.
  • Swift 명령줄 도구의 버전을 프로젝트에서 쉽게 정렬할 수 있음
  • 각 항목마다 Swift 명령행 도구 버전을 사용할 수 있음
  • 환경

  • OS:macOS Catalina 10.15
  • Mint:0.13.0
  • 설치하다


    최소 설치


    Homebrew에서 설치합니다.
    $ brew install mint
    
    ke 또는 SwiftPM에 설치하려면 공식 설명서를 참조하십시오.
    https://github.com/yonaskolb/Mint#installing

    최소 버전 확인


    최소 버전을 확인합니다.
    $ mint version
    Version: 0.13.0
    

    조작 방법


    작은 파일 만들기

    Mintfile라는 파일을 만들고 사용하고 싶은 패키지를 설명합니다.
    Mintfile을 만들지 않고 패키지를 관리할 수 있지만, 프로젝트에서 패키지 버전을 통일하려면 Mintfile이 매우 간단합니다.
    Mintfile
    realm/[email protected]
    uber/[email protected]
    
    문서 레지스트리에 항목을 추가합니다.

    패키지 설치

    {ユーザー名}/{リポジトリ名}@{バージョン} 명령을 실행하여 로컬 설치mint bootstrap에 설명된 모든 소프트웨어 패키지입니다.
    $ mint bootstrap
    
    Mintfile 옵션은 로그를 상세하게 출력합니다.
    패키지를 설치하지 못했을 때 설치할 수 있습니다.
    설치된 패키지는 건너뛰기 때문에 편집 --verbose 의 일부분도 효과적으로 설치할 수 있습니다.
    보충하여 기록하다Mintfile 옵션이 0.16.0에 추가되었습니다.
    https://github.com/yonaskolb/Mint/releases/tag/0.16.0
    지정--overwrite하면 바이너리가 이미 있을 때 자동으로 입력됩니다--overwrite y.
    CI 시 첨부해야 하는 옵션입니다.

    설치된 패키지 목록

    y 명령을 실행하여 설치된 패키지의 목록을 내보낼 수 있습니다.
    $ mint list
    🌱  Installed mint packages:
      mockolo
        - 1.1.1
      SwiftLint
        - 0.38.0
    

    패키지 실행

    mint list에 지정된 패키지 명령입니다.
    $ mint run {パッケージ名} {コマンド}
    
    예제
    $ mint run swiftlint swiftlint version
    🌱  Using realm/SwiftLint 0.38.0 from Mintfile.
    🌱  SwiftLint 0.38.0 already installed
    🌱  Running swiftlint 0.38.0...
    0.38.0
    
    int의 특징으로 패키지를 실행할 때 설치되지 않으면 자동으로 설치합니다.
    CI/CD 환경mint run {パッケージ名} {コマンド}에서 필요한 패키지만 설치하면 하나의 Mintfile에서 여러 워크플로우를 효과적으로 사용할 수 있습니다.

    패키지 제거

    mint bootstrap에서 지정된 패키지를 마운트 해제합니다.
    $ mint uninstall {パッケージ名}@{バージョン}
    
    패키지는 여러 버전을 설치할 수 있으므로 기본적으로 제거할 버전을 지정하십시오.
    버전이 지정되지 않으면 모든 버전을 마운트 해제합니다.

    패키지 버전 업그레이드


    버전 mint uninstall {パッケージ名}@{バージョン} 만 변경하면 됩니다.
    이전 버전도 보존됩니다. 필요하지 않으면Mintfile.

    혜택: 로컬 설치 경로


    패키지는 기본적으로 프로젝트 폴더가 아닌 mint bootstrap에 설치됩니다.
    따라서 CocoaPods나 Carthage처럼 설치 폴더를 mint uninstall {パッケージ名}@{バージョン}에 추가하지 않아도 버전 제어를 할 수 없습니다.
    설치 폴더에서 대충 확인해보니 프로젝트 이름으로 패키지를 관리하지 않은 것 같습니다.
    서로 다른 항목 사이에 같은 버전의 패키지를 사용하면 같은 폴더를 참조할 수 있습니다.
    CI에서는 사용하기 어렵기 때문에 /usr/local/lib/mint 에서 지정.gitignore 에서 지정MINT_PATH 에서 지정mint/lib 하면 됩니다.
    로컬에서 다음과 같이 설정할 수 있습니다.
    .bash_profile
    if which mint >/dev/null; then
      export MINT_PATH="${HOME}/.mint/lib"
      export MINT_LINK_PATH="${HOME}/.mint/bin"
    fi
    

    참고: Xcode 11.5 이상의 Run Script Phase는 둘러싸여 있어야 합니다.


    Xcode 11.5 이상의 Run Script Phase에서 Mint를 사용하면 다음과 같은 구축 오류가 발생합니다.

    스크립트의 시작 부분MINT_LINK_PATH을 실행하면 피할 수 있지만 부작용이 있을 수 있습니다.
    부작용이 있어요.최소값을 사용하여 R.swift를 관리하는 경우 Missing value for mint/bin 오류가 발생합니다.
    int에 구축된 명령행 도구는 macOS에서 실행되기 때문에 unset SDKROOT 전에 SDKROOT 를 추가하여 SDK를 명확하게 지정하는 것이 좋습니다.

    Mint+Carthage+XcodeGen을 사용하는 경우 다음과 같이 설정합니다.
    Carthage가 관리하는 라이브러리의 종류에 따라 필요하지 않기 때문에 상기 오류가 발생하면 대응할 수 있습니다.
    project.yml
    options:
      carthageExecutablePath: xcrun --sdk macosx mint run Carthage/Carthage carthage
    
    참고 자료
  • https://github.com/yonaskolb/Mint/issues/179
  • https://twitter.com/the_uhooi/status/1331040735391404032?s=20
  • 끝내다


    Swift 명령행 도구를 간단하게 관리할 수 있습니다!
    iOS 응용 프로그램 개발에서 SwiftLint, Carthage, XcodeGen, Mockolo 등을 관리하는 데는 다양한 진전이 있을 것이다.

    참조 링크

  • yonaskolb/Mint: A package manager that installs and runs Swift CLI packages
  • Mint에서 Swift 관리 명령행 도구 - Qiita
  • 민트에 대해 조사했습니다.io - Medium
  • https://twitter.com/giginet/status/1219580555244625921?s=20
  • 좋은 웹페이지 즐겨찾기