한 번의 빌드로 여러 시뮬레이터에 설치 및 시작하는 CLI 도구를 만들었습니다

업무로 만들고 있는 앱의 긴 빌드 중에 Twitter를 칠라 보고 있으면 어떤 트윗이 눈에 들어왔습니다.

1build로 지정한 Simulator 전부에 app를 돌진하는 방법 싶다…수정되고 있는지의 화면 확인으로 build해 확인해 simulator 바꾸어 build해…라고 힘들다—


2018년 5월 24일 .

Bluepill 하지만 좋을지도 모르지만, Xcode가 복수 시뮬레이터 기동에 대응하고 나서 나는 사용하지 않아 되었습니다.

그렇다고는 해도, 복수 시뮬레이터를 기동해 확인은 꽤 귀찮은 작업이므로 나는 아래와 같은 느낌의 쉘 스크립트를 짜서 실행하고 있었습니다.



#!/bin/sh

path=~/Library/Developer/Xcode/DerivedData/MyProject-dldoglzedhzxknefqrrzqxdnugcb/Build/Products/Debug-iphonesimulator/MyProject.app
bundleIdentifier=me.fromkk.MyProject
devices=(91E81004-7BE9-4E84-9976-F721E649D2E5 A68CEEAA-3D2A-4ADA-A9A0-6CCAC8E80983 3FEF14D2-4BB4-4759-AB28-A62B97B96140 44EE068E-D87A-4C65-96E4-2199E3C7A9AA)

open -a "Simulator.app"

function bootIfNotBooted() {
    device=$1
    numberOfBooted=`xcrun simctl list | grep $device | grep Booted | wc -l`
    if [ $numberOfBooted = 0 ]; then
        xcrun simctl boot $device
    fi
}

for device in ${devices[@]}; do
    bootIfNotBooted $device
    xcrun simctl install $device $path
    xcrun simctl launch $device $bundleIdentifier
done


개인적으로는 이것으로 충분했습니다만, 인스톨 되고 있는 시뮬레이터도 사람에 따라서 다르고 UDID도 바뀌므로 이대로에서는 타인에게는 공유할 수 없지요.

이번에 이를 해결하기 위한 툴을 작성해 보았습니다.



만든 CLI 도구



fbsimctl



설치 방법



설치는 README.md에도 기재되어 있습니다만, 아래와 같습니다.



git clone https://github.com/fromkk/Simulators.git
cd ./Simulators
make install


사용법



simulators [--project <project>] | [--workspace <workspace>] --scheme <scheme> --bundleIdentifier <bundleIdentifier> --beforeClean <beforeClean> --devices <devices> --osVersion <osVersion>


옵션은 이런 느낌입니다.








































항목설명
--projectXXX.xcodeproj 경로 설정
--workspaceXXX.xcworkspace 경로 설정
--schemescheme 설정
--bundleIdentifierbundleIdentifier 설정
--beforeClean빌드하기 전에 정리할지 여부 [true,false]
--devices기기 이름 설정 [iPhone SE,iPhone 7,iPhone 7 Plus,iPhone X,etc...]
--osVersionOS 버전 설정[10.3,11.3,etc...]


실행하면 아래와 같이 앱이 인스톨 된 상태로 복수의 시뮬레이터가 기동합니다.



htps : // 기주 b. 코 m / f 여 m k / 시무와 rs



요약



전부터 똑같이 불편을 느끼고 있던 부분이 타인도 곤란하고 있다고 생각한 일로 CLI 툴을 작성하는 후원을 해 주었습니다.

같은 일로 곤란한 사람이 있으면 꼭 사용해보십시오.

트윗을 보고 나서 3시간 정도로 만든 거친 도구이므로 여러가지 버그등 있을지도 모릅니다만, 발견하면 Issue나 PR 기다리고 있습니다.

만약, 마음에 들어 주시면 좋다나 스타🌟를 받을 수 있으면 기쁩니다.


좋은 웹페이지 즐겨찾기