소프트웨어를 빠르게 만들기 위해 템플릿 창고를 만들었어요

16366 단어 GitHubSwifttech

개시하다


요즘은 아이디어가 떠오르면 바로 앱을 시도해보는 경우가 많아서 기릿허브의 템플릿 창고 기능을 사용해 템플릿 창고를 만들었는데 그거 말이에요.
iOS 애플리케이션 개발 중인 템플릿 창고라면
이번 템플릿 창고는 다음과 같습니다.
https://github.com/tomoki69386/Template-iOS

템플릿 웨어하우스는


템플릿 창고란 창고의 코드를 직접 복제하여 새 창고로 사용할 수 있는 기능을 말한다.
포크와 달리 기초 창고에서 여러 개의 창고를 만들 수 있고 제출 역사가 다르다.

템플릿 저장소의

  • application
  • fastlane
  • github/actions
  • application


    애플리케이션과 Shared frame work 두 가지 타겟이 있습니다.
    최근 앱 개발에서는 위젯, 앱 클립스 등 호스트 애플리케이션과 다른 extension에서 코드를 공유해야 하는 경우가 늘자 shared frame work를 사용했다.
    자세한 내용은 XcodeGenproject.yml을 참조하십시오.

    fastlane


    인증서 관리는fastrane match를 사용하기 때문에 근처에 있는 코드가 있습니다.
    그리고fastfile에서 응용 프로그램 버전의 증가량을 정의했다.
    # アプリのバージョンを日付ベースにするためのlane
    # 例) 2020.12.31
    lane :upgrade_version do 
      today = Date.today
      shortVersionString = "#{today.year}.#{today.month}.#{today.day}"
    
      set_info_plist_value(
        path: './App/Resources/Info.plist',
        key: 'CFBundleShortVersionString',
        value: shortVersionString
      )
    
      set_info_plist_value(
        path: './Shared/Info.plist',
        key: 'CFBundleShortVersionString',
        value: shortVersionString
      )
    end
    
    # build numberをインクリメントするためのlane
    lane :increment do 
      build_number = get_info_plist_value(
        path: './App/Resources/Info.plist',
        key: 'CFBundleVersion'
      ).to_i
    
      build_number += 1
    
      set_info_plist_value(
        path: './App/Resources/Info.plist',
        key: 'CFBundleVersion',
        value: "#{build_number}"
      )
    
      set_info_plist_value(
        path: './Shared/Info.plist',
        key: 'CFBundleVersion',
        value: "#{build_number}"
      )
    end
    

    github/actions


    GiitHubActions에서 lint와 응용 프로그램,sharedframework의test를 실행하고 있습니다.
    name: CI
    
    on:
      pull_request:
        paths:
          - '.github/workflows/lint.yml'
          - '.swiftlint.yml'
          - '**/*.swift'
    
    jobs:
      lint:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: GitHub Action for SwiftLint
            uses: norio-nomura/action-[email protected]
          - name: GitHub Action for SwiftLint with --strict
            uses: norio-nomura/action-[email protected]
            with:
              args: --force-exclude
          - name: GitHub Action for SwiftLint (Only files changed in the PR)
            uses: norio-nomura/action-[email protected]
            env:
              DIFF_BASE: ${{ github.base_ref }}
    
    name: CI
    
    on:
      push:
        paths-ignore:
          - Docs/**
          - README.md
    
    env:
      DEVELOPER_DIR: /Applications/Xcode_11.6.app/Contents/Developer
    
    jobs:
      test-application:
        runs-on: macOS-latest
        env:
          MINT_PATH: mint/lib
          MINT_LINK_PATH: mint/bin
    
        steps:
        - uses: actions/checkout@v2
    
        - name: Install Mint
          run: brew install mint
    
        - name: Cache Mint packages
          uses: actions/cache@v2
          with:
            path: mint
            key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }}
            restore-keys: |
              ${{ runner.os }}-mint-
        - name: Generate Xcode project with XcodeGen
          run: mint run xcodegen xcodegen generate
    
        - name: application test
          run: |
            set -o pipefail
            xcodebuild build-for-testing test-without-building -project App.xcodeproj -scheme AppTests -configuration Debug -sdk iphonesimulator -destination "name=iPhone 8" ENABLE_TESTABILITY=YES | xcpretty -c
        - name: codecov
          run: bash <(curl -s https://codecov.io/bash)
          if: success()
      
      test-shared:
        runs-on: macOS-latest
        env:
          MINT_PATH: mint/lib
          MINT_LINK_PATH: mint/bin
    
        steps:
        - uses: actions/checkout@v2
    
        - name: Install Mint
          run: brew install mint
    
        - name: Cache Mint packages
          uses: actions/cache@v2
          with:
            path: mint
            key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }}
            restore-keys: |
              ${{ runner.os }}-mint-
        - name: Generate Xcode project with XcodeGen
          run: mint run xcodegen xcodegen generate
    
        - name: Shared framework test
          run: |
            set -o pipefail
            xcodebuild build-for-testing test-without-building -project App.xcodeproj -scheme SharedTests -configuration Debug -sdk iphonesimulator -destination "name=iPhone 8" ENABLE_TESTABILITY=YES | xcpretty -c
        - name: codecov
          run: bash <(curl -s https://codecov.io/bash)
          if: success()
    

    좋은 웹페이지 즐겨찾기