เบเปเบญเบเบเบทเป Dmitry, เบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฑเบเบเบฑเบเบเบปเบเบชเบญเบเปเบเบเปเบฅเบดเบชเบฑเบ
เบเปเบญเบเบซเบเปเบฒเบเบตเป, เบเปเบญเบเปเบเปเบฅเบญเบ Firebase Test Lab เบชเปเบฒเบฅเบฑเบ Android เปเบฅเปเบงเปเบฅเบฐเบกเบฑเบเบเบธเบเบขเปเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบญเบเบเบถเปเบเบเบฑเบเบชเบดเบเปเบเบเบฐเบเบฒเบเบฒเบกเบงเบฒเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบ iOS เบเบญเบเปเบเบเบเบฒเบเบขเบนเปเปเบเบเบทเปเบเบเบฒเบเบเบฝเบงเบเบฑเบ. เบเปเบญเบเปเบเปเปเบเบซเบฒ Google เบซเบผเบฒเบเปเบฅเบฐเบเปเปเปเบกเปเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบฎเบฑเบเบงเบฝเบเบญเบญเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบญเบเบเบถเปเบเบเบฑเบเบชเบดเบเปเบเบเบฝเบเบเบปเบเปเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเบฑเบเบกเบตเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเบกเบตเบเบฒเบเบเบปเบเบชเบญเบ UI เปเบเปเบเบเบเบฒเบ iOS, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบปเบเบฅเบญเบเปเบเปเบเบงเบเบกเบฑเบเบขเบนเปเปเบเบญเบธเบเบฐเบเบญเบเบเบตเปเปเบเปเบเบดเบเปเบเบกเบทเปเบเบตเป, เปเบเบเบเปเบฅเบดเบชเบฑเบ Good Corporation. เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบชเบปเบเปเบ, เบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบ cat.
เปเบเปเบฅเบทเปเบญเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบชเปเบฒเบเบเปเปเบกเบนเบเปเบเบทเปเบญเบเบเบปเปเบเบเบฒเบเบขเปเบฒเบ - เบเบฑเบเปเบเบฑเบเบชเปเบงเบเบเบปเบงเปเบ GitHub เปเบฅเบฐเบฅเบฐเบเบปเบเบเบฒเบเบเปเปเบชเปเบฒเบ CircleCI. เบเบทเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบกเปเบ AmazingApp, bundleID เปเบกเปเบ com.company.amazingapp. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเบฒเบชเบฐเปเบซเบเบตเบเปเปเบกเบนเบเบเบตเปเบเบฑเบเบเบตเปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเบเปเปเบกเบฒ.
เบเปเบฒเบเปเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเปเปเบเบเบฒเบเบขเปเบฒเบเปเบเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเปเบเบเบฑเบเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบเบเปเบฒเปเบซเบฑเบ.
1. เบเบฒเบเบเบปเบเบชเบญเบเบเปเบงเบเบเบปเบเปเบญเบ
เบชเปเบฒเบเบชเบฒเบเบฒเปเบเบเบเบฒเบเปเบซเบกเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ UI:
$ git checkout develop
$ git pull
$ git checkout -b โfeature/add-ui-testsโ
เปเบซเปเปเบเบตเบเปเบเบเบเบฒเบเปเบ XCode เปเบฅเบฐเบชเปเบฒเบ Target เปเบซเบกเปเบเบตเปเบกเบตเบเบฒเบเบเบปเบเบชเบญเบ UI [XCode -> File -> New -> Target -> iOS Testing Bundle], เปเบซเปเบกเบฑเบเบเบทเปเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเปเบงเบเบเบปเบเปเบญเบ AmazingAppUITests.
เปเบเบเบตเปเบชเปเบงเบ Build Phases เบเบญเบ Target เบเบตเปเบชเปเบฒเบเบเบถเปเบ เปเบฅเบฐเบเบงเบเปเบเบดเปเบเบงเปเบฒ Target Dependencies - AmazingApp, เปเบ Compile Sources - AmazingAppUITests.swift.
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบตเปเบกเปเบเบเบฒเบเปเบเบเบเบฒเบเปเบฅเบทเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบปเปเบฒเปเบเปเบ Schemes เปเบเบเบเปเบฒเบเบซเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ UI เบเบญเบเบเบงเบเปเบฎเบปเบฒ [XCode -> Product -> Scheme -> New Scheme] เปเบฅเบฐเปเบซเปเบกเบฑเบเบเบทเปเบเบฝเบงเบเบฑเบ: AmazingAppUITests.
เบเบฒเบเบชเปเบฒเบเปเบเบเบเบฒเบเบเบตเปเบชเปเบฒเบเบเบทเปเบเบเปเบญเบเบเบฐเบเบญเบเบกเบตเปเบเบปเปเบฒเบซเบกเบฒเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบปเปเบเบเป - AmazingApp เปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ UI เปเบเบปเปเบฒเบซเบกเบฒเบ - AmazingAppUITests - เปเบเบดเปเบเบเบฒเบเบซเบเปเบฒเบเป
เบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบซเบกเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ UI. เปเบ XCode, เปเบซเปเบเบฅเบดเบเปเบชเปเปเบเบฅเปเปเบเบเบเบฒเบเปเบฅเบฐเปเบเบเบตเปเบชเปเบงเบเบเปเปเบกเบนเบ. เปเบซเปเบเบฅเบดเบเปเบชเป "+" เปเบฅเบฐเบชเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบซเบกเป, เบเบปเบงเบขเปเบฒเบ XCtest. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบเบกเบฑเบเปเบเบญเบฐเบเบฒเบเบปเบเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเปเบเบฑเปเบเบฅเปเบฒเบเบฑเบ tambourine เปเบเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเบกเบฒเบเบฑเบเบเบฒเบเปเบเบฑเบเบฅเบฐเบซเบฑเบ.
เบกเบตเบขเปเบฒเบเบซเบเปเบญเบเบชเบฒเบกเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบ: เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบปเปเบเบเป, เบเบฒเบเบเบปเบเบชเบญเบเบซเบเปเบงเบเบเบฒเบ (เบซเบผเบฑเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ, เบกเบฑเบเบกเบตเบขเบนเป, เปเบกเปเบเบเป?) เปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ UI เปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ.
เปเบเบเบตเป Target AmazingApp, Build Settings tab, เบเบฒเบเบชเปเบงเบเบเบฒเบเปเบเบฑเบเบฅเบฐเบซเบฑเบ. เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒ XCtest, เปเบฅเบทเบญเบ iOS Developer. เปเบ เบฎเบนเบเปเบเบเบเบฒเบเปเบเบฑเบเบฅเบฐเบซเบฑเบเบเบฒเบ, เปเบฅเบทเบญเบเบเบนเปเบกเบท. เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเปเบเปเบชเปเบฒเบเปเบเบฃเปเบเบฅเปเบเบฒเบเบชเบฐเบซเบเบญเบเปเบเบทเปเบญ, เปเบเปเปเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบทเบเปเบเบซเบฒเบกเบฑเบเปเบเบเบฒเบเบซเบผเบฑเบเปเบฅเบฑเบเบเปเบญเบ.
เบชเปเบฒเบฅเบฑเบ Target AmazingAppUITests เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ, เปเบเปเปเบเบเบฑเบ Product Bundle Identifier เบเบงเบเปเบฎเบปเบฒเปเบชเป com.company.amazingappuitests.
2. เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเบเบฒเบเปเบ Apple Developer Program
เปเบโเบเบตเปโเบซเบเปเบฒโเปเบเบโเบเบฒเบโเบเบนเปโเบเบฑเบโเบเบฐโเบเบฒ Appleโ, เปเบโเบเบตเปโเปเบโเบขเบฑเปเบโเบขเบทเบโ, เบเบปเบงโเบฅเบฐโเบเบธโเปเบฅเบฐโเบเปเปโเบกเบนเบโเบชเปเบงเบโเปเบฅเบฐโเบเบฒเบโเบเบฑเปเบโเปเบโเบเบตเปโเบเบฑเบ App IDs เบเบญเบโเบฅเบฒเบโเบเบฒเบโเบเบปเบงโเบฅเบฐโเบเบธโ. เบชเปเบฒเบ ID App เปเปเปเบเบตเปเปเบญเบตเปเบเบงเปเบฒ AmazingAppUITests เปเบฅเบฐ bundleID com.company.amazingappuitests.
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบกเบตเปเบญเบเบฒเบเบเบตเปเบเบฐเปเบเบฑเบเบเบปเบเบชเบญเบเปเบชเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบงเบเปเบเบขเบฑเปเบเบขเบทเบเปเบเบเบเปเบฒเบเบซเบฒเบ, เปเบเป ... เบเบฑเปเบเบเบญเบเบเบฒเบเบเบฐเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฐเบเบญเบเบกเบตเบเบฒเบเบเบฐเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบกเบฑเบเปเบญเบเปเบฅเบฐเบเบฐเบเบญเบเบเบปเบงเปเบฅเปเบเบเบปเบเบชเบญเบ. เบเบฒเบกเบเบฑเปเบเปเบฅเปเบง, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเบเบเบฑเบเบเบฑเบเบซเบฒเบเบฒเบเปเบเบฑเบ ID เบชเบญเบเบกเบฑเบเบเปเบงเบเปเบเบฃเปเบเบฅเปเบเบฒเบเบชเบฐเปเบญเบเบญเบฑเบเบเบฝเบง. เปเบเบเบเบต, เบกเบตเบเบฒเบเปเบเปเปเบเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบชเบฐเบซเบเปเบฒเบเบฒเบก - Wildcard App ID. เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเบฑเปเบเบเบญเบเบเบฒเบเบชเปเบฒเบ App ID เปเปเป, เปเบเปเปเบเบเบเบตเป Explicit App ID, เปเบฅเบทเบญเบ Wildcard App ID เบเบทเบเบฑเบเปเบเบฎเบนเบเปเปเบฒเบเป.
เปเบเบเบธเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ developer.apple.com เบชเบณเปเบฅเบฑเบเปเบฅเปเบง, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบซเบผเบธเบเปเปเบฒเบเปเบฒเบเบเบฃเบฒเบงเปเบเบต. เปเบซเปเบเบญเบเปเบ
เบเบนเปเบญเปเบฒเบเบเบตเปเปเบญเบปเบฒเปเบเปเบชเปเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒเปเบเบทเปเบญเปเบเปเบเบฐเปเบซเบเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบชเปเบงเบเบเบปเบงเปเบฅเบฐเบเบฑเบเบเบตเบเบตเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฑเบ Apple Developer Program เปเบฅเบฐ Github. เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ (เบเปเบฒเบเบฑเบเบเบตเบเบฑเบเปเบเบเปเปเบกเบตเบชเบดเปเบเบเบฑเปเบเบเปเบฒเบง) เบเบฑเบเบเบตเบเบญเบเปเบเบเบเบญเบก [email protected], เบกเบฒเบเบฑเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบตเปเปเบเบฑเปเบกเปเบเบ, เบฅเบปเบเบเบฐเบเบฝเบเบเบฑเบ developer.apple.com, เปเบฅเบฐเปเบเปเบเบเบฑเปเบเบกเบฑเบเปเบเบฑเบเบเบนเปเบเปเบฅเบดเบซเบฒเบเปเบเบเบเบฒเบ. เบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบซเปเบเบฑเบเบเบตเปเบเบปเปเบฒเปเบเบดเบ repository github เบเบญเบเบเปเบฅเบดเบชเบฑเบเบเบญเบเบเปเบฒเบเปเบฅเบฐเบชเปเบฒเบ repository เบชเปเบงเบเบเบปเบงเปเบซเบกเปเบเบตเปเบกเบตเบเบทเปเปเบเบฑเปเบ AmazingAppMatch.
3. เบเบฒเบโเบเบฑเปเบโเบเปเบฒ Fastlane เปเบฅเบฐโเบเบปเบโเบเบฐโเปเบซเบเบโเบเบฒเบโเปเบเปเบโเบเบฑเบโ
เปเบเบตเบ terminal, เปเบเปเบเบเปเบเบตเบเบตเปเบกเบตเปเบเบเบเบฒเบเปเบฅเบฐเปเบฅเบตเปเบกเบเบปเปเบ fastlane เบเบฒเบกเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบ
$ fastlane init
เบเปเบฒเบเบเบฐเบเบทเบเปเบเบทเบญเบเปเบซเปเปเบฅเบทเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเปเบฒเปเบเปเบเบตเปเบกเบตเบขเบนเป. เปเบฅเบทเบญเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบชเบตเป - manual project setup .
เปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบกเบตเปเบเปเบฅเบเบฐเบเปเบฅเบต fastlane เปเบซเบกเป, เปเบเบดเปเบเบเบฐเบเบญเบเบเปเบงเบเบชเบญเบเปเบเบฅเป - Appfile เปเบฅเบฐ Fastfile. เบชเบฐเบซเบผเบธเบเปเบเบเบซเบเปเป, เบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบงเปเปเบ Appfile, เปเบฅเบฐเบเบฝเบเบงเบฝเบเปเบ Fastfile, เปเบญเบตเปเบเบงเปเบฒ Lanes เปเบเบเปเบฒเบชเบฑเบ Fastlane. เบเปเบญเบเบเปเปเบเบฐเบเปเบฒเปเบซเปเบญเปเบฒเบเปเบญเบเบฐเบชเบฒเบเบเบฒเบเบเบฒเบ:
เปเบเบตเบ Appfile เปเบเบเบปเบงเปเบเปเปเบเบเปเปเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบกเบฑเบเปเบฅเบฐเปเบญเบปเบฒเบกเบฑเบเปเบเบซเบฒเปเบเบเบเบญเบกเบเปเปเปเบเบเบตเป:
app_identifier "com.company.amazingapp" # Bundle ID
apple_dev_portal_id "[email protected]" # ะกะพะทะดะฐะฝะฝัะน ะธะฝััะฐััััะบัััะฝัะน ะฐะบะบะฐัะฝั, ะธะผะตััะธะน ะฟัะฐะฒะพ ะฝะฐ ัะตะดะฐะบัะธัะพะฒะฐะฝะธะต iOS ะฟัะพะตะบัะฐ ะฒ Apple Developer Program.
team_id "LSDY3IFJAY9" # Your Developer Portal Team ID
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบทเบเปเบเบซเบฒ terminal เปเบฅเบฐเบญเบตเบเบเบฒเบกเบเบนเปเบกเบทเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเบฐ configure match.
$ fastlane match init
$ fastlane match development
เบเปเปเปเบ, เปเบชเปเบเปเปเบกเบนเบเบเบตเปเบฎเปเบญเบเบเป - repository, เบเบฑเบเบเบต, เบฅเบฐเบซเบฑเบเบเปเบฒเบ, เปเบฅเบฐเบญเบทเปเบเป.
เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐ: เปเบกเบทเปเบญเบเปเบฒเบเปเบเบตเบเปเบเบทเปเบญเบเปเบเปเบเบฒเบเบเบฑเบเบเบนเปเบเบฑเปเบเบเบณเบญเบดเบ, เบเปเบฒเบเบเบฐเบเบทเบเบเบฒเบกเปเบซเปเปเบชเปเบฅเบฐเบซเบฑเบเบเปเบฒเบเปเบเบทเปเบญเบเบญเบเบฅเบฐเบซเบฑเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ. เบกเบฑเบเปเบเบฑเบเบชเบดเปเบ เบชเบณ เบเบฑเบเบซเบผเบฒเบเบเบตเปเบเบฐเบเบฑเบเบเบถเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบตเป; เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบเบกเบฑเบเปเบกเบทเปเบญเบเบฑเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ CI!
เปเบเบฅเปเปเบซเบกเปเปเบเปเบเบฒเบเบปเบเบขเบนเปเปเบเปเบเบเปเบเบต fastlane - Matchfile. เปเบเบตเบเบกเบฑเบเบขเบนเปเปเบเบเบปเบงเปเบเปเปเบเบเปเปเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบกเบฑเบเปเบฅเบฐเบชเบฐเปเบเบเบกเบฑเบเปเบเบเบเบตเป:
git_url("https://github.com/YourCompany/AmazingAppMatch") #ะกะพะทะดะฐะฝะฝัะน ะฟัะธะฒะฐัะฝัะน ัะตะฟะพะทะธัะพัะธะน ะดะปั ั
ัะฐะฝะตะฝะธั ัะตััะธัะธะบะฐัะพะฒ ะธ ะฟัะพัะฐะนะปะพะฒ.
type("development") # The default type, can be: appstore, adhoc, enterprise or development
app_identifier("com.company.amazingapp")
username("[email protected]") # Your Infrastructure account Apple Developer Portal username
เบเบงเบเปเบฎเบปเบฒเบเบทเปเบกเบเปเปเบกเบนเบเบเบตเปเบขเปเบฒเบเปเบเปเบเบดเบเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเปเบเบฒเบเบเบฑเบเบเบนเปเปเบเบญเบฐเบเบฒเบเบปเบเปเบเบทเปเบญเปเบเบฑเบเบเบฒเบเบชเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเปเบเบเบขเบนเปเปเบ Crashlytics เปเบฅเบฐ / เบซเบผเบท AppStore, เบเบฑเปเบเปเบกเปเบ, เปเบเบทเปเบญเปเบเบฑเบ ID เบกเบฑเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเปเบฒเบ.
เปเบเป, เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบทเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเบชเปเบฒเบ ID Wildcard เบเบดเปเบชเบเปเบเบทเปเบญเปเบเบฑเบเบเบปเบเบเบฑเบเบเบถเบเบเบฒเบเบเบปเบเบชเบญเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเบตเบ Fastfile เปเบฅเบฐเปเบเบปเปเบฒเปเบเปเบเปเบชเบฑเปเบเบเบฒเบเปเบซเบกเป:
lane :testing_build_for_firebase do
match(
type: "development",
readonly: true,
app_identifier: "com.company.*",
git_branch: "uitests" # ัะพะทะดะฐะตะผ ะพัะดะตะปัะฝัะน ะฑัะฐะฝั ะดะปั development ัะตััะธัะธะบะฐัะฐ ะดะปั ะฟะพะดะฟะธัะธ ัะตััะพะฒะพะน ัะฑะพัะบะธ.
)
end
เบเบฑเบเบเบถเบเปเบฅเบฐเปเบเบปเปเบฒเปเบเปเบ terminal
fastlane testing_build_for_firebase
เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเบเบตเป fastlane เบชเปเบฒเบเปเบเบขเบฑเปเบเบขเบทเบเปเบซเบกเปเปเบฅเบฐเปเบญเบปเบฒเปเบชเปเปเบ repository. เบเบดเปเบเปเบซเบเป!
เปเบเบตเบ XCode. เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเปเบเบฃเปเบเบฅเปเบเบฒเบเบเบฑเบเบซเบฒเบเบตเปเบเบณเปเบเบฑเบเบเบญเบเปเบเบเบเบญเบก Match Development com.company.*, เปเบเบดเปเบเบเบฐเบเปเบญเบเบฅเบฐเบเบธเปเบงเปเปเบเบชเปเบงเบเบเบฒเบเบชเบฐเปเบญเบเปเบเบฃเปเบเบฅเปเบชเบณเบฅเบฑเบเปเบเบปเปเบฒเปเบฒเบ AmazingApp เปเบฅเบฐ AmazingAppUITests.
เบกเบฑเบเบเบฑเบเบเบปเบเบเบตเปเบเบฐเปเบเบตเปเบกเปเบชเบฑเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบเบฐเบเบญเบ. เปเบซเปเบเบญเบเปเบ
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบญเบเบเบฒเบเบเบปเบงเบขเปเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบเปเบเบทเปเบญเบงเปเบฒ lane testing_build_for_firebase เบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเบดเปเบเบชเบธเบเบฅเบปเบเปเบเบฑเบเปเบเบเบเบตเป:
lane :testing_build_for_firebase do
match(
type: "development",
readonly: true,
app_identifier: "com.company.*",
git_branch: "uitests"
)
scan(
scheme: 'AmazingAppUITests', # UI Test scheme
clean: true, # Recommended: This would ensure the build would not include unnecessary files
skip_detect_devices: true, # Required
build_for_testing: true, # Required
sdk: 'iphoneos', # Required
should_zip_build_products: true, # Must be true to set the correct format for Firebase Test Lab
)
firebase_test_lab_ios_xctest(
gcp_project: 'AmazingAppUITests', # Your Google Cloud project name (ะบ ััะพะน ัััะพัะบะต ะฒะตัะฝะตะผัั ะฟะพะทะถะต)
devices: [ # Device(s) to run tests on
{
ios_model_id: 'iphonex', # Device model ID, see gcloud command above
ios_version_id: '12.0', # iOS version ID, see gcloud command above
locale: 'en_US', # Optional: default to en_US if not set
orientation: 'portrait' # Optional: default to portrait if not set
}
]
)
end
เบชเปเบฒเบฅเบฑเบเบเปเปเบกเบนเบเบเบปเบเบเปเบงเบเบชเบปเบกเบเบนเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒ fastlane เปเบ CircleCI, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบญเปเบฒเบเปเบญเบเบฐเบชเบฒเบเบเบตเปเปเบเบฑเบเบเบฒเบเบเบฒเบ
เบขเปเบฒเบฅเบทเบกเปเบเบตเปเบกเปเปเบฒเบงเบฝเบเปเปเปเปเบชเป config.yml เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
build-for-firebase-test-lab:
macos:
xcode: "10.1.0"
working_directory: ~/project
shell: /bin/bash --login -o pipefail
steps:
- checkout
- attach_workspace:
at: ~/project
- run: sudo bundle install # ะพะฑะฝะพะฒะปัะตะผ ะทะฐะฒะธัะธะผะพััะธ
- run:
name: install gcloud-sdk # ะฝะฐ mac ะผะฐัะธะฝั ะฝะตะพะฑั
ะพะดะธะผะพ ัััะฐะฝะพะฒะธัั gcloud
command: |
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null
brew cask install google-cloud-sdk
- run:
name: build app for testing
command: fastlane testing_build_for_firebase # ะทะฐะฟััะบะฐะตะผ lane ัะฑะพัะบะธ ะธ ะพัะฟัะฐะฒะบะธ ะฒ firebase
4. เปเบเบฒเบฐเบเบฑเปเบเบเบปเบเบชเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบเบซเบเบฑเบ? เบเบฑเปเบเบเปเบฒ Firebase.
เปเบซเปเบเบญเบเบฅเบปเบเปเบเบชเบดเปเบเบเบตเปเบเบปเบเบเบงเบฒเบกเปเบเปเบเบทเบเบเบฝเบเบชเปเบฒเบฅเบฑเบ.
เบเบฒเบเบเบตเปเบญเบฑเบเบฏเบเบญเบเบเปเบฒเบเปเบเป Firebase เปเบเปเบเบฑเบเปเบเบเบเบฃเบต เบซเบผเบทเบเบฒเบเบเบตเบญเบฒเบเบเปเปเปเบกเปเบเบเบฑเบเปเบปเบ. เบเปเปเบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบทเปเบเบเบฒเบเบขเปเบฒเบเปเบเปเบเบดเบ, เปเบเบฒเบฐเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบฒเบเบเบปเบเบชเบญเบเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเบเบเบฒเบเปเบเบเบเปเบฒเบเบซเบฒเบเบเบตเปเบกเบตเบเบฒเบเบเปเบฒเปเบเปเบเบฃเบตเบซเบเบถเปเบเบเบต (เปเบขเบฑเบ, เปเบกเปเบเบเป?)
เบเบงเบเปเบฎเบปเบฒเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบเบฑเบเบเบตเปเบเบเบฅเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ (เบซเบผเบทเบญเบทเปเบเป, เบกเบฑเบเบเปเปเบชเปเบฒเบเบฑเบ), เปเบฅเบฐเปเบเบเบตเป
เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐ: เปเบเบเบฑเปเบเบเบญเบเบเบตเปเบเปเบฒเบเบกเบฒเปเบ Fastfile in lane firebase_test_lab_ios_xctest เบเบฒเบฃเบฒเบกเบดเปเบเบต gcp_project เบเบงเบเบเบปเบเบเบฑเบเบเบทเปเปเบเบเบเบฒเบ.
เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบต.
เบขเปเบฒเบเบดเบเปเบเบ, เบฅเบปเบเบเบฐเบเบฝเบเบเบฒเบเปเบเปเบเบฑเบเบเบตเบเบฝเบงเบเบฑเบเปเบ
เบเบนเปเบเบเปเบฒเบฅเบฑเบเปเบซเป $ 300 เบชเปเบฒเบฅเบฑเบเบเบต, เปเบเบดเปเบเปเบเบชเบฐเบเบฒเบเบเบฒเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ autotests เปเบกเปเบเปเบเบปเปเบฒเบเบฑเบเบเบตเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเบเบฃเบตเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ. เบเบงเบเปเบฎเบปเบฒเปเบชเปเบเปเปเบกเบนเบเบเบฒเบเบเปเบฒเบเปเบเบดเบเบเบญเบเบเปเบฒเบ, เบฅเปเบเปเบฒเบเบฒเบเบเบญเบเบเบปเบงเบเบปเบเบชเบญเบเบเบญเบ $1 เปเบฅเบฐเปเบเปเบฎเบฑเบ $300 เปเบเบปเปเบฒเบเบฑเบเบเบตเบเบญเบเบเปเบฒเบ. เบซเบผเบฑเบเบเบฒเบเบซเบเบถเปเบเบเบต, เปเบเบเบเบฒเบเบเบฐเบเบทเบเปเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบชเบนเปเปเบเบเบเบฒเบเบญเบฑเบเบเบฒเบเบฒเบชเบตเบเบฃเบต, เบเบฑเปเบเบเบฑเปเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบงเบปเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบชเบนเบเปเบชเบเปเบเบดเบเบเบตเปเปเบเบฑเบเปเบเปเบเป.
เปเบซเปเบเบฑเบเบเบทเบเปเบเบซเบฒเปเบเบฑเบเบเบตเปเบกเบตเปเบเบเบเบฒเบ Firebase เปเบฅเบฐเปเบญเบเบกเบฑเบเปเบเบซเบฒเปเบเบเบเบฒเบเบญเบฑเบเบเบฒเบเบฒเบชเบตเบเบญเบ Blaze - เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเบชเบดเปเบเบเบตเปเบเปเบญเบเบเปเบฒเบเบเปเบฒเปเบเบตเบเบเบญเบเปเบเบเบเปเบฒเบเบฑเบ.
เปเบเบเบฒเบเปเบเปเบเบญเบ gcloud, เปเบฅเบทเบญเบเปเบเบเบเบฒเบ Firebase เบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบฅเบทเบญเบเบฅเบฒเบเบเบฒเบเปเบกเบเบนเบซเบผเบฑเบ โเปเบเปเบฅเบเบฐเบเปเบฅเบตโ เปเบฅเบฐเปเบเบตเปเบก API เบเบฒเบเบเบปเบเบชเบญเบ Cloud เปเบฅเบฐ Cloud Tools Result API.
เบเบฒเบเบเบฑเปเบเปเบเบเบตเปเบฅเบฒเบเบเบฒเบเปเบกเบเบน โIAM เปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบซเบฒเบโ -> เบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบ -> เบชเปเบฒเบเบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบ. เบเบงเบเปเบฎเบปเบฒเปเบซเปเบชเบดเบเปเบเบเบฒเบเปเบเปเปเบเปเบเบเบเบฒเบ.
เบชเปเบฒเบเบฅเบฐเบซเบฑเบ API เปเบเบฎเบนเบเปเบเบ JSON
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบ JSON เบเบตเปเบเบฒเบงเปเบซเบฅเบเบกเบฒเปเบฅเบฑเบเบเปเบญเบเบเปเปเบกเบฒ, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฒเบฅเบฐเบเบฒเบเบฒเบเบเบดเบเบเบฑเปเบ Test Lab เบชเปเบฒเปเบฅเบฑเบ.
5. เบเบฒเบเบเบฑเปเบ CircleCI
เบเปเบฒเบเบฒเบกเบเบตเปเบชเบปเบกเปเบซเบเบชเบปเบกเบเบปเบเปเบเบตเบเบเบทเปเบ - เบเบฐเปเบฎเบฑเบเปเบเบงเปเบเบเบฑเบเบฅเบฐเบซเบฑเบเบเปเบฒเบ? เบเบปเบเปเบเบเบฒเบเบเปเบฝเบเปเบเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบญเบเปเบเบทเปเบญเบเบเปเปเบชเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบฎเบฑเบเบชเบฒเบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบฐเบเปเปเบกเบนเบเบฅเบฐเบญเบฝเบเบญเปเบญเบเบญเบทเปเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเบขเปเบฒเบเบเบญเบเปเบ. เปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเบเบฒเบ CircleCI, เปเบฅเบทเบญเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก
เปเบฅเบฐเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบเปเปเปเบเบเบตเป:
- เบเบฐเปเบ: GOOGLE_APPLICATION_CREDENTIALS
เบเปเบฒ: เปเบเบทเปเบญเปเบเบเบญเบเปเบเบฅเป json เบเบญเบเบฅเบฐเบซเบฑเบเบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบ gcloud - เบเบฐเปเบ: MATCH_PASSWORD
เบเปเบฒ: เบฅเบฐเบซเบฑเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบ github repository เบเปเบงเบเปเบเบขเบฑเปเบเบขเบทเบ - เบเบฐเปเบ: FASTLANE_PASSWORD
เบเปเบฒ: เบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบฑเบเบเบตเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบญเบ Apple Developer Portal
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบถเบเบเบฒเบเบเปเบฝเบเปเบเบ, เบชเปเบฒเบ PR เปเบฅเบฐเบชเบปเปเบเปเบซเปเบซเบปเบงเบซเบเปเบฒเบเบตเบกเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบงเบเบชเบญเบ.
เบเบปเบเปเบเปเบฎเบฑเบ
เปเบเบฑเบเบเบปเบเบกเบฒเบเบฒเบเบเบฒเบเบซเบกเบนเบเปเบเปเบเบตเปเบเปเบฒเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบเบต, เบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบเบเบตเปเบกเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบฑเบเบเบถเบเบงเบดเบเบตเปเบญเปเบเบซเบเปเบฒเบเปเบญเบธเบเบฐเบเบญเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบปเบเบชเบญเบ. เปเบเบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบฅเบฐเบเบธเบฎเบนเบเปเบเบเบญเบธเบเบฐเบเบญเบ iPhone X, เปเบเปเบเบฐเบชเบดเบเปเบฒเบชเบฐเบซเบเบญเบเบเบฒเบเบเบฑเบเปเบฅเบทเบญเบเบเบตเปเบญเบธเบเบปเบกเบชเบปเบกเบเบนเบเบเบฒเบเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบญเบเบฎเบนเบเปเบเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบฅเบฐเบชเบฐเบเบฑเบ iOS.
เบชเปเบงเบเบเบตเบชเบญเบเบเบฐเบเบทเบเบญเบธเบเบดเบเปเบซเปเบเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ Firebase Test Lab เปเบเบเปเบเบทเปเบญเบฅเบฐเบเบฑเปเบเบเบญเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบ Android.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com