ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืžื™ื™ึทืŸ ื ืึธืžืขืŸ ืื™ื– ื“ืžื™ื˜ืจื™, ืื™ืš ืึทืจื‘ืขื˜ ื•ื•ื™ ืึท ื˜ืขืกื˜ืขืจ ืื™ืŸ ื“ืขืจ ืคื™ืจืžืข ืžืขืœ ื•ื•ื™ืกื ืฉืึทืคึฟื˜. ื’ืึทื ืฅ ืœืขืฆื˜ื ืก ืื™ืš ืคืึทืจื˜ื™ืง ืฆื• ื”ืึทื ื“ืœืขืŸ ืžื™ื˜ ืึท ืœืขืคื™ืขืจืขืš ืคืจื™ืฉ ืฉื˜ืจื™ืš ืคื•ืŸ Firebase Test Lab - ื ื™ื™ืžืœื™, ืžื™ื˜ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกื˜ื™ื ื’ ืคื•ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ื™ืฆืŸ ื“ื™ ื’ืขื‘ื•ื™ืจืŸ ื˜ืขืกื˜ื™ื ื’ ืคืจื™ื™ืžื•ื•ืขืจืง XCUITest.

ืื™ื™ื“ืขืจ ื“ืขื, ืื™ืš ื”ืื˜ ืฉื•ื™ืŸ ื’ืขืคืจื•ื•ื•ื˜ Firebase Test Lab ืคึฟืึทืจ ืึทื ื“ืจื•ื™ื“ ืื•ืŸ ื˜ืึทืงืข ืœื™ื™ืงื˜ ืึทืœืฅ, ืึทื–ื•ื™ ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ื™ืึธืก ืคึผืจื•ื‘ื™ืจืŸ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืคื•ืก. ืื™ืš ื”ืื˜ ืฆื• ื’ื•ื’ืœ ืึท ืคึผืœืึทืฅ ืื•ืŸ ื ื™ื˜ ืึทืœืฅ ืื™ื– ื’ืขื•ื•ืขืŸ ืื•ื™ืก ื“ื™ ืขืจืฉื˜ืขืจ ืžืึธืœ, ืึทื–ื•ื™ ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ื˜ื•ื˜ืึธืจื™ืึทืœ ืึทืจื˜ื™ืงืœ ืคึฟืึทืจ ื“ื™ ื•ื•ืืก ื–ืขื ืขืŸ ื ืึธืš ืกื˜ืจืึทื’ืึทืœื™ื ื’.

ืึทื–ื•ื™, ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ UI ื˜ืขืกืฅ ืื•ื™ืฃ ืึท ื™ืึธืก ืคึผืจื•ื™ืขืงื˜, ืื™ืจ ืงืขื ืขืŸ ืฉื•ื™ืŸ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืœื•ื™ืคืŸ ื–ื™ื™ ืื•ื™ืฃ ืคืึทืงื˜ื™ืฉ ื“ืขื•ื•ื™ืกืขืก ื”ื™ื™ึทื ื˜, ืœื™ื‘ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš Good Corporation. ืคึฟืึทืจ ื“ื™ ืื™ื ื˜ืขืจืขืกื™ืจื˜, ื‘ืึทื’ืจื™ืกืŸ ืฆื• ืงืึทืฅ.

ืื™ืŸ ื“ืขืจ ื’ืขืฉื™ื›ื˜ืข, ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื‘ื•ื™ืขืŸ ืื•ื™ืฃ ืขื˜ืœืขื›ืข ืขืจืฉื˜ ื“ืึทื˜ืŸ - ืึท ืคึผืจื™ื•ื•ืึทื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื•ื™ืฃ GitHub ืื•ืŸ ื“ื™ CircleCI ื‘ื•ื™ืขืŸ ืกื™ืกื˜ืขื. ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื ืึธืžืขืŸ ืื™ื– AmazingApp, bundleID ืื™ื– com.company.amazingapp. ืื™ืš ืคืึธืจืฉื˜ืขืœืŸ ื“ืขื ื“ืึทื˜ืŸ ืžื™ื“ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืฆืขืžื™ืฉื•ื ื’.

ืื•ื™ื‘ ืื™ืจ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื–ื™ื›ืขืจ ืกืึทืœื•ืฉืึทื ื– ืื™ืŸ ื“ื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ื“ื™ืคืขืจืขื ื˜ืœื™, ื™ื™ึทื ื˜ื™ื™ืœืŸ ื“ื™ื™ืŸ ื“ืขืจืคืึทืจื•ื ื’ ืื™ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ.

1. ื“ื™ ื˜ืขืกืฅ ื–ื™ืš

ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜ ืฆื•ื•ื™ื™ึทื’ ืคึฟืึทืจ ื•ื™ ื˜ืขืกืฅ:

$ git checkout develop
$ git pull
$ git checkout -b โ€œfeature/add-ui-testsโ€

