เจฎเฉเจฐเจพ เจจเจพเจฎ เจฆเจฟเจฎเจฟเจคเจฐเฉ เจนเฉ, เจฎเฉเจ เจเฉฐเจชเจจเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจธเจเจฐ เจตเจเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเจพเจ
เจเจธ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจเจกเจฐเฉเจเจก เจฒเจ เจซเจพเจเจฐเจฌเฉเจธ เจเฉเจธเจ เจฒเฉเจฌ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเฉเจคเฉ เจธเฉ เจ เจคเฉ เจ เจธเจฒ เจตเจฟเฉฑเจ เจธเจญ เจเฉเจ เจชเจธเฉฐเจฆ เจเฉเจคเจพ, เจเจธเจฒเจ เจฎเฉเจ เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉ iOS เจเฉเจธเจ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจจเฉเฉฐ เจเจธเฉ เจชเฉฑเจงเจฐ 'เจคเฉ เจฐเฉฑเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพเฅค เจฎเฉเจจเฉเฉฐ เจฌเจนเฉเจค เจเฉเจเจฒ เจเจฐเจจเจพ เจชเจฟเจ เจ เจคเฉ เจธเจญ เจเฉเจ เจชเจนเจฟเจฒเฉ เจตเจพเจฐ เจเฉฐเจฎ เจจเจนเฉเจ เจเฉเจคเจพ, เจเจธ เจฒเจ เจฎเฉเจ เจเจนเจจเจพเจ เจฒเจ เจเฉฑเจ เจเจฟเจเจเฉเจฐเจฟเจ เจฒ เจฒเฉเจ เจฒเจฟเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจเฉ เจ เจเฉ เจตเฉ เจธเฉฐเจเจฐเจธเจผ เจเจฐ เจฐเจนเฉ เจนเจจเฅค
เจเจธ เจฒเจ, เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ iOS เจชเฉเจฐเฉเจเฉเจเจ 'เจคเฉ UI เจเฉเจธเจ เจนเจจ, เจคเจพเจ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจ
เฉฑเจ เจ
เจธเจฒ เจกเจฟเจตเจพเจเจธเจพเจ 'เจคเฉ เจเจฒเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจเฉเฉฑเจก เจเจพเจฐเจชเฉเจฐเฉเจธเจผเจจ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฃ เจตเจพเจฒเจฟเจเจ เจฒเจ, เจฌเจฟเฉฑเจฒเฉ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจกเจพ เจธเฉเจเจเจค เจนเฉเฅค
เจเจนเจพเจฃเฉ เจตเจฟเฉฑเจ, เจฎเฉเจ เจเฉเจ เจธเจผเฉเจฐเฉเจเจคเฉ เจกเฉเจเจพ 'เจคเฉ เจฌเจฃเจพเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ - GitHub เจ
เจคเฉ CircleCI เจฌเจฟเจฒเจก เจธเจฟเจธเจเจฎ 'เจคเฉ เจเฉฑเจ เจชเฉเจฐเจพเจเจตเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ. เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเจพ เจจเจพเจฎ AmazingApp เจนเฉ, bundleID com.company.amazingapp เจนเฉเฅค เจฎเฉเจ เจฌเจพเจ
เจฆ เจตเจฟเฉฑเจ เจเจฒเจเจฃ เจจเฉเฉฐ เจเจเจพเจเจฃ เจฒเจ เจเจธ เจกเฉเจเจพ เจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจชเฉเจธเจผ เจเจฐเจฆเจพ เจนเจพเจเฅค
เจเฉ เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจเฉเจ เจนเฉฑเจฒ เจตเฉฑเจเจฐเฉ เจขเฉฐเจ เจจเจพเจฒ เจฒเจพเจเฉ เจเฉเจคเฉ เจนเจจ, เจคเจพเจ เจเจฟเฉฑเจชเจฃเฉเจเจ เจตเจฟเฉฑเจ เจเจชเจฃเจพ เจ เจจเฉเจญเจต เจธเจพเจเจเจพ เจเจฐเฉเฅค
1. เจเฉเจธเจ เจเจชเจฃเฉ เจเจช
UI เจเฉเจธเจเจพเจ เจฒเจ เจเฉฑเจ เจจเจตเฉเจ เจชเฉเจฐเฉเจเฉเจเจ เจธเจผเจพเจเจพ เจฌเจฃเจพเจ:
$ git checkout develop
$ git pull
$ git checkout -b โfeature/add-ui-testsโ
เจเจ เจชเฉเจฐเฉเจเฉเจเจ เจจเฉเฉฐ XCode เจตเจฟเฉฑเจ เจเฉเจฒเฉเจนเฉเจ เจ เจคเฉ UI เจเฉเจธเจเจพเจ [XCode -> File -> New -> Target -> iOS Testing Bundle] เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจจเจตเจพเจ เจเจพเจฐเจเฉเจ เจฌเจฃเจพเจเจ, เจเจธเจจเฉเฉฐ เจธเจตเฉ-เจตเจฟเจเจเจฟเจเจคเจฎเจ เจจเจพเจฎ AmazingAppUITests เจฆเจฟเฉฐเจฆเฉ เจนเฉเจเฅค
เจฌเจฃเจพเจ เจเจ เจเฉเจเฉ เจฆเฉ เจฌเจฟเจฒเจก เจซเฉเจเจผ เจธเฉเจเจธเจผเจจ 'เจคเฉ เจเจพเจ เจ
เจคเฉ เจเฉฐเจชเจพเจเจฒ เจธเจฐเฉเจคเจพเจ - AmazingAppUITests.swift เจตเจฟเฉฑเจ เจเจพเจฐเจเฉเจ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ - AmazingApp เจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจฆเฉ เจเจพเจเจ เจเจฐเฉเฅค
เจเฉฑเจ เจเฉฐเจเจพ เจ เจญเจฟเจเจธ เจตเฉฑเจ-เจตเฉฑเจ เจฌเจฟเจฒเจก เจตเจฟเจเจฒเจชเจพเจ เจจเฉเฉฐ เจตเฉฑเจเจฐเฉเจเจ เจธเจเฉเจฎเจพเจ เจตเจฟเฉฑเจ เจตเฉฑเจ เจเจฐเจจเจพ เจนเฉเฅค เจ เจธเฉเจ เจเจชเจฃเฉ UI เจเฉเจธเจเจพเจ [XCode -> เจเจคเจชเจพเจฆ -> เจธเจเฉเจฎ -> เจจเจตเฉเจ เจธเจเฉเจฎ] เจฒเจ เจเฉฑเจ เจธเจเฉเจฎ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจนเฉ เจจเจพเจฎ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจ: AmazingAppUITestsเฅค
เจฌเจฃเจพเจ เจเจ เจธเจเฉเจฎ เจฆเฉ เจฌเจฟเจฒเจก เจตเจฟเฉฑเจ เจฎเฉเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเจพ เจเฉเจเจพ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ - AmazingApp เจ เจคเฉ Target UI เจเฉเจธเจ - AmazingAppUITests - เจธเจเฉเจฐเฉเจจเจธเจผเฉเจ เจฆเฉเจเฉ
เจ
เฉฑเจเฉ, เจ
เจธเฉเจ UI เจเฉเจธเจเจพเจ เจฒเจ เจเฉฑเจ เจจเจตเฉเจ เจฌเจฟเจฒเจก เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจเฅค XCode เจตเจฟเฉฑเจ, เจชเฉเจฐเฉเจเฉเจเจ เจซเจพเจเจฒ 'เจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเฉ เจ
เจคเฉ เจเจพเจฃเจเจพเจฐเฉ เจธเฉเจเจธเจผเจจ 'เจคเฉ เจเจพเจเฅค โ+โ เจเฉฑเจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเฉ เจ
เจคเฉ เจเฉฑเจ เจจเจตเฉเจ เจธเฉฐเจฐเจเจจเจพ เจฌเจฃเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ XCtestเฅค เจธเจพเจจเฉเฉฐ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉ เจคเจพเจ เจเจฟ เจเจฆเฉเจ เจเจน เจเฉเจก เจธเจพเจเจจเจฟเฉฐเจ เจฆเฉ เจเฉฑเจฒ เจเจเจเจฆเฉ เจนเฉ เจคเจพเจ เจกเฉฑเจฌเฉ เจจเจพเจฒ เจจเฉฑเจเจฃ เจคเฉเจ เจฌเจเจฃ เจฒเจเฅค
เจคเฉเจนเจพเจกเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจเฉฑเจเฉ-เจเฉฑเจ เจคเจฟเฉฐเจจ เจเฉเจเฉ เจนเจจ: เจฎเฉเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ, เจฏเฉเจจเจฟเจ เจเฉเจธเจ (เจเจเจผเจฐเจเจพเจฐ, เจเจน เจฎเฉเจเฉเจฆ เจนเจจ, เจ เฉเจ?) เจ
เจคเฉ เจธเจพเจกเฉ เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจ เจเจ เจเจพเจฐเจเฉเจ UI เจเฉเจธเจเฅค
เจเจพเจฐเจเฉเจ เจ เจฎเฉเจเจผเจฟเฉฐเจ เจเจช, เจฌเจฟเจฒเจก เจธเฉเจเจฟเฉฐเจเจเจผ เจเฉเจฌ, เจเฉเจก เจธเจพเจเจจเจฟเฉฐเจ เจเจเจกเฉเจเจเจฟเจเฉ เจธเฉเจเจธเจผเจจ 'เจคเฉ เจเจพเจเฅค XCtest เจธเฉฐเจฐเจเจจเจพ เจฒเจ, iOS เจกเจฟเจตเฉเจฒเจชเจฐ เจฆเฉ เจเฉเจฃ เจเจฐเฉเฅค เจเฉเจก เจธเจพเจเจจเจฟเฉฐเจ เจธเจเจพเจเจฒ เจธเฉเจเจธเจผเจจ เจตเจฟเฉฑเจ, เจฎเฉเจจเฉเจ เจฒ เจเฉเจฃเฉเฅค เจ เจธเฉเจ เจ เจเฉ เจคเฉฑเจ เจเฉเจ เจชเฉเจฐเฉเจตเจฟเจเจผเจจเจฟเฉฐเจ เจชเฉเจฐเฉเจซเจพเจเจฒ เจจเจนเฉเจ เจฌเจฃเจพเจเจ เจนเฉ, เจชเจฐ เจ เจธเฉเจ เจจเจฟเจธเจผเจเจค เจคเฉเจฐ 'เจคเฉ เจฅเฉเฉเฉเจนเฉ เจฆเฉเจฐ เจฌเจพเจ เจฆ เจเจธ 'เจคเฉ เจตเจพเจชเจธ เจเจตเจพเจเจเฉเฅค
Target AmazingAppUITests เจฒเจ เจ เจธเฉเจ เจเจนเฉ เจเจฐเจฆเฉ เจนเจพเจ, เจชเจฐ เจเจคเจชเจพเจฆ เจฌเฉฐเจกเจฒ เจชเจเจพเจฃเจเจฐเจคเจพ เจเจพเจฒเจฎ เจตเจฟเฉฑเจ เจ เจธเฉเจ com.company.amazingappuitests เจฆเจพเจเจฒ เจเจฐเจฆเฉ เจนเจพเจเฅค
2. เจเจชเจฒ เจกเจฟเจตเฉเจฒเจชเจฐ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจตเจฟเฉฑเจ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ
เจเจชเจฒ เจกเจฟเจตเฉเจฒเจชเจฐ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจชเฉเจ 'เจคเฉ เจเจพเจ, เจธเจฐเจเฉเจซเจฟเจเฉเจ, เจเจเจกเฉเจเจเฉเจซเจพเจเจฐ เจ เจคเฉ เจชเฉเจฐเฉเจซเจพเจเจฒ เจธเฉเจเจธเจผเจจ 'เจคเฉ เจเจพเจ เจ เจคเฉ เจซเจฟเจฐ เจเจเจกเฉเจเจเฉเจซเจพเจเจฐ เจเจเจเจฎ เจฆเฉ เจเจช เจเจเจกเฉ เจเจพเจฒเจฎ 'เจคเฉ เจเจพเจเฅค AmazingAppUITests เจ เจคเฉ bundleID com.company.amazingappuitest เจจเจพเจฎเจ เจเฉฑเจ เจจเจตเฉเจ เจเจช เจเจเจกเฉ เจฌเจฃเจพเจเฅค
เจนเฉเจฃ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจธเจฐเจเฉเจซเจฟเจเฉเจ เจฆเฉ เจจเจพเจฒ เจเจชเจฃเฉ เจเฉเจธเจเจพเจ 'เจคเฉ เจฆเจธเจคเจเจค เจเจฐเจจ เจฆเจพ เจฎเฉเจเจพ เจนเฉ, เจชเจฐ... เจเฉเจธเจเจฟเฉฐเจ เจฒเจ เจเฉฑเจ เจฌเจฟเจฒเจก เจจเฉเฉฐ เจ
เจธเฉเจเจฌเจฒ เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจเฉเจฆ เจ
เจธเฉเจเจฌเจฒ เจเจฐเจจเจพ เจ
เจคเฉ เจเฉเจธเจ เจฐเจจเจฐ เจจเฉเฉฐ เจ
เจธเฉเจเจฌเจฒ เจเจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฅค เจเจธ เจ
เจจเฉเจธเจพเจฐ, เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจชเฉเจฐเฉเจตเจฟเจเจผเจจเจฟเฉฐเจ เจชเฉเจฐเฉเจซเจพเจเจฒ เจฆเฉ เจจเจพเจฒ เจฆเฉ เจฌเฉฐเจกเจฒ เจเจเจกเฉ 'เจคเฉ เจฆเจธเจคเจเจค เจเจฐเจจ เจฆเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเฉ เจฐเจฟเจนเจพ เจนเฉเฅค เจเฉเจธเจผเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจเฉฑเจ เจธเจงเจพเจฐเจจ เจ
เจคเฉ เจธเจผเจพเจจเจฆเจพเจฐ เจนเฉฑเจฒ เจนเฉ - เจตเจพเจเจฒเจกเจเจพเจฐเจก เจเจช เจเจ.เจกเฉ. เจ
เจธเฉเจ เจเฉฑเจ เจจเจตเฉเจ เจเจช เจเจเจกเฉ เจฌเจฃเจพเจเจฃ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจฆเฉเจนเจฐเจพเจเจเจฆเฉ เจนเจพเจ, เจชเจฐ เจธเจชเจธเจผเจ เจเจช เจเจเจกเฉ เจฆเฉ เจฌเจเจพเจ, เจธเจเฉเจฐเฉเจจเจธเจผเจพเจ เจตเจพเจเจ เจตเจพเจเจฒเจกเจเจพเจฐเจก เจเจช เจเจเจกเฉ เจเฉเจฃเฉเฅค
เจเจธ เจธเจฎเฉเจ, เจ
เจธเฉเจ developer.apple.com เจจเจพเจฒ เจเฉฐเจฎ เจเจฐ เจฒเจฟเจ เจนเฉ, เจชเจฐ เจ
เจธเฉเจ เจฌเฉเจฐเจพเจเจเจผเจฐ เจตเจฟเฉฐเจกเฉ เจจเฉเฉฐ เจเฉฑเจ เจจเจนเฉเจ เจเจฐเจพเจเจเฉเฅค เจเจฒเฉ เจเจฒเฉเจ
เจเฉฑเจ เจงเจฟเจเจจ เจฆเฉเจฃ เจตเจพเจฒเฉ เจชเจพเจ เจ เจจเฉ เจฆเฉเจเจฟเจ เจเจฟ เจเจธ เจธเจนเฉเจฒเจค เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจชเฉเจฐเจพเจเจตเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจ เจคเฉ เจเจชเจฒ เจกเจฟเจตเฉเจฒเจชเจฐ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจ เจคเฉ เจเจฟเจฅเจฌ เจฆเฉเจตเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจตเจพเจฒเฉ เจเจพเจคเฉ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจ เจธเฉเจ (เจเฉ เจ เจเจพเจจเจ เจ เจเจฟเจนเฉ เจเฉเจ เจเฉเจเจผ เจจเจพ เจนเฉเจตเฉ) เจซเจพเจฐเจฎ เจฆเจพ เจเจพเจคเจพ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ [เจเจฎเฉเจฒ เจธเฉเจฐเฉฑเจเจฟเจ เจค], เจเฉฑเจ เจฎเจเจผเจฌเฉเจค โโเจชเจพเจธเจตเจฐเจก เจฒเฉ เจเฉ เจเจ, เจเจธเจจเฉเฉฐ developer.apple.com เจจเจพเจฒ เจฐเจเจฟเจธเจเจฐ เจเจฐเฉ, เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจชเฉเจฐเจธเจผเจพเจธเจ เจตเจเฉเจ เจจเจฟเจฏเฉเจเจค เจเจฐเฉเฅค เจ เฉฑเจเฉ, เจ เจธเฉเจ เจเจพเจคเฉ เจจเฉเฉฐ เจคเฉเจนเจพเจกเฉ เจเฉฐเจชเจจเฉ เจฆเฉ เจเจฟเจฅเจฌ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจ เจ เจคเฉ AmazingAppMatch เจตเจฐเจเฉ เจจเจพเจฎ เจจเจพเจฒ เจเฉฑเจ เจจเจตเจพเจ เจชเฉเจฐเจพเจเจตเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจเฅค
3. เจซเจพเจธเจเจฒเฉเจจ เจ เจคเฉ เจฎเฉเจ เจเจชเจฏเฉเจเจคเจพ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ
เจเฉฑเจ เจเจฐเจฎเฉเจจเจฒ เจเฉเจฒเฉเจนเฉ, เจชเฉเจฐเฉเจเฉเจเจ เจตเจพเจฒเฉ เจซเฉเจฒเจกเจฐ 'เจคเฉ เจเจพเจ เจ
เจคเฉ เจซเจพเจธเจเจฒเฉเจจ เจจเฉเฉฐ เจธเจผเฉเจฐเฉ เจเจฐเฉ เจเจฟเจตเฉเจ เจเจฟ เจฆเจฐเจธเจพเจ เจเจ เจนเจจ
$ fastlane init
เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจฒเจฌเจง เจตเจฐเจคเฉเจ เจธเฉฐเจฐเจเจจเจพเจตเจพเจ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจฒเจ เจเจฟเจนเจพ เจเจพเจตเฉเจเจพเฅค เจเฉเจฅเจพ เจตเจฟเจเจฒเจช เจเฉเจฃเฉ - เจฎเฉเจจเฉเจ เจฒ เจชเฉเจฐเฉเจเฉเจเจ เจธเฉเฉฑเจเจ เฉฑเจชเฅค
เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจจเจตเฉเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจซเจพเจธเจเจฒเฉเจจ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจฆเฉ เจซเจพเจเจฒเจพเจ เจนเจจ - เจเจชเจซเจพเจเจฒ เจ
เจคเฉ เจซเจพเจธเจเจซเจพเจเจฒเฅค เจธเฉฐเจเฉเจช เจฐเฉเจช เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจเจชเจซเจพเจเจฒ เจตเจฟเฉฑเจ เจธเฉเจตเจพ เจกเฉเจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจซเจพเจธเจเจซเจพเจเจฒ เจตเจฟเฉฑเจ เจจเฉเจเจฐเฉเจเจ เจฒเจฟเจเจฆเฉ เจนเจพเจ, เจเจฟเจธเจจเฉเฉฐ เจซเจพเจธเจเจฒเฉเจจ เจธเจผเจฌเจฆเจพเจตเจฒเฉ เจตเจฟเฉฑเจ เจฒเฉเจจ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจฎเฉเจ เจ
เจงเจฟเจเจพเจฐเจค เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจฆเฉ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ:
เจเจชเจซเจพเจเจฒ เจจเฉเฉฐ เจเจชเจฃเฉ เจฎเจจเจชเจธเฉฐเจฆ เจเฉเจเจธเจ เจเจกเฉเจเจฐ เจตเจฟเฉฑเจ เจเฉเจฒเฉเจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจ เจฒเจฟเจเจ:
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
เจ เฉฑเจเฉ, เจฌเฉเจจเจคเฉ เจเฉเจคเจพ เจกเฉเจเจพ เจฆเจพเจเจฒ เจเจฐเฉ - เจฐเจฟเจชเฉเจเจผเจเจฐเฉ, เจเจพเจคเจพ, เจชเจพเจธเจตเจฐเจก, เจเจฆเจฟเฅค
เจเจน เจเจฐเจจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจนเฉ: เจเจฆเฉเจ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเฉ เจตเจพเจฐ เจฎเฉเจ เจเจชเจฏเฉเจเจคเจพ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจกเฉเจเฉเจฐเจฟเจชเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจชเจพเจธเจตเจฐเจก เจฆเจฐเจ เจเจฐเจจ เจฒเจ เจเจฟเจนเจพ เจเจพเจตเฉเจเจพเฅค เจเจธ เจชเจพเจธเจตเจฐเจก เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจจเจพ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ; เจธเจพเจจเฉเฉฐ CI เจธเจฐเจตเจฐ เจธเฉเจ เจ เจช เจเจฐเจฆเฉ เจธเจฎเฉเจ เจเจธเจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉ!
เจซเจพเจธเจเจฒเฉเจจ เจซเฉเจฒเจกเจฐ - เจฎเฉเจเจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉฑเจ เจจเจตเฉเจ เจซเจพเจเจฒ เจฆเจฟเจเจพเจ เจฆเจฟเฉฑเจคเฉ เจนเฉเฅค เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจฎเจจเจชเจธเฉฐเจฆ เจเฉเจเจธเจ เจเจกเฉเจเจฐ เจตเจฟเฉฑเจ เจเฉเจฒเฉเจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเฉ:
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
เจ เจธเฉเจ เจเจธเจจเฉเฉฐ เจฌเจฟเจฒเจเฉเจฒ เจเจธ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจญเจฐเจฆเฉ เจนเจพเจ เจเฉเจเจฐ เจ เจธเฉเจ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจเฉเจฐเฉเจธเจผเจฒเจพเจเจเจฟเจเจธ เจ เจคเฉ/เจเจพเจ เจเจชเจธเจเฉเจฐ เจตเจฟเฉฑเจ เจชเฉเจธเจ เจเจฐเจจ เจฒเจ เจฌเจฟเจฒเจกเจพเจ 'เจคเฉ เจฆเจธเจคเจเจค เจเจฐเจจ เจฒเจ เจฎเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ, เจฏเจพเจจเฉ เจคเฉเจนเจพเจกเฉ เจ เจฐเจเจผเฉ เจฆเฉ เจฌเฉฐเจกเจฒ ID 'เจคเฉ เจฆเจธเจคเจเจค เจเจฐเจจ เจฒเจเฅค
เจชเจฐ, เจเจฟเจตเฉเจ เจเจฟ เจธเจพเจจเฉเฉฐ เจฏเจพเจฆ เจนเฉ, เจ เจธเฉเจ เจเฉเจธเจ เจฌเจฟเจฒเจก 'เจคเฉ เจฆเจธเจคเจเจค เจเจฐเจจ เจฒเจ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจตเจพเจเจฒเจกเจเจพเจฐเจก เจเจเจกเฉ เจฌเจฃเจพเจ เจนเฉเฅค เจเจธ เจฒเจ, เจซเจพเจธเจเจซเจพเจเจฒ เจเฉเจฒเฉเจนเฉ เจ เจคเฉ เจเฉฑเจ เจจเจตเฉเจ เจฒเฉเจจ เจฆเจพเจเจฒ เจเจฐเฉ:
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 เจเฉเจฒเฉเจนเฉเฅค เจนเฉเจฃ เจธเจพเจกเฉ เจเฉเจฒ เจซเจพเจฐเจฎ เจฎเฉเจ เจกเจฟเจตเฉเจฒเจชเจฎเฉเจเจ com.com
เจเจน เจ
เจธเฉเจเจฌเจฒเจฟเฉฐเจ เจเฉเจธเจเจพเจ เจฒเจ เจฒเฉเจจ เจเฉเฉเจจเจพ เจฌเจพเจเฉ เจนเฉ. เจเจฒเฉ เจเจฒเฉเจ
เจเจ เจ เจธเจฒเฉ เจเจฆเจพเจนเจฐเจฃ เจคเฉเจ เจเจพเจชเฉ-เจชเฉเจธเจ เจเจฐเฉเจ เจคเจพเจ เจเจฟ เจธเจพเจกเฉ เจฒเฉเจจ เจเฉเจธเจเจฟเฉฐเจ_เจฌเจฟเจฒเจก_เจซเฉเจฐ_เจซเจพเจเจฐเจฌเฉเจธ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉ:
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
เจธเจฐเจเจฒเจธเฉเจเจ เจตเจฟเฉฑเจ เจซเจพเจธเจเจฒเฉเจจ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฌเจพเจฐเฉ เจชเฉเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจฒเจ, เจฎเฉเจ เจ
เจงเจฟเจเจพเจฐเจค เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจฆเฉ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ
เจธเจพเจกเฉ 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. เจธเจพเจกเฉ เจเฉเจธเจ เจฌเฉเจเจ เจฌเจพเจฐเฉ เจเฉ? เจซเจพเจเจฐเจฌเฉเจธ เจธเฉเฉฑเจเจ เฉฑเจช เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉเฅค
เจเจ เจนเฉเจ เจพเจ เจเจพเจฃเฉเจ เจเจฟ เจฒเฉเจ เจเจฟเจธ เจฒเจ เจฒเจฟเจเจฟเจ เจเจฟเจ เจธเฉเฅค
เจธเจผเจพเจเจฆ เจคเฉเจนเจพเจกเฉ เจเจช เจเฉฑเจ เจฎเฉเจซเจค เจฏเฉเจเจจเจพ 'เจคเฉ เจซเจพเจเจฐเจฌเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ, เจเจพเจ เจธเจผเจพเจเจฆ เจฌเจฟเจฒเจเฉเจฒ เจจเจนเฉเจเฅค เจเฉฑเจฅเฉ เจฌเจฟเจฒเจเฉเจฒ เจเฉเจ เจฌเฉเจจเจฟเจเจฆเฉ เจ เฉฐเจคเจฐ เจจเจนเฉเจ เจนเฉ, เจเจฟเจเจเจเจฟ เจเฉเจธเจเจฟเฉฐเจ เจฒเฉเฉเจพเจ เจฒเจ เจ เจธเฉเจ เจเฉฑเจ เจธเจพเจฒ เจฆเฉ เจฎเฉเจซเจค เจตเจฐเจคเฉเจ เจจเจพเจฒ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจชเฉเจฐเฉเจเฉเจเจ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเจพเจ (เจ เฉฐเจขเฉ, เจ เฉเจ?)
เจ
เจธเฉเจ เจเจชเจฃเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจเจพเจคเฉ (เจเจพเจ เจเฉเจ เจนเฉเจฐ, เจเจธ เจจเจพเจฒ เจเฉเจ เจซเจผเจฐเจ เจจเจนเฉเจ เจชเฉเจเจฆเจพ) เจตเจฟเฉฑเจ เจฒเฉเจเจเจจ เจเจฐเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจเจพเจเจฆเฉ เจนเจพเจ
เจเจน เจเจฐเจจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจนเฉ: Fastfile in lane firebase_test_lab_ios_xctest เจตเจฟเฉฑเจ เจชเจฟเจเจฒเฉ เจชเฉเจพเจ เจตเจฟเฉฑเจ gcp_project เจชเฉเจฐเจพเจฎเฉเจเจฐ เจชเฉเจฐเฉเจเฉเจเจ เจจเจพเจฎ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจกเจฟเจซเฉเจฒเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจธเจพเจกเฉ เจฒเจ เจฌเจนเฉเจค เจตเจงเฉเจ เจนเจจ.
เจเฉเจฌ เจจเฉเฉฐ เจฌเฉฐเจฆ เจจเจพ เจเจฐเฉ, เจเจธเฉ เจเจพเจคเฉ เจฆเฉ เจคเจนเจฟเจค เจฐเจเจฟเจธเจเจฐ เจเจฐเฉ
Google เจเฉฑเจ เจธเจพเจฒ เจฒเจ $300 เจฆเฉ เจฐเจฟเจนเจพ เจนเฉ, เจเฉ เจเจฟ เจเจเฉเจเฉเจธเจ เจเจฐเจจ เจฆเฉ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจ เจธเฉเจตเจพ เจฆเฉ เจฎเฉเจซเจค เจตเจฐเจคเฉเจ เจฆเฉ เจเฉฑเจ เจธเจพเจฒ เจฆเฉ เจฌเจฐเจพเจฌเจฐ เจนเฉเฅค เจ เจธเฉเจ เจคเฉเจนเจพเจกเฉ เจญเฉเจเจคเจพเจจ เจเจพเจฃเจเจพเจฐเฉ เจฆเจฐเจ เจเจฐเจฆเฉ เจนเจพเจ, $1 เจฆเฉ เจเฉเจธเจ เจกเฉเจฌเจฟเจ เจฆเฉ เจเจกเฉเจ เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจคเฉเจนเจพเจกเฉ เจเจพเจคเฉ เจตเจฟเฉฑเจ $300 เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเจพเจเฅค เจเฉฑเจ เจธเจพเจฒ เจฌเจพเจ เจฆ, เจชเฉเจฐเฉเจเฉเจเจ เจเจชเจฃเฉ เจเจช เจเฉฑเจ เจฎเฉเจซเจค เจเฉเจฐเจฟเจซ เจชเจฒเจพเจจ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒ เจนเฉ เจเจพเจตเฉเจเจพ, เจเจธเจฒเจ เจชเฉเจธเฉ เจฆเฉ เจธเฉฐเจญเจพเจตเฉ เจจเฉเจเจธเจพเจจ เจฌเจพเจฐเฉ เจเจฟเฉฐเจคเจพ เจเจฐเจจ เจฆเฉ เจเฉเจ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค
เจเจฒเฉ เจซเจพเจเจฐเจฌเฉเจธ เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉ เจจเจพเจฒ เจเฉเจฌ 'เจคเฉ เจตเจพเจชเจธ เจเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจฌเจฒเฉเจเจผ เจเฉเจฐเจฟเจซ เจชเจฒเจพเจจ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเฉเจ - เจนเฉเจฃ เจธเจพเจกเฉ เจเฉเจฒ เจญเฉเจเจคเจพเจจ เจเจฐเจจ เจฒเจ เจเฉเจ เจนเฉ เจเฉเจเจฐ เจธเฉเจฎเจพ เจตเฉฑเจง เจเจพเจเจฆเฉ เจนเฉเฅค
gcloud เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ, เจธเจพเจกเฉ เจซเจพเจเจฐเจฌเฉเจธ เจชเฉเจฐเฉเจเฉเจเจ เจจเฉเฉฐ เจเฉเจฃเฉ, โเจกเจพเจเจฐเฉเจเจเจฐเฉโ เจฎเฉเฉฑเจ เจฎเฉเจจเฉ เจเจเจเจฎ เจจเฉเฉฐ เจเฉเจฃเฉ เจ เจคเฉ เจเจฒเจพเจเจก เจเฉเจธเจเจฟเฉฐเจ API เจ เจคเฉ เจเจฒเจพเจเจก เจเฉเจฒเจเจผ เจจเจคเฉเจเจพ API เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค
เจซเจฟเจฐ เจฎเฉเจจเฉ เจเจเจเจฎ "IAM เจ
เจคเฉ เจชเฉเจฐเจธเจผเจพเจธเจจ" -> เจธเฉเจตเจพ เจเจพเจคเฉ -> เจธเฉเจตเจพ เจเจพเจคเจพ เจฌเจฃเจพเจ 'เจคเฉ เจเจพเจเฅค เจ
เจธเฉเจ เจชเฉเจฐเฉเจเฉเจเจ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจ เจฆเฉ เจ
เจงเจฟเจเจพเจฐ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจเฅค
JSON เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ API เจเฉเฉฐเจเฉ เจฌเจฃเจพเจ
เจธเจพเจจเฉเฉฐ เจฅเฉเฉเฉ เจฆเฉเจฐ เจฌเจพเจ
เจฆ เจกเจพเจเจจเจฒเฉเจก เจเฉเจคเฉ JSON เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉ, เจชเจฐ เจซเจฟเจฒเจนเจพเจฒ เจ
เจธเฉเจ เจเฉเจธเจ เจฒเฉเจฌ เจธเฉเฉฑเจเจ
เฉฑเจช เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจจ 'เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเจพเจเจเฉเฅค
5. เจธเจฐเจเจฒเจธเฉเจเจ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ
เจเฉฑเจ เจตเจพเจเจฌ เจธเจตเจพเจฒ เจเฉฑเจ เจฆเจพ เจนเฉ - เจชเจพเจธเจตเจฐเจก เจจเจพเจฒ เจเฉ เจเจฐเจจเจพ เจนเฉ? เจธเจพเจกเฉ เจฌเจฟเจฒเจก เจฎเจธเจผเฉเจจ เจฆเจพ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจฎเจเฉเจจเจฟเจเจผเจฎ เจธเจพเจกเฉ เจชเจพเจธเจตเจฐเจก เจ เจคเฉ เจนเฉเจฐ เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจกเฉเจเจพ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจขเฉฐเจ เจจเจพเจฒ เจธเจเฉเจฐ เจเจฐเจจ เจตเจฟเฉฑเจ เจธเจพเจกเฉ เจฎเจฆเจฆ เจเจฐเฉเจเจพเฅค เจธเจฐเจเจฒเจธเฉเจเจ เจชเฉเจฐเฉเจเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ, เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจเฉเจฃเฉ
เจ
เจคเฉ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจธเฉเจ เจ
เจช เจเจฐเฉ:
- เจเฉเฉฐเจเฉ: GOOGLE_APPLICATION_CREDENTIALS
เจฎเฉเฉฑเจฒ: gcloud เจธเฉเจตเจพ เจเจพเจคเจพ เจเฉเฉฐเจเฉ เจฆเฉ json เจซเจพเจเจฒ เจฆเฉ เจธเจฎเฉฑเจเจฐเฉ - เจเฉเฉฐเจเฉ: MATCH_PASSWORD
เจฎเฉเฉฑเจฒ: เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจจเจพเจฒ เจเฉเจฅเจฌ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจกเฉเจเฉเจฐเจฟเจชเจ เจเจฐเจจ เจฒเจ เจชเจพเจธเจตเจฐเจก - เจเฉเฉฐเจเฉ: FASTLANE_PASSWORD
เจฎเฉเฉฑเจฒ: เจเจชเจฒ เจกเจฟเจตเฉเจฒเจชเจฐ เจชเฉเจฐเจเจฒ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเจพ เจเจพเจคเจพ เจชเจพเจธเจตเจฐเจก
เจ เจธเฉเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจฆเฉ เจนเจพเจ, เจเฉฑเจ PR เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจธเจฎเฉเจเจฟเจ เจฒเจ เจธเจพเจกเฉ เจเฉเจฎ เจฒเฉเจก เจจเฉเฉฐ เจญเฉเจเจฆเฉ เจนเจพเจเฅค
เจจเจคเฉเจเฉ
เจเจนเจจเจพเจ เจธเจงเจพเจฐเจจ เจนเฉเจฐเจพเจซเฉเจฐเฉเจเจ เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจจเฉเฉฐ เจเฉเจธเจเจฟเฉฐเจ เจฆเฉ เจธเจฎเฉเจ เจกเจฟเจตเจพเจเจธ เจธเจเฉเจฐเฉเจจ เจคเฉ เจตเฉเจกเฉเจ เจฐเจฟเจเจพเจฐเจก เจเจฐเจจ เจฆเฉ เจธเจฎเจฐเฉฑเจฅเจพ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจตเจงเฉเจ, เจธเจฅเจฟเจฐ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเจพ เจธเจเฉเจเจก เจชเฉเจฐเจพเจชเจค เจนเฉเจเจ เจนเฉเฅค เจเฉเจธเจ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ, เจฎเฉเจ เจเจเจซเฉเจจ X เจกเจฟเจตเจพเจเจธ เจฎเจพเจกเจฒ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเฉเจคเจพ เจนเฉ, เจชเจฐ เจซเจพเจฐเจฎ เจตเฉฑเจ-เจตเฉฑเจ เจฎเจพเจกเจฒเจพเจ เจ เจคเฉ iOS เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจธเฉเจฎเฉเจฒ เจคเฉเจ เจเฉฑเจ เจ เจฎเฉเจฐ เจเฉเจฃ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจฆเฉเจเจพ เจญเจพเจ เจเฉฑเจ เจเจเจกเจฐเฉเจเจก เจชเฉเจฐเฉเจเฉเจเจ เจฒเจ เจซเจพเจเจฐเจฌเฉเจธ เจเฉเจธเจ เจฒเฉเจฌ เจฆเฉ เจเจฆเจฎ-เจฆเจฐ-เจเจฆเจฎ เจธเฉเฉฑเจเจ
เฉฑเจช เจฒเจ เจธเจฎเจฐเจชเจฟเจค เจนเฉเจตเฉเจเจพเฅค
เจธเจฐเฉเจค: www.habr.com