swtest
Appium iOS real device 환경 구축하기
by Kitle · 2020. 10. 23.
Appium + iOS 조합의 가장 큰 허들은 바로 환경설정이 아닐까 싶습니다. 공식 문서를 봐도 어렵고, 예외 사항들이 많아서 대부분 여기서 포기하시는 분들이 많습니다. 그래서 정리했습니다. 하나하나 차근차근 따라오시기 바랍니다.
중간에 굉장한 장애물들이 나올 수 있습니다. 그리고 어느상황에서나 정답이 아닐 수 있습니다. 제가 놓친 부분이 있을 수 있고, 각 환경마다 다른 부분이 있어 동작하지 않는 경우는 하나하나 차근차근 해보시고, 잘 되지 않는 부분은 게시판으로 문의주세요.
준비사항
- MacOS PC - 예) 맥북, 아이맥 등
- 아이폰 - 또는 아이패드
- 맥북과 아이폰을 연결할 케이블
- 아이폰에서 구동가능한 테스트용 앱(.ipa 파일)
> 없는 경우 현업 QA/Tester 분들이시라면 개발팀에 지원을 얻어 .ipa 파일을 빌드 받으세요. 빌드는 Product 환경이 아닌 debug 용으로 빌드해야 합니다.
> 이때 실제 테스트할 폰의 udid 가 등록되어 있어야 합니다. 테스트 폰의 Udid를 개발팀에 드리고, 테스트 빌드에 프로필 추가를 요청해주세요.
udid 알아내는 법
맥북을 USB로 연결 후 터미널에서 다음과 같은 명령어를 수행합니다.
instruments -s devices
내 아이폰 이름 옆 (OS버전) [UDID] 가 표시됩니다. [] 안의 내용이 UDID입니다. UDID 를 알아내는 방법은 많이 있습니다. 다만 대문자로만 표기되는 경우가 있으니 이 경우 Appium 에서 제대로 인식하지 않습니다. 꼭 대소문자를 구분하여 얻어오셔야 합니다. Apple Configurator 2 의 경우 대문자로 표시해주어 인식이 되지 않았었습니다.
> 개인 개발자의 경우는 스스로 빌드하여 생성가능하므로 직접 ipa 파일을 만드시면 될 것 같습니다.
Xcode 사용을 위한 권한 생성하기
- 애플 아이디를 만들어 iPhone Developer 권한을 습득해야 합니다. 회사(Team) 내의 Apple Admin 계정으로 권한을 추가할 수 있을 겁니다.
- 중간에 키체인을 업로드 하고 인증서를 다운로드 하는 과정이 있을 겁니다. Admin 이 요청하는 경우 진행하시면 됩니다.
(자세한 설명은 https://help.apple.com/developer-account/#/devbfa00fef7 를 참고해주세요) 인증서를 전달받으셨으면 추가된 인증서를 맥북에 다운로드 받습니다.
Mac OS 준비
iOS 테스트를 위해서는 MacOS가 꼭 필요합니다. 윈도우 OS는 불가능 한 것으로 알고 있습니다.
가능한한 Mac OS를 최신버전으로 업데이트 해줍니다.(필수아님)
본 가이드에서 진행한 OS버전은 macOS Catalina v10.15.4 입니다.
라이브러리 설치
추가적으로 필요한 라이브러리를 맥북에 설치해주겠습니다.
맥북의 터미널을 실행합니다. 터미널 화면에서 다음 입력어를 입력하고 엔터를 칩니다.
brew install carthage
명령어를 통해 설치합니다. (명령어 안먹히면 Home brew 먼저 설치, 이거는 구글 검색으로 설치해주세요.)
이미 설치되어 있는 경우는 스킵하셔도 됩니다.
MacOS의 Xcode 앱 업데이트
PC를 부팅하고 AppStore에 진입합니다.
앱스토어에서 'xcode'로 검색합니다. xcode 는 MacOS의 기본 탑재된 개발 툴 입니다. 최신버전으로 업데이트 되어 있는지 체크합니다.
최신버전이 아니라면 업데이트를 눌러 진행합니다. 하드디스크 용량이 부족한 경우 업데이트가 되지 않을 수 있습니다.
기본적으로 맥북에 깔려 있으나 업데이트가 되어 있지 않으면 최신 SDK 가 없어서 동작을 하지 않을 수 있기에 최신 버전을 권장합니다.
업데이트는 업데이트 상황에 따라 수십분 이상 오래 걸릴 수 있습니다.
MacOS의 Xcode 실행 및 추가 항목 설치하기
Xcode 에서 WebDriverAgent 프로젝트 받아오기
터미널에서 WDA 프로젝트로 이동 후 bootstrap 명령어로 셋업하기
cd /Users/<YourMacName>/Documents/WebDriverAgent
./Scripts/bootstrap.sh -d
계정 생성 및 개발자 권한 계정 등록하기
Signing and Bundle indentifier 수정 하기
WebDriverAgentRunner 빌드 및 테스트 하기
Test Case '-[UITestingUITests testRunner]' started.
t = 0.00s Start Test at 2020-10-22 14:59:53.208
t = 0.00s Set Up 2020-10-22 14:59:53.221633+0900
WebDriverAgentRunner-Runner[911:60980]
Built at Oct 22 2020 14:29:51 2020-10-22 14:59:53.249413+0900
WebDriverAgentRunner-Runner[911:60980]
ServerURLHere->http://192.168.3.103:8100<-ServerURLHere
cd /Users/<YourMacName>/Documents/WebDriverAgent
(폴더 이동 후)
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=UDID" test
Appium 다운로드 및 설치
Appium 실행
{ "deviceName": "iPhone",
"platformVersion": "14.1",
"platformName": "ios",
"app": "/Users/YourMacName/yourtestapp.ipa",
"automationName": "XCUITest",
"noReset": true,
"udid": "YOURIPHONEUDID",
"xcodeOrgId": "YourOrgId",
"xcodeSigningId": "iPhone Developer",
"wdaBaseUrl": "http://Xcode콘솔에 표시된URL"
}