ืœืึธืžื™ืจ ืขืคึฟืขื ืขืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ XCode ืื•ืŸ ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืฆื™ืœ ืžื™ื˜ ื•ื™ ื˜ืขืกืฅ [XCode -> ื˜ืขืงืข -> ื ื™ื• -> ืฆื™ืœ -> ื™ืึธืก ื˜ืขืกื˜ื™ื ื’ ื‘ื•ื ื“ืœืข], ื’ืขื‘ืŸ ืขืก ื“ื™ ื–ื™ืš-ื™ืงืกืคึผืœืึทื ืึทื˜ืึธืจื™ ื ืึธืžืขืŸ AmazingAppUITests.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ื’ื™ื™ืŸ ืฆื• ื“ื™ Build Phases ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืคื•ืŸ ื“ื™ ื‘ืืฉืืคืŸ ื˜ืึทืจื’ืขื˜ ืื•ืŸ ื˜ืฉืขืง ืคึฟืึทืจ ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ื˜ืึทืจื’ืขื˜ ื“ืขืคึผืขื ื“ืขื ืกื™ืขืก - AmazingApp, ืื™ืŸ ืฆื•ื ื•ื™ืคื ืขืžืขืŸ ืงื•ื•ืืœืŸ - AmazingAppUITests.swift.

ื ื’ื•ื˜ืข ืคื™ืจ ืื™ื– ืฆื• ืฆืขื˜ื™ื™ืœืŸ ืคืึทืจืฉื™ื“ืขื ืข ื‘ื•ื™ืขืŸ ืึธืคึผืฆื™ืขืก ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืกืงื™ืžื–. ืžื™ืจ ืžืึทื›ืŸ ืึท ืกื›ืขืžืข ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ื•ื™ ื˜ืขืกืฅ [XCode -> ืคึผืจืึธื“ื•ืงื˜ -> ืกื›ืขืžืข -> ื ื™ื• ืกื›ืขืžืข] ืื•ืŸ ื’ืขื‘ืŸ ืขืก ื“ื™ ื–ืขืœื‘ืข ื ืึธืžืขืŸ: AmazingAppUITests.

ื‘ื•ื™ืขืŸ ืคื•ืŸ ื“ื™ ื‘ืืฉืืคืŸ ืกื›ืขืžืข ืžื•ื–ืŸ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื“ื™ ืฆื™ืœ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ - AmazingApp ืื•ืŸ Target UI ื˜ืขืกืฅ - AmazingAppUITests - ื–ืขืŸ ืกืงืจืขืขื ืฉืึธื˜

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ื“ืขืจื ืึธืš, ืžื™ืจ ืžืึทื›ืŸ ืึท ื ื™ื™ึทืข ื‘ื•ื™ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื•ื™ ื˜ืขืกืฅ. ืื™ืŸ XCode, ื“ืจื™ืงื˜ ืื•ื™ืฃ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื˜ืขืงืข ืื•ืŸ ื’ื™ื™ืŸ ืฆื• ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืึธืคึผื˜ื™ื™ืœื•ื ื’. ื“ืจื™ืงื˜ ืื•ื™ืฃ "+" ืื•ืŸ ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืœืžืฉืœ XCtest. ืžื™ืจ ื•ื•ืขืœืŸ ื“ืึทืจืคึฟืŸ ื“ืึธืก ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ืื™ืŸ ืกื“ืจ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ื“ืึทื ืกื™ื ื’ ืžื™ื˜ ืึท ื˜ืึทืžื‘ื•ืจื™ืŸ ื•ื•ืขืŸ ืขืก ืงื•ืžื˜ ืฆื• ืงืึธื“ ืกื™ื™ื ื™ื ื’.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืขืก ื–ืขื ืขืŸ ืœืคึผื—ื•ืช ื“ืจื™ื™ ื˜ืึทืจื’ืึทืฅ ืื™ืŸ ื“ื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜: ื“ื™ ื”ื•ื™ืคึผื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืึทืคึผืึทืจืึทื˜ ื˜ืขืกืฅ (ื ืึธืš ืึทืœืข, ื–ื™ื™ ืขืงืกื™ืกื˜ื™ืจืŸ, ืจืขื›ื˜?) ืื•ืŸ ื“ื™ ื˜ืึทืจื’ืขื˜ ื•ื™ ื˜ืขืกืฅ ืžื™ืจ ื‘ืืฉืืคืŸ.

