Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
5分でわかる! AWS Device Farmでテストしよう!
Search
Sato Takeshi
March 13, 2017
Technology
2
1.6k
5分でわかる! AWS Device Farmでテストしよう!
iOS Test Night #3
https://testnight.connpass.com/event/49561/
の発表資料。
Device Farmのやり方について発表しました。
Sato Takeshi
March 13, 2017
Tweet
Share
More Decks by Sato Takeshi
See All by Sato Takeshi
まさかのバグ!SwiftUIプレビューでハマった国際化対応の落とし穴
satotakeshi
0
330
Swift愛好会 の 思い出
satotakeshi
0
98
Xcode 15, Swift 5.9で変わる開発体験
satotakeshi
3
3k
Meet passkeys
satotakeshi
2
370
What's new in Vision
satotakeshi
0
1.8k
Swift Concurrency入門
satotakeshi
11
5.3k
複数端末のつらさを乗り越えてiOS UITestを実行
satotakeshi
1
430
Xcodegenを個人アプリに導入
satotakeshi
3
810
SwiftUIで作る開閉式メニュー
satotakeshi
2
3.1k
Other Decks in Technology
See All in Technology
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
450
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
260
MagicPod導入から半年、オープンロジQAチームで実際にやったこと
tjoko
0
110
2025/09/16 仕様駆動開発とAI-DLCが導くAI駆動開発の新フェーズ
masahiro_okamura
0
130
「その開発、認知負荷高すぎませんか?」Platform Engineeringで始める開発者体験カイゼン術
sansantech
PRO
2
510
「Linux」という言葉が指すもの
sat
PRO
4
140
いま注目のAIエージェントを作ってみよう
supermarimobros
0
350
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
220
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
750
データ分析エージェント Socrates の育て方
na0
6
2.2k
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
200
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
224
9.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
What's in a price? How to price your products and services
michaelherold
246
12k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Balancing Empowerment & Direction
lara
3
620
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
How STYLIGHT went responsive
nonsquared
100
5.8k
Rails Girls Zürich Keynote
gr2m
95
14k
Transcript
5ͰΘ͔Δ! AWS Device FarmͰς ετ͠Α͏ʂ 20173݄13 ࠤ౻߶࢜ 5ͰΘ͔Δ! AWS Device
FarmͰςετ͠Α͏ʂ 2017/3/13 1
ࣗݾհ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 2
ࠤ౻߶࢜ (@hatakenokakashi) MAMORIOגࣜձࣾͰiOSΤϯδχΞΛ ͍ͯ͠·͢ɻ Swiftͱ͓༑ୡͰ͢ɻ Ruby,JS(ES6)ยࢥ͍Ͱ͢ɻ ϒϩάɿhttp://blog.personal- factory.com/ 5ͰΘ͔Δ! AWS
Device FarmͰςετ͠Α͏ʂ 2017/3/13 3
ςετͭΒ͍ͬ͢ΑͶ! 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 4
։ൃͲΜͲΜਐΉ ͦͷͨͼʹશΛςετ͠ͳ͖Ό͍ ͚ͳ͍ɻ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 5
ͦ͜ʹཱ͔ͪΔ • ༻ҙ͕େม • ૿େ͢Δςετ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13
6
Ͳ͏͠Α͏(´ɾТɾʆ) 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 7
ͦ͜Ͱ Device Farmͷ ग़൪Ͱ͢ʂ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 8
Device FarmͬͯԿʁ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 9
Device Farm • AWSͷεϚϑΥ&WebΞϓϦ͚ςετࣗಈԽαʔϏε • iOSɺAndroid֤֤OSόʔδϣϯΛऔΓἧ͑Δ • ࠷ॳͷ߹ܭ250·Ͱແྉɻޙ0.17 USD/ 5ͰΘ͔Δ!
AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 10
๛ͳछྨ&OSόʔδϣϯ • iPhone4s-iPhone7PlusͷiOS7.1͔ΒiOS10·Ͱ • iPad2/iPad miniୈҰੈ/iPad Pro • Android΄΅ओཁͳΛͦΖ͍͑ͯΔʢͨͩ͠άϩʔόϧ൛) •
AndroidຊΩϟϦΞ͕ΧελϚΠζ͍ͯ͠ΔͷͰ ҙʂ https://aws.amazon.com/jp/device-farm/device-list/ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 11
XCUIͰͬͯΈΔ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 12
XCUIͰͬͯΈΔ 1. ΞϓϦΛϏϧυ͢Δ 2. XCUIΛϏϧυ͢Δ 3. Payload.ipaϑΝΠϧΛͭ͘Δ 4. Device FarmʹΞϓϦͱςετΛొ࣮͠ߦ
5. ςετ݁ՌΛΈΔ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 13
ΞϓϦΛϏϧυ͢Δ XcodeͷProduct -> ArchiveͰΞʔΧΠ ϒ OrganaizerϖʔδͰExport 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ
2017/3/13 14
Save for Development DeploymentΛ બ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13
15
Device SupportΛExport one app for all compatible devicesʹબ 5ͰΘ͔Δ! AWS
Device FarmͰςετ͠Α͏ʂ 2017/3/13 16
XCUIͰςετίʔυΛॻ͘ import XCTest class MAMORIOUITests: XCTestCase { override func setUp()
{ super.setUp() continueAfterFailure = false XCUIApplication().launch() } func test1Tutorial() {} } 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 17
XCUIͷઆ໌ • XCUIApplicationͰΞϓϦऔಘͯ͠ • XCUIElementQueryͰUI෦Λݕࡧ ͯ͠ • XCUIElementͰλοϓͳͲUIૢ࡞Λ ͢Δ let
app = XCUIApplication() app.buttons["startButton"].tap() 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 18
XCUIElementQueryͰݕࡧ Ͱ͖ΔΑ͏ʹ accessibilityIdentifierΛઃఆ͠·͠ΐ ͏ɻ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 19
XCUIΛϏϧυ͢Δ Product > Build For > Testing 5ͰΘ͔Δ! AWS Device
FarmͰςετ͠Α͏ʂ 2017/3/13 20
[UITestName]-Runner.appΛऔಘ ϏϧυύεΛݟΔ /Users/<UserName>/Library/ Developer/Xcode/DerivedData/ <App Name>-xxxxxxxxxxxxxxxxx/ Build/Products/Debug-iphoneos/ 5ͰΘ͔Δ! AWS Device
FarmͰςετ͠Α͏ʂ 2017/3/13 21
ιʔεҰཡͷ Products >ɹ[APPNAME].app ΛӈΫϦοΫͰFinderΛ։͍ͯྑ͍ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 22
Payload.ipaϑΝΠϧΛͭ͘Δ 1. PayloadσΟϨΫτϦΛ࡞Γ[UITestName]-Runner.appΛೖΕ Δɻ 2. ͦͷޙʹzipͰPayloadσΟϨΫτϦΛѹॖ͢Δɻ 3. Payload.zipΛPayload.ipaʹϦωʔϜ͢Δɻ 5ͰΘ͔Δ! AWS
Device FarmͰςετ͠Α͏ʂ 2017/3/13 23
mkdir Payload mv [UITestName]-Runner.app Payload zip Payload.zip Payload mv Payload.zip
Payload.ipa 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 24
Device FarmʹΞϓϦͱςε τΛొ࣮͠ߦ Create a new project ΛΫϦοΫ Create a
new run ΛΫϦοΫ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 25
ΞϓϦͷipaϑΝΠϧ ΛΞοϓϩʔυ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 26
XCTest UIΛબΜͰ Payload.ipaΛΞοϓ ϩʔυ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 27
DeviceΛબͼ·͢ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 28
DeviceͷৄࡉΛઃఆ • Ճͷใ • Ңܦ • ϩέʔγϣϯ • ௨৴ঢ়ଶ 5ͰΘ͔Δ!
AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 29
DeviceͷλΠϜΞ τઃఆΛ͢Δ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 30
ςετ݁ՌΛΈΔ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 31
Α͍ςετϥΠϑΛա͝ ͠·͠ΐ͏✨ 5ͰΘ͔Δ! AWS Device FarmͰςετ͠Α͏ʂ 2017/3/13 32