Android에서 fastlane 사용

12628 단어 fastlaneAndroid
fastlane하면 iOS를 하는 사람이라면 사용하고 들은 도구가 될 것 같아요.
fastlane은 iOS뿐만 아니라 안드로이드도 사용할 수 있습니다!
그러나 모든 기능을 다 사용할 수 있는 것은 아니다.
안드로이드에서 사용할 수 있는 것은 두 가지입니다.

  • supply: Google Play에 업로드

  • screengrab: 캡처 만들기
  • fastlane 가져오기


    ※ 루비의 환경이 필요합니다.
    sudo gem install fastlane --verbose
    

    fastrane 설정


    fastlane을 사용하려면 프로젝트 내에서fastlane의 설정 파일을 만들어야 합니다.

    ①init


    init 명령을 사용하면 질문에 대답하기만 하면 필요한 파일을 만들 수 있습니다.
    fastlane init
    

    ②Git


    Giit로서 하드웨어 관리를 하고 있습니까?그런 다음 y를 누릅니다.(하지 않은 사람은n
    Do you have everything commited in version control? If not please do so now!
    (y/n)
    

    ③ 포장명


    포장 이름을 붙여서 들을 거니까 포장 이름을 붙여야 해요.
    To not re-enter your packagename and issuer every time you run one of the fastlane tools or fastlane, these will be stored in a so-called Appfile.
    Package Name (com.krausefx.app):
    

    ④ 인증 파일 경로


    Google play 인증 파일의 경로를 입력했기 때문에 인증 파일의 경로를 입력합니다.(입력하고 싶지 않은 사람은 오락 버튼을 눌러주세요)
    인증 파일을 설정한 후 supply를 사용하여 Google play에 apk를 업로드할 수 있습니다.
    인증 서류의 제작 방법에 관해서는 여기.를 참조하십시오.(이 근처는 다음에 쓰세요.)
    Follow the Setup Guide on how to get the Json file: https://github.com/fastlane/fastlane/tree/master/supply#setup
    Path to the json secret file: 
    

    ⑤metadata


    Google Play에 게재된 애플리케이션의 설명 및 이미지 파일 등을 관리할 수 있습니까?그래서 관리하고 싶은 사람, 관리하고 싶지 않은 사람이다.
    Do you plan on uploading metadata, screenshots and builds to Google Play using
    fastlane? (y/n) 
    

    ⑥ 성공

    Successfully finished setting up fastlane
    
    성공하다
    프로젝트에 fastlane 폴더가 있어야 합니다 (\') b

    문서 설명


    Fastfile


    이것은 처리 프로그램, 테스트 등을 쓰는 파일이다.
    fastlane_version "1.107.0"
    
    default_platform :android
    
    platform :android do
      before_all do
         ENV["SLACK_URL"] = "slackのweb hookのurl"
      end
    
      desc "Runs all the tests"
      lane :test do
        gradle(task: "test")
      end
    
      desc "Submit a new Beta Build to Crashlytics Beta"
      lane :beta do
        gradle(task: "assembleDebug")
        crashlytics(
            api_token: "トークン",
            build_secret: "トークン",
            groups: "betaのグループ名",
            emails: "メアド",
            debug: "true"
         )
      end
    
      desc "Deploy a new version to the Google Play"
      lane :deploy do
        gradle(task: "assembleRelease")
        supply
      end
    
      after_all do |lane|
        slack(
            message: ":tada: Successfully deployed new App Update.\(^o^)/"
          )
      end
    
      error do |lane, exception|
        slack(
           message: exception.message,
           success: false
        )
      end
    end
    

    Fastfile 의 명령 설명


    lane


    테스트와 업로드 apk 등의 처리를 정의했습니다.

    desc


    랜의 설명이야.

    crashlytics


    Fabric의 Beta.
    이렇게 하면 베타에 apk를 올릴 수 있다.
    Fabric Beta의 사용 방법은 여기.를 참조하십시오.

    supply


    apk를 Developer Constore에 업로드합니다.
    ※ 인증 서류를 설치해야 합니다.

    slack


    슬랙한테 통지해.
    여기에 슬랙의 웹 페이지 훅의 URL을 써 주세요.
    before_all do
      ENV["SLACK_URL"] = "slackのweb hookのurl"
    end
    

    gradle


    Gradle 명령을 실행합니다.

    Appfile


    인증 정보와 애플리케이션의 패키지 이름이 적혀 있습니다.
    json_key_file "認証ファイルのパス"
    package_name "com.gupuru.hogehoge"
    

    metadata


    Developer Constore에 업로드된 앱의 캡처와 설명문 등이 담겼다.

    팩스 사용

    fastlane 명령만 했어요.
    fastlane
    
    이렇게 하면 이런 느낌이 든다.실행할 번호를 입력하십시오.
    +--------+----------------+---------------------------------------------+
    |                        Available lanes to run                         |
    +--------+----------------+---------------------------------------------+
    | Number | Lane Name      | Description                                 |
    +--------+----------------+---------------------------------------------+
    | 1      | android test   | Runs all the tests                          |
    | 2      | android beta   | Submit a new Beta Build to Crashlytics Beta |
    | 3      | android deploy | Deploy a new version to the Google Play     |
    | 0      | cancel         | No selection, exit fastlane!                |
    +--------+----------------+---------------------------------------------+
    
    예를 들어, android beta를 사용하려면 2를 누릅니다.
    그리고...
    fastlane.tools finished successfully
    
    성공(*•̀ω•́ )b
    겸사겸사 말씀드리지만...
    fastlane android beta
    
    할 수 있어.

    어플을 캡처해보도록 하겠습니다.


    fastlanescreengrab를 사용하여 응용 프로그램의 캡처를 찍어 보세요.

    설정

    gradle에 두 개를 추가하십시오.
    build.gradle
    dependencies {
        androidTestCompile 'com.android.support:support-annotations:25.0.0'
        androidTestCompile 'tools.fastlane:screengrab:0.5.5'
        //...
    }
    
    debug/AndroidManifest에 이것을 추가하세요.
    src/debug/AndroidManifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.gupuru.hogehoge">
    
        <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    
    </manifest>
    
    그리고 캡처하고 싶은 곳에 추가Screengrab.screenshot("screan");한다.
    @RunWith(JUnit4.class)
    public class JUnit4StyleTests {
    
        @ClassRule
        public static final LocaleTestRule localeTestRule = new LocaleTestRule();
    
        @Rule
        public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);
    
        @Test
        public void testTakeScreenshot() {
            Screengrab.screenshot("screan");
        }
    
    }
    

    실행


    우선 집행assembleAndroidTest.
    ./gradlew assembleDebug assembleAndroidTest
    
    다음은 이거야.
    fastlane screengrab
    
    를 참고하십시오.
    Select your debug tests APK
    1. app/build/outputs/apk/app-debug-androidTest.apk
    2. app/build/outputs/apk/app-debug.apk
    
    만약 성공한다면 이런 화면을 찍을 수 있을 것이다.

    참고로 Fastfile에 이렇게 써도 됩니다(•̀ᴗ•́)و
     lane :test do
        gradle(task: "assembleDebug assembleAndroidTest")
        screengrab
      end
    

    screengrab의 공식 샘플


    총결산


    fastrane 편리함 (/ω・)b
    ...내 생각에 fastlane가 할 수 있는 일은gradle의 플러그인 따위로 완성된 것 같아서 iOS와 같은 필요한 도구라고 할 수 없다???

    좋은 웹페이지 즐겨찾기