ื’ื™ื™ืŸ ืฆื• ื˜ืึทืจื’ืขื˜ ืึทืžื™ื™ื–ื™ื ื’ ืึทืคึผ, ื‘ื•ื™ืขืŸ ืกืขื˜ื˜ื™ื ื’ืก ืงื•ื•ื™ื˜ืœ, ืงืึธื“ ืกื™ื™ื ื™ื ื’ ืื™ื“ืขื ื˜ื™ื˜ืขื˜ ืึธืคึผื˜ื™ื™ืœื•ื ื’. ืคึฟืึทืจ ื“ื™ XCtest ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืกืขืœืขืงื˜ื™ืจืŸ ื™ืึธืก ื“ืขื•ื•ืขืœืึธืคึผืขืจ. ืื™ืŸ ื“ื™ ืงืึธื“ ืกื™ื’ื ื™ื ื’ ืกื˜ื™ื™ืœ ืึธืคึผื˜ื™ื™ืœื•ื ื’, ืกืขืœืขืงื˜ื™ืจืŸ ืžืึทื ื•ืึทืœ. ืžื™ืจ ื”ืึธื‘ืŸ ื ืึธืš ื ื™ืฉื˜ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืึท ืคึผืจืึทื•ื•ื™ื–ืฉืึทื ื– ืคึผืจืึธืคื™ืœ, ืึธื‘ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืืฉื˜ื™ืžื˜ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ืื™ื ืึท ื‘ื™ืกืœ ืฉืคึผืขื˜ืขืจ.

ืคึฟืึทืจ Target AmazingAppUITests ืžื™ืจ ื˜ืึธืŸ ื“ื™ ื–ืขืœื‘ืข, ืึธื‘ืขืจ ืื™ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงื˜ ื‘ื•ื ื“ืœืข ื™ื“ืขื ื˜ื™ืคื™ืขืจ ื–ื™ื™ึทืœ ืžื™ืจ ืึทืจื™ื™ึทืŸ com.company.amazingappuitests.

2. ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึท ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ื“ื™ ืขืคึผืœ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคึผืจืึธื’ืจืึทื

ื’ื™ื™ืŸ ืฆื• ื“ื™ ืขืคึผืœ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคึผืจืึธื’ืจืึทื ื‘ืœืึทื˜, ื’ื™ื™ืŸ ืฆื• ื“ื™ ืกืขืจื˜ื™ืคื™ืงืึทืฅ, ื™ื“ืขื ื˜ื™ืคื™ืขืจืก & ืคึผืจืึธื•ืคื™ื™ืœื– ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืื•ืŸ ื“ืึทืŸ ืฆื• ื“ื™ ืึทืคึผ IDs ื–ื™ื™ึทืœ ืคื•ืŸ ื“ื™ ืื™ื“ืขื ื˜ื™ืคื™ืขืจืก ื ื•ืžืขืจ. ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืึทืคึผ ืฉื™ื™ึทืŸ ื’ืขืจื•ืคึฟืŸ AmazingAppUITests ืื•ืŸ bundleID com.company.amazingappuitests.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืื™ืฆื˜ ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ืฆื™ื™ื›ืŸ ืื•ื ื“ื–ืขืจ ื˜ืขืกืฅ ืžื™ื˜ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ, ืึธื‘ืขืจ ... ื“ื™ ืคึผืจืึธืฆืขื“ื•ืจ ืคึฟืึทืจ ืึทืกืขืžื‘ืึทืœ ืึท ื‘ื•ื™ืขืŸ ืคึฟืึทืจ ื˜ืขืกื˜ื™ื ื’ ื™ื ื•ื•ืึทืœื•ื•ื– ืึทืกืขืžื‘ืึทืœื™ื ื’ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื–ื™ืš ืื•ืŸ ืึทืกืขืžื‘ืึทืœื™ื ื’ ื“ื™ ืคึผืจื•ื‘ื™ืจืŸ ืจืึทื ืขืจ. ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ืžื™ืจ ื–ืขื ืขืŸ ืคื™ื™ืกื˜ ืžื™ื˜ ื“ื™ ืคึผืจืึธื‘ืœืขื ืคื•ืŸ ืกื™ื™ื ื™ื ื’ ืฆื•ื•ื™ื™ ืคึผืขืงืœ IDs ืžื™ื˜ ืื™ื™ืŸ ืคึผืจืึทื•ื•ื™ื–ืฉืึทื ื– ืคึผืจืึธืคื™ืœ. ืฆื•ืž ื’ืœื™ืง, ืขืก ืื™ื– ืึท ืคึผืฉื•ื˜ ืื•ืŸ ืขืœืขื’ืึทื ื˜ ืœื™ื™ื–ื•ื ื’ - Wildcard App ID. ืžื™ืจ ืื™ื‘ืขืจื—ื–ืจืŸ ื“ื™ ืคึผืจืึธืฆืขื“ื•ืจ ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื ื™ื™ึท ืึทืคึผ ืฉื™ื™ึทืŸ, ืึธื‘ืขืจ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื™ืงืกืคึผืœื™ืกืึทื˜ ืึทืคึผ ืฉื™ื™ึทืŸ, ืกืขืœืขืงื˜ื™ืจืŸ ื•ื•ื™ืœื“ืงืึทืจื“ ืึทืคึผ ืฉื™ื™ึทืŸ ื•ื•ื™ ืื™ืŸ ื“ื™ ืกืงืจืขืขื ืฉืึธื˜.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืื™ืŸ ื“ืขื ืคื•ื ื˜, ืžื™ืจ ื–ืขื ืขืŸ ืคืึทืจื˜ื™ืง ืืจื‘ืขื˜ืŸ ืžื™ื˜ developer.apple.com, ืึธื‘ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ืžื™ื ืึทืžื™ื™ื– ื“ื™ ื‘ืœืขื˜ืขืจืขืจ ืคึฟืขื ืฆื˜ืขืจ. ื–ืืœ ืก ื’ื™ื™ืŸ ืฆื• ืคืึทืกื˜ืœืึทื ืข ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึผืœืึทืฅ ืื•ืŸ ืœื™ื™ืขื ืขืŸ ื•ื•ืขื’ืŸ ื“ื™ ืžืึทื˜ืฉ ื ื•ืฆืŸ ืคื•ืŸ ื“ืขืงืœ ืฆื• ื“ืขืงืŸ.

