블로그 이미지
2011.10 ~ 현재 2009.6 부터 자의반타의반으로 iOS 한우물만 파고 있는 iOS 개발자의 블로그. ---------------------------------------- ~2011.10 윈도구 모빌레로 이것 저것 해보자..~~ 시작하였으나 이러저러하고 저러그러 하여 어둠의 궁극에서 아이폰 개발을 하고 있는 개발자의 블로그
江多林

공지사항

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

iOS 10 Keychain Access with entitlement

2016.09.28 15:03 | Posted by 江多林

iOS Keychain Access


담당하고 있던 앱에서 로그인이 풀리는 이슈가 있어서

f/u 해본 내용을 공유하려고 합니다.



앱에서 AccessToken, refreshToken을

키체인에 저장하고 있었습니다.


iOS10 업데이트 이후에 항상 로그인이 풀리는 이슈가 확인되었네요. ㅠㅠ

- 프리징이라지만, 너무 무관심 했어요.. 반성합니다.


디버깅을 해보니까. KeyChain 쪽에서

* -34018 (errSecMissingEntitlement) osStatus *

코드가 떨어지고 있었습니다.

- 문서화되지 않고, 애플개발자포럼에서 확인인 코드입니다.


-34018 코드는 그동안에도 iOS 메이저 업데이트때마다

종종 보이던 넘입니다.

```

- 이전에 프로비져닝(개발계정)으로 서명된 앱을

  마켓버전(스토어계정)으로 설치한 경우에도 발생하고요.

- iOS7과 8 에서 키체인쪽 대규모 변경이 있은 후에 몇 달동안

  고통받기도 했었죠.

  (내부에서 키체인쪽 동작을 시스템프로세스로 옮겼고,

   여기서 동기적인 키체인 API 가 내부에서 비동기로 처리되고,

   중간 프록시객체가 메모리워닝을 맞으면,

   프록시가 날아가서 발생한 것으로 추정됩니다.)

- iOS10 entitlement 가 지정되지 않으면 발생

  (iOS10에서 또다시.. !! 자세한 설명은 아래 이어갑니다.)

```


iOS9 까지 KeyChainAccess 는 별도의 entitlement 를 등록하지 않아도,

자기 자신의 bundleID와 APP SeedID 의 조합은 처리되었습니다.


하지만, iOS10 에서는 Xcode8-Target 설정의 Keychain Sharing 을 켜줘야 합니다.

Keychain Sharing 을 사용하지 않더라도, Keychain Access 를 사용하려면,

반드시 entitlement 에 명시되어야하는 것으로 바뀌었습니다.


짧지 않은 삽질의 시간이 끝나고, entitlement 추가한 후에는

잘 동작하네요.


Xcode8 에서 Keychain Sharing 을 켜는 동작만으로는

별도의 developer.apple.com 의 AccessGroup 등의 설정이 변경되지 않습니다.

- AccessGroup 을 추가하거나 하면, 변경을 것이고요.


따라서, iOS10 이후에 Keychain 에서 -34018 osstatus 가 발생하면,

일단 Keychain Sharing을 먼저 켜주시면,

간단히 해결되실 것으로 기대됩니다.



부디 저와 같이 삽질하지 않으시길...




저작자 표시 비영리 변경 금지
신고

몇 년 째 나를 괴롭히던 이슈 뭔가 진행되어 가는 것 같네.

어떻게 든 해결되었다고 생각했는데...

원인과 기전이 확인/ 이해되지 않고 해결된 것은

연관된 다른 이슈가 발생할 가능성이 잔존하는 것 같다.


미친 척하고, 진작에 forum 에 올려볼 것을...


Re: Keychain write errSecNotAvailable


Keychain error -34018 (errSecMissingEntitlement)



익스텐션(워치앱이나 위젯 등)에서 키체인 공유를 권장하기 시작되어서

이제야 이슈화 되는 것 같은 느낌...


키체인 못 믿겠다고 만든 바로 그 이슈..



부연설명

-----

키체인 : 비밀번호, 인증서 등을 저장해 두는 OSX/ iOS 고유의 안전한 저장소

  개별 아이템의 키를 모른다면, 존재확인 부터 어렵다.

  BundleID 기반으로 관리되기도 하지만, provisioning 과 entitlement 의 조합에 영향을 받아

  제작자가 아닌 개발자가 리버스 엔지니어링으로 정보획득이 어렵다.(jailbreak 한다면?)


키체인의 쿼리 : kSecAttrService 와  kSecAttrAccessGroup 을 Ideneitifier 로 쿼리하여 사용

  - kSecAttrService : String 기반의 키

  - kSecAttrAccessGroup : 같은 개발사의 App 간의 공유를 위한 그룹

    (default: [SeedID].[BundleID]







저작자 표시 비영리 변경 금지
신고

WWDC 2015 - 참관기 요약

2015.06.17 19:08 | Posted by 江多林

* 일정

토요일 도착, 렌트관광

일요일 도보관광

월요일 키노트..

...

토요일 귀국

일요일 도착


* 적절한 참관 과정

첫 날 키노트 듣고,

Platform states of the Union 세션을 듣기 - 전체 세션들의 개략설명 세션

위에 Platform states 를 듣지 않아 전체 트랙의 의미를 파악하자.

파악한 내용에 따라서 일정을 짜자.

밤에는 관광보다는 취침에 노력하기.


* 질문하기(Lab)

필요하다면, 질문에 적절한 예제를 작성해두자.

특정 요일에만 열리는 Lab 이 있으므로,

Keynotes 이후에 Lab 일정을 파악하여 Session과 겹치지 않게 일정 잡기

인기 Lab 이라면, 미리 예약하는 것도 괜찮음.

예약 및 방문시에 WWDC뱃지에 프린팅되어 있는 barcode 가 필요함.


* 세션 듣기.

간단하게라도 세션내용을 요약정리해두는 것이 중요함.

나중에 비됴보면서 다시 정리하는 것은 너무나 귀찮은 과정... ㅡ,.ㅡ

듣는 과정에서 발표자에게 질문할만한 내용을 정리해서

발표 후에 대화를 나눠보는 것도 괜찮은 듯. :)


* 비용

등록비: 180만원 가량

비행기: 150만원 가량 - G마켓 티켓가격비교 괜찮았음(130만 으로 해결)

숙박비: 적당히 알아서.

  그랜드하이얏트(50만/1박) 괜찮았음.

  픽윗호텔(30만/1박) 이 모스콘센터와 가까웠음.

밥값: 아침(빵)/점심(햄벅)/오후간식(과일) 애플에서 제공함.


* 관광

식사 코스를 작성해서 가면, 필요한 영어력과 관광코스를 작성하기 쉽다.

in&out버거 : 북쪽에 2개 있음, 케이블카 종점에서 멀지 않음.

vuena vista 아이리쉬커피 : 케이블카 종점 사거리에 있음.

케이블카 : 바닥에 케이블을 움켜쥐고 달리는 궤도열차로 UnionSquare<->북쪽해변 사이를 운행함.

바트(BART) : 캘리포니아 지하철로 한 플랫폼에 여러 종류의 열차가 오므로 열차컬러를 주의하자.



저작자 표시 비영리 변경 금지
신고

'Development > WWDC' 카테고리의 다른 글

WWDC 2015 - 참관기 요약  (0) 2015.06.17
WWDC 2015 - Platforms State of the Union  (0) 2015.06.17
이전 1 2 3 4 5 ... 26 다음