[발단]

주로 사용하는 개인 메일을 지난 회사에서 Apple Developer Program Membership에 추가해서 쓰고 있었다.

그러다 동료가 퇴사하면서 내 계정이 자연스레 팀의 placeholder가 되었다. 팀명이 전 개발자의 이름이었는데 그때는 그러려니 했는데 이직하니 문제가 생겼다. 우선 새로운 회사에서 새 membership에 메일을 추가하니 내 계정에 team이 두개가 되었고 내가 certificate를 revoke할 때마다 내 이름 대신 그 분의 이름(팀명)이 뜨면서 사람들이 누가 revoke 했는지 계속 확인하게 만든 것이다.

 

회사 옮길 때마다 이럴 수는 없기에 애플에 삭제 또는 팀명 변경이 가능한지 물어보니 상황을 이해는 하지만 불가능하단다.

개발 프로그램마다 하나의 이메일을 쓰라고 한다.

이런, 이직할 때마다 하나의 메일을 버리게 되다니... 이럴 줄 알았다면 회사 메일로 등록할 것을 그랬다.

 

[전개]

메인 메일을 새로 파자 결심하고 우선 개발 메일을 회사의 것으로 변경하기로 한다.

1. Apple Developer Program Membership에 추가된 이전 계정을 지우고 새 계정을 추가했다.

2. Xcode의 Preferences > Accounts 에서 Apple Id를 새로 업데이트했다.

 

[위기 & 결말]

잉? Xcode를 오픈할때마다 계정정보가 사라진다.

구글링해보니 키체인에 남아 있어서라고 해서 KeyChain Access > All items에서 이전 계정을 지우고 다시 시도했다.

오, 변경된 아이디로 뜬다.

 

 

앗, Update Signing에 에러가 떠있다.

Team ZXXXXXXXXX (Automatic) | Platform iOS

The operation couldn’t be completed. Unable to log in with account 0000@gmail.com'. (The login details for account '0000@gmail.com' were rejected.)

 

Code Sign이라... 한참 생각하다가 certificate 갱신을 떠올렸다.

새로 받아 설치하니 에러도 사라졌다.

 

그런데 문제가 하나 더 있었다.

Xcode Server로 CI를 돌리고 있는데 자꾸 한번 돌리고 나면 developer teams 에서 빠진다.

'your server has been removed from this team and needs to be added again' 에러가 뜬다.

 

이것저것 다 수정해도 이 이슈만은 고쳐지지 않는다.

beta 버전에서 버그였다는 글이 보이긴 하는데 아직 고쳐지지 않은 건지...

계속 모니터링 해야겠다.

regular expression을 이용해서 해시태그를 가져오는 메소드가 이모지가 있는 텍스트에서 제대로 동작하지 않는다.

NSRegularExpression을 사용하기 위해서는 NSString으로 형변환해야 하는데 NSRange에 문자열 길이를 NSString의 length가 아니라 String의 count로 넘겨주고 있었다.

 

NSString과 String은 유니코드에 대한 동작 방식이 달라서 반환하는 문자열 길이가 다르다. String은 Extended Grapheme Clusters 사용해서 이모지 하나를 문자 한개로 계산하고 NSString은 이모지 하나를 유니코드 문자 두개로 계산하기 때문이다.

(뒤늦게 깨닫기 있기?)

 

p (textView.text as NSString).length // print 6

p textView.text.count // print 2

 

NSString의 length를 인자로 넘기도록 수정하면 이슈 해결!! 개발할 때 주의하자... 

optional value일 때 뜨는건 알겠는데 

 guard let lastEvent = self.playerItem?.accessLog()?.events.last else { return }

 log(.info, "\(lastEvent.description)")

여기에선 왜 뜨는걸까?

 

lastEvent 가진 데이터 중에 옵셔널 데이터가 있긴 한데

description은 String을 리턴하는데 왜 그렇지?

게다가 컴파일 빌드는 되는데 xcode server build가 실패함

궁금 ... 쏘 궁금...

 

 

구글링하다가 찾은 소소한 내용

1) String(describing:) - return string representing given value

 

2) debugdescription vs description

debugDescription는 description를 호출함

다른 점은 debugDescription는 오버라이드 해서 쓸 수 있다

+ Recent posts