ืึทืŸ ืึทื˜ืขื ื˜ื™ื•ื• ืœื™ื™ืขื ืขืจ ื‘ืืžืขืจืงื˜ ืึทื– ืฆื• ื ื•ืฆืŸ ื“ืขื ื ื•ืฆืŸ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึท ืคึผืจื™ื•ื•ืึทื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื•ืŸ ืึท ื—ืฉื‘ื•ืŸ ืžื™ื˜ ืึทืงืกืขืก ืฆื• ื“ื™ ืขืคึผืœ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคึผืจืึธื’ืจืึทื ืื•ืŸ ื’ื™ื˜ื”ื•ื‘. ืžื™ืจ ืžืึทื›ืŸ (ืื•ื™ื‘ ืคึผืœื•ืฆืœื™ื ื’ ืขืก ืื™ื– ื ื™ื˜ ืึทื–ืึท ื–ืึทืš) ืึท ื—ืฉื‘ื•ืŸ ืคื•ืŸ ื“ื™ ืคืึธืจืขื [ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜], ืงื•ื ืžื™ื˜ ืึท ืฉื˜ืึทืจืง ืคึผืึทืจืึธืœ, ืคืึทืจืฉืจื™ื™ึทื‘ืŸ ืขืก ืžื™ื˜ developer.apple.com, ืื•ืŸ ื ืึธืžื™ื ื™ืจืŸ ืขืก ื•ื•ื™ ืึท ืคึผืจื•ื™ืขืงื˜ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ. ื“ืขืจื ืึธืš, ืžื™ืจ ื’ืขื‘ืŸ ื“ืขื ื—ืฉื‘ื•ืŸ ืึทืงืกืขืก ืฆื• ื“ื™ื™ืŸ ืคื™ืจืžืข 'ืก ื’ื™ื˜ื”ื•ื‘ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื•ืŸ ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืคึผืจื™ื•ื•ืึทื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืžื™ื˜ ืึท ื ืึธืžืขืŸ ื•ื•ื™ AmazingAppMatch.

3. ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทืจื•ื™ืฃ ืคืึทืกื˜ืœืึทื ืข ืื•ืŸ ื“ื™ ื’ืœื™ื™ึทื›ืŸ ื ื•ืฆืŸ

ืขืคึฟืขื ืขืŸ ืึท ื•ื•ืึธืงื–ืึทืœ, ื’ื™ื™ืŸ ืฆื• ื“ืขืจ ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ื™ื ื™ืฉืึทืœื™ื™ื– ืคืึทืกื˜ืœืึทื ืข ื•ื•ื™ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื‘ืึทืึทืžื˜ืขืจ ืžืึทื ื•ืึทืœ. ื ืึธืš ืึทืจื™ื™ึทืŸ ื“ื™ ื‘ืึทืคึฟืขืœ

$ fastlane init

ืื™ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืจืึทืžืคึผื˜ื™ื“ ืฆื• ืกืขืœืขืงื˜ื™ืจืŸ ื‘ื ื™ืžืฆื ื‘ืึทื ื™ืฅ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–. ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืคืขืจื˜ ืึธืคึผืฆื™ืข - ืžืึทื ื•ืึทืœ ืคึผืจื•ื™ืขืงื˜ ืกืขื˜ืึทืคึผ.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื”ืื˜ ืึท ื ื™ื™ึทืข ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืคืึทืกื˜ืœืึทื ืข, ื•ื•ืึธืก ื›ึผื•ืœืœ ืฆื•ื•ื™ื™ ื˜ืขืงืขืก - ืึทืคึผืคื™ืœืข ืื•ืŸ ืคืึทืกื˜ืคื™ืœืข. ืื™ืŸ ืึท ื ืึทื˜ืฉืขืœ, ืžื™ืจ ืงืจืึธื ืกืขืจื•ื•ื™ืก ื“ืึทื˜ืŸ ืื™ืŸ ืึทืคึผืคื™ืœืข, ืื•ืŸ ืฉืจื™ื™ึทื‘ืŸ ื“ื–ืฉืึธื‘ืก ืื™ืŸ ืคืึทืกื˜ืคื™ืœืข, ื’ืขืจื•ืคึฟืŸ ืœื™ื™ื ื– ืื™ืŸ ืคืึทืกื˜ืœืึทื ืข ื˜ืขืจืžื™ื ืึธืœืึธื’ื™ืข. ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืœื™ื™ืขื ืขืŸ ื“ื™ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ: ืฆื™ื™ึทื˜, ะดะฒะฐ.

