커스텀 키보드를 설정한 후 마이 앱에서 커스텀 키보드를 한번 열었다가 메뉴를 전환해서 커스텀 인풋뷰로 스위칭하면 커스텀 키보드가 인풋뷰 위를 덮는다

인풋뷰가 UIView 면 발생하지 않으나 UIViewController 인 경우 시그널을 받는건지 키보드가 자연스레 올라온다


이런 젠장

하루하루 풀어나가야 할 버그는 늘어만 가는데 해결되는 건 없구나...


AppDelegate api 중에

   - (BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier 

가 있는데 키보드를 열때마다 호출된다. 


여기서 extensionPointIdentifier 가 UIApplicationKeyboardExtensionPointIdentifier인 경우 NO를 리턴하면 커스텀 키보드가 실행되지 않는다.


버뜨!!

내가 원하는 건 특정 상황에서만 사용하지 않는 것이므로 조건을 주어 처리. 해결해보리라.







What : 

앱스토어에 섭밋하는 과정에서 앱아이콘 관련 에러가 발생한다. 

이름이 이상하다는 내용이 떠서 처음엔 이름을 계속 변경해봤으나 같은 에러만 연달아 발생했다. 

구글링하다가 드디어 원인 발견!!


Why : 

Watch OS 1을 사용했을 때 추가된 App Icon assets 이기 때문에 Watch OS 2 에서는 불필요한 이미지가 존재한다. 

그것이 바로 App Icon 44 X 44 사이즈이다. (Long Look size)


이 이미지를 지우고 빌드해서 다시 섭밋하면 에러는 사라진다. 

하지만 우린 아직 WatchOS1 과 WatchOS2를 모두 지원하기 때문에 언제까지 유지해야 하나 고민 중이다. 

WatchOS1 을 사용하는 유저가 소수지만 존재하기 때문에 지우는 김에 앱 아이콘 옵션도 변경해야겠다.


해당 파일을 그냥 지우면 App Icon Asset 세팅이 예전 그대로이기 때문에 파일이 없다고 경고한다.

그래서 다음 과정에 따라 옵션을 변경하면 asset 환경을 OS2 용으로 설정해서 44x44 이미지는 unassigned 로 바뀐다.


Watchkit app bundle > Assets.xcassets > Select AppIcon.appiconset in Xcode7

Xcode 우측에 utilities section 에서 3번째 버튼을 선택하면 App Icon 설정에 Apple Watch 항목에 'watchOS All Versions' 와 'watchOS 1.0 Specific' 이 존재한다.





해당 화면에서 'watchOS 1.0 Specific' 을 Uncheck 하면 된다.




RecordID 는 int 타입인데 새로 생긴 contact framework 에서는 identifier 타입이 NSString이다.

이럴수가...

이왕이면 관련 api가 오픈되어 있길 바랬으나 과거의 코드를 가져오는 걸 싫어하는지 recordID 로 contact를 fetch 할 수 있는 api는 private 으로 선언되어 있다.


기존의 함수형에서 objective-c / swift 에 걸맞게 객체형으로 변환한 것까진 좋은데 어째 영... 불안정한 느낌이다.


나름 고민하다가 조언을 받아 두 ID 사이에 연결고리가 없으니 마이그레이션으로 contact를 새로 쭉 끌어오기로 결정했다.


참고 URL : https://forums.developer.apple.com/thread/7063

+ Recent posts