Blog

  • Xcode Cloud – Auto-Generated Test Notes for TestFlight Build (PR Title, Commits, and JIRA Ticket Links)

    Xcode Cloud – Auto-Generated Test Notes for TestFlight Build (PR Title, Commits, and JIRA Ticket Links)

    No more put ‘No test notes’ at Test Flight

    No test notes.

    It’s not clear what to test using this build

    Setup Xcode Cloud Workflow

    To get a Github PR infos from Xcode Cloud, You should enable settings like below

    Environment

    • Set your Github Token

    • Set Xcode Version – Latest Release

    Start Conditions -> See Apple Document

    • CI_PULL_REQUEST_NUMBER

    • CI_PULL_REQUEST_SOURCE_COMMIT

    • CI_PULL_REQUEST_TARGET_COMMIT

    To get CI_PULL_REQUEST variables You should set Pull Request Changes as Start Condition

    Post Actions

    • Set Test Flight Internal Testing

     

    ci_scripts/ci_post_clone.sh

    #!/bin/sh
    brew install jq

     

    ci_scripts/ci_post_xcodebuild.sh

    #!/bin/zsh
    #  ci_post_xcodebuild.sh
    
    # PR Description
    GITHUB_REST_API_PR_INFO=$(curl -L\
      -H "Accept: vnd.github+json" \
      -H "Authorization: Bearer $GITHUB_TOKEN" \
      -H "X-GitHub-Api-Version: 2022-11-28" \
      "https://api.github.com/repos/$CI_PULL_REQUEST_TARGET_REPO/pulls/$CI_PULL_REQUEST_NUMBER")
    
    # Fixed: parse error: Invalid string: control characters from U+0000 through U+001F must be escaped, https://stackoverflow.com/questions/52399819/invalid-string-control-characters-from-u0000-through-u001f-must-be-escaped-us
    PR_TITLE=$(printf '%s\n' "$GITHUB_REST_API_PR_INFO" | jq -r '.title')
    
    PR_DESCRIPTION=$(printf '%s\n' "GITHUB_REST_API_PR_INFO" | jq -r '.body')
    PR_DESCRIPTION_URLS=$(echo "$PR_DESCRIPTION" | grep -Eo 'https?://[^[:space:]]+')
    PR_DESCRIPTION_JIRA_TICKETS=$(echo "$PR_DESCRIPTION_URLS" | grep 'atlassian')
    
    # GIT COMMITS
    COMMIT_MESSAGES=$(git log $CI_PULL_REQUEST_TARGET_COMMIT^..$CI_PULL_REQUEST_SOURCE_COMMIT --pretty=format:"%s\n%b")
    FORMATTED_COMMIT_MESSAGES=$(echo -e "$COMMIT_MESSAGES" | awk 'NF {print}' ORS='\n')
    
    # TEST FLIGHT - What To Test
    WHAT_TO_TEST="$PR_TITLE\nCommits:\n$FORMATTED_COMMIT_MESSAGES\nJIRA Tickets:\n$PR_DESCRIPTION_JIRA_TICKETS"
    
    if [[ -d "$CI_APP_STORE_SIGNED_APP_PATH" ]]; then
      TESTFLIGHT_DIR_PATH=../TestFlight
      mkdir $TESTFLIGHT_DIR_PATH
      echo "$WHAT_TO_TEST" >! $TESTFLIGHT_DIR_PATH/WhatToTest.en-US.txt
    fi

     

    Auto-Generated Test Notes

  • Xcode Cloud – How to check App Version (MARKETING_VERSION) from ci_post_xcodebuild.sh

    Xcode Cloud – How to check App Version (MARKETING_VERSION) from ci_post_xcodebuild.sh

    Check App Version using xcodebuild

    Update ci_scripts/ci_post_xcodebuild.sh

    CURRENT_PROJECT_VERSION=$(xcodebuild -project $CI_PROJECT_FILE_PATH -showBuildSettings | grep "MARKETING_VERSION" | sed 's/[ ]*MARKETING_VERSION = //')
    
    echo "🐥 App Version is $CURRENT_PROJECT_VERSION"

  • 싱가포르 생활, 애플 오피스 방문, 비전 프로 Vision Pro Developer Lab 애플 비전 프로 6시간 체험

    싱가포르 생활, 애플 오피스 방문, 비전 프로 Vision Pro Developer Lab 애플 비전 프로 6시간 체험

    오늘 싱가포르 애플 오피스를 다녀왔다. Apple에서 진행하는 Vision Pro Developer Lab에 참여했다.

    애플 오피스

    우리 회사랑 아주 가까운 곳에 있었다. 걸어서 한 5-7분 거리?

    One North에 위치한 애플 오피스

    방문자 등록

    보안으로 인해 내부 촬영은 불가능하다. 사진은 여기서 끝.

    VisionOS

    이미 VisionOS 시뮬레이터가 나왔기 때문에 실제 디바이스로 테스트 가능한 것들 위주로 체크했다.

    ARKitSession

    가장 먼저 테스트해본 SDK이다. ImmersiveSpace와 RealityView를 이용하면 눈으로 보이는 공간에 무언가를 랜더링 할 수 있다. 즉 눈에 보이는 공간 전체를 앱의 공간으로 활용할 수 있다. full space로 설정 필요. ARKit의 PlaneDetectionProvider를 사용하면 눈에 보이는 공간의 벽, 바닥, 천장의 색상을 바꾸는 작업 등을 할 수 있고 또한 해당 Plane이 벽인지 천장인지 문인지 창문인지 등을 확인 할 수 있다.

    이 기능을 이용하면 당연히 눈에 보이는 공간을 재구성할 수 도 있을것이다. 예를 들어 벽을 영화관 공간처럼 꾸민다든가 하는 것이 가능하다.

    예시

    NUI (Natural User Interface)

    눈동자와 손을 이용해서 조작할 수 있다. 특히 눈동자로 트래킹하는 것이 정말 편리했다. 손 동작 인식도 기대 이상으로 잘 인식했다.

    RoomPlan

    아쉽게도 RoomPlan은 VisionOS를 지원하지 않는다. 지원을 하지 않기 때문에 당연히 컴파일 불가능하다. RoomPlan의 iOS 샘플앱은 컴파일은 되지만 실행이 되지 않는다.

    Camera 관련된 API

    이미 알려진대로 Camera 접근 권한은 보안상 막혀있다. 즉 애플이 아닌 다른 회사에서 VisionPro를 위한 카메라 관련된 앱은 만들 수 없다.

    사운드

    애플 사이트 Quick Look에 올라온 3D모델로 테스트해봤다. 분명 귀에 꼽는 이어폰 같은 건 없었는데 사운드가 꽤 좋았다. 이게 골전도 방식이었는지 아니면 스피커를 통해 들은 소리인지 잘 모르겠다.

    Developer Lab

    일단 아침에 등록하면 애플 엔지니어분들이 비전 프로를 개인당 한대씩 나누어준다. 우리팀은 총 4명이 참석했는데 4명 다 디바이스를 줘서 몰입해서 개발 할 수 있었다.

    또한 애플의 VisionOS Engineer도 참여해서 적극적으로 이것저것 도와주었다. 코딩하다 막히거나 샘플 코드에 대한 질문 그리고 VisionOS에 관련된 여러가지 질문에도 친절하게 알려주어서 진짜 도움 많이 되었다.

    점심도 맛있었다.

    Developer Lab은 아침 10시부터 오후 4시까지 진행되었으며 시간은 딱 맞게 진행되기 때문에 참석하기 전에 개발 환경 세팅 뿐만 아니라 테스트해보고 싶은 코드들도 미리미리 잘 준비해오면 알차게 시간을 활용할 수 있을 것이다.

  • Apple Vision Pro Developer Lab in Singapore

    Apple Vision Pro Developer Lab in Singapore

    Today I attended Apple office in Singapore to test Vision Pro. Office is located in One North. From my office to here It took around 5-7 mins by walk

    Vision Pro

    I tested some apps using Vision Pro simulator already. So Today I focused on testing some feature that can’t be tested on simulator. Here is the list what I checked using Vision Pro device

    ARKitSession

    It enabled to render some thing by adding an entity. I can positioning objects around the space by using ImmersiveSpace and RealityView. That means we can use entire spaces what I see for your app. I also tested PlanDetectionProvider to fill the color on the planes. Also I can render the text to display the categories such as floor, wall and window. Using this I can reconstruct spaces. For example you can make your room looks like movie theater.

    Here is example

    Interaction

    Vision Pro allow me to control UI using eye tracking and hand gesture. Especially eye tracking is very convenient to focus on UI. Hand gesture also detected my posture very well.

    Room Plan

    It is one of the feature I really want to use on Vision Pro. But It is not supported for Vision Pro yet. I tried to install Room Plan iOS app on Vision Pro. I can compile and install it but can’t run it. I hope to use it on Vision Pro in the near future.

    Camera API

    Vision Pro doesn’t allow to access to camera from 3rd party apps. It is known as security and privacy issue.

    Sound

    I tested it by using 3D model from Apple Augmented Reality Quick Look web. I drag and drop it in to space. Once model is loaded I can hear the sound from Vision Pro device. There is no ear plugin but I can hear the sound. I’m not sure It played from speaker or bone conduction.

    Developer Lab

    I arrived at office at 10:00 AM. Apple provided Vision Pro device for all attendees. I could forced on development. Also Apple engineers helped me when I faced issue.

    Lunch and Coffee also provided. Very nice.

    Developer Lab start from 10:00 AM to 16:00 PM. I highly recommend preparing development setup before attend developer lab. It helps you save your time.

  • 싱가포르 생활, Dell 델 S2721QS 27인치 4K 모니터 언박싱, 강추 강추

    거의 17년만에 모니터를 구입했다

    데스크탑에서 노트북으로 옮긴 이후 한번도 모니터를 구매해서 사용한 적이 없으니 17년만에 모니터를 구매한 셈이다

    이유는 코딩할때 확실히 큰 화면이 필요해서다

    언박싱

    조립은 정말 간단하다. 스탠드 연결만 하면 끝이다. 다만 후기에서 동봉된 hdmi 케이블은 맥북에서 지원하는 4k 60hz를 지원하지 않는다는 것을 확인했다.

    그래서 4K 60hz를 지원하는 케이블을 따로 구매했다

    이케아 책상 + 모니터

    아마도 내가 쓰는 이케아 책상이 이케아 제품중에서 제일 작은 사이즈일거다. 그래도 사기전에 책상 넓이를 재보았고 모니터 크기를 확인했다.

    모니터의 넓이가 책상의 넓이보다 넓지는 않아서 그런지 봐줄만 하다.

    다만 맥북을 세워놓는 스탠드를 구매해야 될 듯 😅

    해상도

    솔직히 크게 기대 안하고 샀었다. 왜냐하면 LG 모니터처럼 맥북 전용 썬더볼트가 지원되는 모델도 아니였기 때문이다. 그런데 4K 60hz 케이블로 연결해보니 대박이다.

    개인적으로 나는 애플빠라고 생각하는데 내 기준으로 봐도 진짜 해상도 기대 이상이고 엄청 선명하다. 그냥 애플 모니터로 보는 것 같다.

    맥북 세로 받침대 구매

    이케아 책상이 작다보니 아무래도 맥북을 세워놓는 스탠드가 필요할 것 같다. 이 글을 쓰고 있는 와중에 싱가포르 달러로 19불짜리 아마존에서 질렀다.

  • 싱가포르 생활, EP 및 DP 비자 갱신 후기. 2년 -> 3년으로 연장

    벌써 싱가포르로 이직한지 2년이 되었다.

    첫 EP(Employment Pass) 및 아내의 DP (Dependent Pass) 발급 과정은 다음과 같았다.

    • 싱가포르로 이직
    • IPA 문서 확인
    • 싱가포르로 리로케이션
    • MOM가서 EP 카드 발급받기
    • 이후 DP 비자 별도로 신청 및 MOM가서 DP 카드 발급 받기

    첫 EP 발급 시에는 비자 기간이 2년이었다.

    비자를 3년으로 연장하다

    벌써 이직한지 2년이 되었다. EP 기간 만료가 다가오자 HR에서 연장해주겠다고 메일이 왔다.

    사실 내가 한 것이라고는 개인정보 확인에 대한 싸인 완료. 나머지는 HR에서 알아서 진행해줬다.

    EP 및 DP 비자 연장 신청도 마찬가지로 IPA 승인이 먼저 나고 그 이후에 비자 발급이 완료된다.

    달라진 점이라면 첫 EP 비자는 2년이었는데 이번에 갱신되면서 유효기간이 3년으로 늘어났다. DP 도 같이 연장해줬다.

    비자카드 발급을 위해 MOM을 다시 방문해야 되나?

    아니다. 비자 연장은 MOM에 따로 방문할 필요가 없다. 갱신된 카드는 우편으로 발송된다.

  • 센토사 그릴 페스티벌 2023

    센토사 그릴 페스티벌 2023

    오랜만에 센토사를 갔다. 여기서 그릴 페스티벌이 7월 한 달 동안 진행한다

    고기도 너무 맛있었고 분위기도 좋았다

    여기를 방문할 생각이라면 돗자리를 가져가는 것을 추천한다

    자세한 설명은 생략하고 사진으로 마무리해본다

  • 싱가포르 생활, Punggol 오빠짜장 배달 후기

    싱가포르 생활, Punggol 오빠짜장 배달 후기

    푸드판다였나 그랩이었나 아무튼 배달 앱에서 오빠짜장을 주문할 수 있다.

    싱가포르에서 오빠짜장은 꽤나 유명한 한국식 짜장면 집이다. 탄종파가에가면 레스토랑이 있다.

    암튼, 배달 앱 주문 후기

    오빠짜장 Punggol 호커 센터

    내가 맛집 검색할 때 자주 가는 사이트에도 소개된 오빠 짜증 펀골 지점

    짜장면, 짬뽕 그리고 탕수육을 주문했다. 단무지 대신 김치가 같이 왔다.

    오랜만에 먹어보는 한국스타일의 중국집 메뉴. 맛있었다. 우리집은 Punggol 지점이랑 멀지 않아서 그런지 따듯한 상태로 맛있게 잘 배달왔다.

    블로그용으로 그릇에 담아서 사진 찍어봄.

  • 재택? 출근? 하이브리드 형태 근무자의 출근 준비 (맥북 집에 두고 아이패드만 들고 출근해보기)

    일주일에 2번 혹은 3번씩 출근하는 하이브리드 형태로 근무하고 있다.

    출근할 때마다 느끼는 점.. 맥북을 집에 두고 출근하는 방법이 없을까?

    맥북, 충전기, 마우스, 케이블을 가지고 다니려면 백팩이 필수다.

    출근길을 가볍게… 아이패드 들고 출근하는 방법을 찾다.

    아이패드, HDMI 3in1 연결 잭, 아이패드 충전기 그리고 마우스

    위의 조합으로 바꾸면 백팩을 안들고 다녀도 된다. 파타고니아 옆으로 메는 가방안에 저 모든것이 다 들어간다.

    잠깐 일을 하려면 맥북이 필수인데 아이패드로 어떻게 일을 하냐고?

    나는 아이패드의 Jump Desktop 앱을 통해 집에 있는 맥북에 원격접속해서 일한다.

    • 사무실에는 모니터가 있으니 아이패드를 HDMI 케이블로 모니터와 연결한다.
    • 키보드는 사무실에 하나 따로 두던가 아니면 애플에서 만든 아이패드용 매직 키보드를 사용한다.
    • 마우스도 마찬가지로 매직 키보드에 붙어있는 것을 써도 되고 따로 챙겨도 된다.

    아이패드를 모니터로 연결한 모습. 해상도도 꽤 좋고 일하는데 별로 지장이 없다. 무엇보다 출근길이 엄청 가벼워 진다는 점이 큰 장점이다.

    점프 데스크탑을 설치하자

    맥북과 아이패드 각각 앱을 설치하고 세팅하는 과정이 필요하다.

    아이패드 -> 앱스토어 -> Jump Desktop 설치

    맥북 -> https://jumpdesktop.com -> 맥 앱 다운로드 -> 설정

    마치며

    맥북은 집에 두고 아이패드만 들고가서 회사에서 일한다. 일단 무게가 엄청나게 가벼워진다. 재택과 사무실 근무를 동시에 하고 있다면 위와 같은 조합으로 일해보는 것을 추천한다.

  • 싱가포르에 거주하는 한국인 영주권 (PR) 소지자 숫자는 얼마나 될까? 싱가포르 PR 장단점 및 현황 완벽정리

    싱가포르에 거주하는 한국인 영주권 (PR) 소지자 숫자는 얼마나 될까? 싱가포르 PR 장단점 및 현황 완벽정리

    궁금했던 자료인데 관련 자료를 찾았다. 외교부에서 2021년도에 발표한 재외국민 현황자료를 참고했다.

    원문 링크(데이터 출처: 외교부「재외동포현황」)는 아래와 같다

    한국인 영주권자는 2021년 기준 조사에 의하면 총 2,726명이다.

    싱가포르 전체 영주권자 (PR 소지자), 2022년 6월 기준 총 520,000명

    현재 싱가포르의 영주권자는 520,000 명이다. (자료출처 https://www.population.gov.sg/our-population/population-trends/overview/)

    싱가포르 전체 영주권자 중 한국인 비율은 0.52% (520,000 명 중 2,726명)

    2021년 기준 싱가포르에 거주하는 한국인 영주권자 = 2,726명

    2년전 조사이긴 하지만 큰 변화가 없다는 가정하에 대충 싱가포르 전체 영주권자 중 한국인 비율을 계산해보면 0.52%가 나온다.

    한국인이 싱가포르에서 영주권 받을 확률은?

    사실 이게 제일 궁금한데 1년에 한국인 몇명이 지원했고 몇명이 영주권을 받았는지에 대한 데이터를 찾을 수가 없으므로 계산 자체가 안된다. 다만 나라별로 쿼터가 있다고 알고있다. 예를 들어 말레이시아와 같이 인접 국가에서 지원하면 쿼터가 더 많이 때문에 영주권을 받을 확률이 더 높다. 이건 내 주변 동료들만 봐도 알 수 있다.

    싱가포르 정부가 발표한 매년 PR 승인건수

    원문 출처

    https://www.mha.gov.sg/mediaroom/parliamentary/written-reply-to-pq-on-the-number-of-permanent-residence-status-granted-in-2021/

    년도PR 총 발급건수
    202133,400
    202027,470
    201932,900
    2020년도는 코로나로 인해 발급 건수가 낮았다고 한다.

    싱가포르 정부가 공개한 PR 선정 기준

    원문은 위와 같다.

    많은 사람들이 싱가포르 영주권 선정기준을 모르겠다고 한다. 선정된 사람들을 보면 정확한 기준을 모르겠다는 이야기다. 정부가 공개한 기준은 원문에 보면 2개가 나와있다.

    1. 싱가포르 거주기간
    2. 싱가포르에 무엇을 기여했는지

    거주기간이야 명확하긴한데 기여여부는 애매하다. 이건 지역사회에 봉사활동을 한 것도 될수있을 것 같다. 하지만 역시나 애매한건 싱가포르에 특별히 무언가 봉사활동 같은 기여를 하지 않았더라도 받는 경우를 종종 볼 수 있다. 기여라 하면 세금을 낸 것도 포함되려나…

    싱가포르 PR 에이전시

    HR에 있는 현지인 친구가 추천해준 에이전시다. 추천 이유는 최근에 이 에이전시를 통해 PR을 받은 지인이 있기 때문이다.

    개인적으로 에이전시를 쓰는 것은 최후의 보루다. 왜냐면 에이전시 통하지 않고서도 PR 받은 경우를 많이 봤고 실제로 작성 과정이 그렇게 어렵지 않기 때문이다. 하지만 저걸로 수익을 내는 회사가 있는 것을 보면 우리가 모르는 PR 선정 기준을 잘 알고 있을 것 같기도 하다. 만약 계속 PR 리젝 당한다면 승률을 높이기 위해 고려해볼듯 하다.

    단 가격은 보통 2000불 이상이다. 여기에 가족 구성원 한명 추가시 보통 300불이 더 붙으므로 대충 에이전시 시세는 현재 기준 2-3000불로 잡으면 될 것 같다. 저돈 주고 했는데 떨어지면 굉장히 빡칠듯

    Rejection 템플릿

    https://www.sgip.sg/applying-for-singapore-pr-why-did-my-singapore-pr-get-rejected.html

    위의 링크를 보면 거절 사유도 템플릿이 있고 이를 통해 왜 떨어졌는지 유추할 수 있다고 한다.