ืขืคึฟืขื ืขืŸ ื“ื™ ืึทืคึผ ื˜ืขืงืข ืื™ืŸ ื“ื™ื™ืŸ ื‘ืึทืœื™ื‘ืกื˜ืข ื˜ืขืงืกื˜ ืจืขื“ืึทืงื˜ืึธืจ ืื•ืŸ ื‘ืจืขื ื’ืขืŸ ืขืก ืฆื• ื“ื™ ืคืืœื’ืขื ื“ืข ืคืึธืจืขื:

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

ืžื™ืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ื™ ื•ื•ืึธืงื–ืึทืœ ืื•ืŸ ืœื•ื™ื˜ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืžืึทื ื•ืึทืœ ืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื’ืœื™ื™ึทื›ืŸ.

$ fastlane match init
$ fastlane match development

ื“ืขืจื ืึธืš ืึทืจื™ื™ึทืŸ ื“ื™ ื’ืขื‘ืขื˜ืŸ ื“ืึทื˜ืŸ - ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ื—ืฉื‘ื•ืŸ, ืคึผืึทืจืึธืœ, ืขื˜ืง.

ื•ื•ื™ื›ื˜ื™ืง: ื•ื•ืขืŸ ืื™ืจ ืขืจืฉื˜ืขืจ ืงืึทื˜ืขืจ ื“ื™ ื’ืœื™ื™ึทื›ืŸ ื ื•ืฆืŸ, ืื™ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื‘ืขื˜ืŸ ืฆื• ืึทืจื™ื™ึทืŸ ืึท ืคึผืึทืจืึธืœ ืฆื• ื“ืขืงืจื™ืคึผื˜ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™. ืขืก ืื™ื– ื–ื™ื™ืขืจ ื•ื•ื™ื›ื˜ื™ืง ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ ื“ืขื ืคึผืึทืจืึธืœ; ืžื™ืจ ื•ื•ืขืœืŸ ื“ืึทืจืคึฟืŸ ืขืก ื•ื•ืขืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ืกื™ ืกืขืจื•ื•ืขืจ!

ื ื ื™ื™ึทืข ื˜ืขืงืข ืื™ื– ืืจื•ื™ืก ืื™ืŸ ื“ื™ ืคืึทืกื˜ืœืึทื ืข ื˜ืขืงืข - 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

ืžื™ืจ ืคึผืœืึธืžื‘ื™ืจืŸ ืขืก ืคึผื•ื ืงื˜ ืึทื–ื•ื™ ืื•ื™ื‘ ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื ื•ืฆืŸ ื’ืœื™ื™ึทื›ืŸ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ืฆื• ืฆื™ื™ื›ืŸ ื‘ื™ืœื“ื– ืคึฟืึทืจ ื•ื•ื™ื™ึทื– ืื™ืŸ ืงืจืึทืฉืœื™ื˜ื™ืงืก ืื•ืŸ / ืึธื“ืขืจ ืึทืคึผืคึผืกื˜ืึธืจืข, ื“ืึธืก ืื™ื–, ืฆื• ืฆื™ื™ื›ืŸ ื“ื™ ืคึผืขืงืœ ืฉื™ื™ึทืŸ ืคื•ืŸ ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

ืึธื‘ืขืจ, ื•ื•ื™ ืžื™ืจ ื’ืขื“ืขื ืงืขืŸ, ืžื™ืจ ื‘ืืฉืืคืŸ ืึท ืกืคึผืขืฆื™ืขืœ ื•ื•ื™ืœื“ืงืึทืจื“ ืฉื™ื™ึทืŸ ืฆื• ืฆื™ื™ื›ืŸ ื“ื™ ืคึผืจืึธื‘ืข ื‘ื•ื™ืขืŸ. ื“ืขืจื™ื‘ืขืจ, ืขืคืขื ืขืŸ Fastfile ืื•ืŸ ืึทืจื™ื™ึทืŸ ืึท ื ื™ื™ึท ืฉื˜ืขื’:

lane :testing_build_for_firebase do

    match(
      type: "development",
      readonly: true,
      app_identifier: "com.company.*",
      git_branch: "uitests"  # ัะพะทะดะฐะตะผ ะพั‚ะดะตะปัŒะฝั‹ะน ะฑั€ะฐะฝั‡ ะดะปั development ัะตั€ั‚ะธั„ะธะบะฐั‚ะฐ ะดะปั ะฟะพะดะฟะธัะธ ั‚ะตัั‚ะพะฒะพะน ัะฑะพั€ะบะธ.
    )

end

ื”ื™ื˜ ืื•ืŸ ืึทืจื™ื™ึทืŸ ื“ื™ ื•ื•ืึธืงื–ืึทืœ

fastlane testing_build_for_firebase

ืื•ืŸ ืžื™ืจ ื–ืขืŸ ื•ื•ื™ ืคืึทืกื˜ืœืึทื ืข ื‘ืืฉืืคืŸ ืึท ื ื™ื™ึทืข ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื•ืŸ ืฉื˜ืขืœืŸ ืขืก ืื™ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™. ื’ืจื•ื™ืก!

ืขืคึฟืขื ืขืŸ XCode. ืื™ืฆื˜ ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืคึผืจืึทื•ื•ื™ื–ืฉืึทื ื– ืคึผืจืึธืคื™ืœ ืคื•ืŸ ื“ื™ ืคืึธืจืขื Match Development com.company.*, ื•ื•ืึธืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ื“ื™ ืคึผืจืึทื•ื•ื™ื–ืฉืึทื ื– ืคึผืจืึธืคื™ืœ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืคึฟืึทืจ ื“ื™ AmazingApp ืื•ืŸ AmazingAppUITests ื˜ืึทืจื’ืึทืฅ.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืขืก ื‘ืœื™ื™ื‘ื˜ ืฆื• ืœื™ื™ื’ืŸ ืฉื˜ืขื’ ืคึฟืึทืจ ืึทืกืขืžื‘ืึทืœื™ื ื’ ื˜ืขืกืฅ. ื–ืืœ ืก ื’ื™ื™ืŸ ืฆื• ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืึท ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืคึฟืึทืจ ืคืึทืกื˜ืœืึทื ืข ื•ื•ืึธืก ืžืื›ื˜ ืขืก ื’ืจื™ื ื’ืขืจ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืขืงืกืคึผืึธืจื˜ ืฆื• Firebase Test Lab ืื•ืŸ ื ืึธื›ื’ื™ื™ืŸ ื“ื™ ื™ื ืกื˜ืจืึทืงืฉืึทื ื–.

ืœืึธืžื™ืจ ื ืึธื›ืžืึทื›ืŸ ืื•ืŸ ืคึผืึทืคึผ ืคึฟื•ืŸ ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ื‘ื™ื™ึทืฉืคึผื™ืœ ืึทื–ื•ื™ ืึทื– ืื•ื ื“ื–ืขืจ ืœื™ื™ืŸ ื˜ืขืกื˜ื™ื ื’_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

ืคึฟืึทืจ ืคื•ืœืฉื˜ืขื ื“ื™ืง ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืคืึทืกื˜ืœืึทื ืข ืื™ืŸ 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 ืื•ื™ืฃ ืึท ืคืจื™ื™ ืคึผืœืึทืŸ, ืึธื“ืขืจ ื˜ืึธืžืขืจ ื ื™ืฉื˜. ืขืก ืื™ื– ืœืขื’ืึทืžืจืข ืงื™ื™ืŸ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœ ื—ื™ืœื•ืง, ื•ื•ื™ื™ึทืœ ืคึฟืึทืจ ื˜ืขืกื˜ื™ื ื’ ื“ืึทืจืฃ ืžื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ืึท ื™ืึธืจ ืคื•ืŸ ืคืจื™ื™ ื ื•ืฆืŸ (ืงื™ืœ, ืจืขื›ื˜?)

ืžื™ืจ ืงืœืึธืฅ ืื™ืŸ ืฆื• ืื•ื ื“ื–ืขืจ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ื—ืฉื‘ื•ืŸ (ืึธื“ืขืจ ืงื™ื™ืŸ ืื ื“ืขืจืข, ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืขื ื™ืŸ), ืื•ืŸ ื’ื™ื™ืŸ ืฆื• Firebase ืงืึทื ืกืึธื•ืœ ื‘ืœืึทื˜. ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ืŸ ื ืึธืžืขืŸ AmazingAppUITests.

ื•ื•ื™ื›ื˜ื™ืง: ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืฉืจื™ื˜ ืื™ืŸ ื“ื™ ืคืึทืกื˜ืคื™ืœืข ืื™ืŸ ืœื™ื™ืŸ firebase_test_lab_ios_xctest, ื“ื™ gcp_project ืคึผืึทืจืึทืžืขื˜ืขืจ ื–ืึธืœ ื’ืœื™ื™ึทื›ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื ืึธืžืขืŸ.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืกืขื˜ื˜ื™ื ื’ืก ืคึผืึทืกืŸ ืื•ื ื“ื– ื’ืึทื ืฅ ื’ื•ื˜.

ื“ื• ื–ืืœืกื˜ ื ื™ืฉื˜ ืคืึทืจืžืึทื›ืŸ ื“ืขื ืงื•ื•ื™ื˜ืœ, ืจืขื’ื™ืกื˜ืจื™ืจืŸ ืื•ื ื˜ืขืจ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื—ืฉื‘ื•ืŸ ืื™ืŸ ื’ืงืœื•ื“ - ื“ืึธืก ืื™ื– ืึท ื ื•ื™ื˜ื™ืง ืžืึธืก, ื•ื•ื™ื™ึทืœ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืžื™ื˜ Firebase ืึทืงืขืจื– ืžื™ื˜ ื“ื™ ื’ืงืœืึธื•ื“ ืงืึทื ืกืึธื•ืœ ืฆื•ื‘ื™ื ื“.

Google ื’ื™ื˜ $ 300 ืคึฟืึทืจ ืึท ื™ืึธืจ, ื•ื•ืึธืก ืื™ืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ืคึผืขืจืคืึธืจืžื™ื ื’ ืึทื•ื˜ืึธื˜ืขืกื˜ืก ืื™ื– ืขืงื•ื•ื™ื•ื•ืึทืœืขื ื˜ ืฆื• ืึท ื™ืึธืจ ืคื•ืŸ ืคืจื™ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ื“ื™ื ืกื˜. ืžื™ืจ ืึทืจื™ื™ึทืŸ ื“ื™ื™ืŸ ืฆืึธืœื•ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ื•ื•ืึทืจื˜ืŸ ืคึฟืึทืจ ื“ื™ ืคึผืจืึธื‘ืข ื“ืขื‘ื™ื˜ ืคื•ืŸ $1 ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ $300 ืฆื• ื“ื™ื™ืŸ ื—ืฉื‘ื•ืŸ. ื ืึธืš ืึท ื™ืึธืจ, ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื˜ืจืึทื ืกืคืขืจื“ ืฆื• ืึท ืคืจื™ื™ ืฆืึธืœ ืคึผืœืึทืŸ, ืึทื–ื•ื™ ืขืก ืื™ื– ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื–ืึธืจื’ ื•ื•ืขื’ืŸ ืžืขื’ืœืขืš ืึธื ื•ื•ืขืจ ืคื•ืŸ ื’ืขืœื˜.

ืœืึธืžื™ืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ื™ ืงื•ื•ื™ื˜ืœ ืžื™ื˜ ื“ื™ Firebase ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืขืก ืฆื• ื“ื™ Blaze ืฆืึธืœ ืคึผืœืึทืŸ - ืื™ืฆื˜ ืžื™ืจ ื”ืึธื‘ืŸ ืขืคึผืขืก ืฆื• ื‘ืึทืฆืึธืœืŸ ืื•ื™ื‘ ื“ื™ ืฉื™ืขื•ืจ ืื™ื– ื™ืงืกื™ื“ื™ื“.

ืื™ืŸ ื“ื™ gcloud ืฆื•ื‘ื™ื ื“, ืกืขืœืขืงื˜ื™ืจืŸ ืื•ื ื“ื–ืขืจ Firebase ืคึผืจื•ื™ืขืงื˜, ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื "ื“ื™ืจืขืงื˜ืึธืจื™" ื”ื•ื™ืคึผื˜ ืžืขื ื™ื• ื ื•ืžืขืจ ืื•ืŸ ืœื™ื™ื’ืŸ ื“ื™ Cloud Testing API ืื•ืŸ Cloud Tools Result API.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ื“ืขืจื ืึธืš ื’ื™ื™ืŸ ืฆื• ื“ื™ ืžืขื ื™ื• ื ื•ืžืขืจ "IAM ืื•ืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทืฆื™ืข" -> ืกืขืจื•ื•ื™ืก ืึทืงืึทื•ื ืฅ -> ืฉืึทืคึฟืŸ ื“ื™ื ืกื˜ ื—ืฉื‘ื•ืŸ. ืžื™ืจ ืฉืขื ืงืขืŸ ืจืขื›ื˜ ืฆื• ืจืขื“ืึทื’ื™ืจืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜.

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืฉืึทืคึฟืŸ ืึทืŸ ืึทืคึผื™ ืฉืœื™ืกืœ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜

ืžื™ืจ ื•ื•ืขืœืŸ ื“ืึทืจืคึฟืŸ ื“ื™ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ JSON ืึท ื‘ื™ืกืœ ืฉืคึผืขื˜ืขืจ, ืึธื‘ืขืจ ืื™ืฆื˜ ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื˜ืขืกื˜ ืœืึทื‘ ืกืขื˜ืึทืคึผ ื’ืึทื ืฅ.

5. ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืกื™ืจืงืœืขืกื™

ื ื’ืœื™ื™ึทืš ืงืฉื™ื ืขืจื™ื™ื–ืึทื– - ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ ืžื™ื˜ ืคึผืึทืกื•ื•ืขืจื“ื–? ื“ื™ ื™ื ื•ื•ื™ื™ืจืึทื ืžืขื ืึทืœ ื•ื•ืขืจื™ืึทื‘ืึทืœ ืžืขืงืึทื ื™ื–ืึทื ืคื•ืŸ ืื•ื ื“ื–ืขืจ ื‘ื•ื™ืขืŸ ืžืึทืฉื™ืŸ ื•ื•ืขื˜ ื”ืขืœืคึฟืŸ ืื•ื ื“ื– ืกื™ืงื™ื•ืจืœื™ ืงืจืึธื ืื•ื ื“ื–ืขืจ ืคึผืึทืกื•ื•ืขืจื“ื– ืื•ืŸ ืื ื“ืขืจืข ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ื“ืึทื˜ืŸ. ืื™ืŸ ื“ื™ ืกื™ืจืงืœืขืกื™ ืคึผืจื•ื™ืขืงื˜ ืกืขื˜ื˜ื™ื ื’ืก, ืกืขืœืขืงื˜ื™ืจืŸ ืขื ื•ื•ื™ืจืึธื ืžืขื ื˜ ื•ื•ืึทืจื™ืึทื‘ืœืขืก

ืžื™ืจ ืœื•ื™ืคืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ืึทืœ ื˜ืขืกืฅ ืื™ืŸ Firebase Test Lab. ื˜ื™ื™ืœ 1: ื™ืึธืก ืคึผืจื•ื™ืขืงื˜
ืื•ืŸ ืฉื˜ืขืœืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–:

  • ืฉืœื™ืกืœ: GOOGLE_APPLICATION_CREDENTIALS
    ื•ื•ืขืจื˜: ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ json ื˜ืขืงืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื’ืงืœืึธื•ื“ ืกืขืจื•ื•ื™ืก ื—ืฉื‘ื•ืŸ ืฉืœื™ืกืœ
  • ืฉืœื™ืกืœ: MATCH_PASSWORD
    ื•ื•ืขืจื˜: ืคึผืึทืจืึธืœ ืคึฟืึทืจ ื“ืขืงืจื™ืคึผื˜ื™ื ื’ ื“ื™ ื’ื™ื˜ื”ื•ื‘ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืžื™ื˜ ืกืขืจื˜ื™ืคื™ืงืึทืฅ
  • ืฉืœื™ืกืœ: FASTLANE_PASSWORD
    ื•ื•ืขืจื˜: ืขืคึผืœ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื˜ื•ื™ืขืจ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ื—ืฉื‘ื•ืŸ ืคึผืึทืจืึธืœ

ืžื™ืจ ืจืึทื˜ืขื•ื•ืขืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืฉืึทืคึฟืŸ ืึท ืคึผืจ ืื•ืŸ ืฉื™ืงืŸ ืขืก ืฆื• ืื•ื ื“ื–ืขืจ ืžืึทื ืฉืึทืคึฟื˜ ืคื™ืจืŸ ืคึฟืึทืจ ืึธืคึผืฉืึทืฆื•ื ื’.

ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืคึผืฉื•ื˜ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ืฉืึทื ื–, ืžื™ืจ ื‘ืืงื•ืžืขืŸ ืึท ื’ื•ื˜, ืกื˜ืึทื‘ื™ืœ ืึทืจื‘ืขื˜ ืฉื˜ื™ื™ืŸ ืžื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืจืขืงืึธืจื“ื™ืจืŸ ื•ื•ื™ื“ืขื ืื•ื™ืฃ ื“ื™ ืžื™ื˜ืœ ืคืึทืจืฉื˜ืขืœืŸ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื˜ืขืกื˜ื™ื ื’. ืื™ืŸ ื“ื™ ืคึผืจืึธื‘ืข ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืš ืกืคึผืขืกื™ืคื™ืขื“ ื“ื™ iPhone X ืžื™ื˜ืœ ืžืึธื“ืขืœ, ืึธื‘ืขืจ ื“ื™ ืคืึทืจื ื’ื™ื˜ ืึท ืจื™ื™ึทืš ืกืขืœืขืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืึท ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืคืึทืจืฉื™ื“ืขื ืข ืžืึธื“ืขืœืก ืื•ืŸ ื™ืึธืก ื•ื•ืขืจืกื™ืขืก.

ื“ืขืจ ืฆื•ื•ื™ื™ื˜ืขืจ ื˜ื™ื™ืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืฆื• ืฉืจื™ื˜-ื“ื•ืจืš-ืฉืจื™ื˜ ืกืขื˜ืึทืคึผ ืคื•ืŸ Firebase ื˜ืขืกื˜ ืœืึทื‘ ืคึฟืึทืจ ืึทืŸ ืึทื ื“ืจื•ื™ื“ ืคึผืจื•ื™ืขืงื˜.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’