반응형

Programming/iOS 59

App Store에 배포한 앱이 반영되지 않았을 때 문제해결

이번에 업데이트 버전 심사 후 통과되어 '이 버전 출시' 버튼을 통해 '판매 준비됨(ready for sale)' 상태로 된 버전이 있었다근데 App Store에서는 해당 버전이 뜨지 않는 문제가 1주일 이상 발생하였다. 보통 App Store에 반영되는데 짧게는 한시간 대체로 하루 이내 반영되는데 일주일이라니,,기다리다 지쳐 slack에 물어봤고 도움을 얻을 수 있었다. This update eventually went live. I did a number of things in iTunes Connect to try trigger the update: Toggled all available countries off/onUpdated the "what's new" metadata.Added a new ..

Programming/iOS 2018.08.24

[Xcode] Localizable.strings 파일 에러 찾기

iOS나 macOS에서 동작하는 프로그램을 만들 때는 Xcode를 사용한다.Xcode에서는 다양한 언어 환경에서도 사용할 수 있도록 다국어를 제공하는데, 원하는 다국어를 적용하게 되면 Localizable.strings 파일이 국가별로 생성된다. 이 파일에서는 string형의 키와 값이 있는데, 여러 다국어가 있을 때 하나의 키로 앱 내에서 사용하면 된다. "key" = "value"; 근데 이 파일에서 위의 형식을 따르지않으면 오류가 발생하게 되는데 매우 불친절 하게도.. 어느 라인에서 해당 문제가 발생하였는지는 알려주지않는다. Localizable.strings 파일 에러 찾기!!! 1. terminal.app 오픈command+space bar 하면 나오는 Spotlight 검색으로 더 빨리 실행할..

Programming/iOS 2018.06.05

[iOS/Swift 3.0] UITableview 알아보기 - DataSource & Delegate

TableView 알아보기2 Tableview API 테이블뷰 자체는 UITableView클래스의 인스턴스이다. UITableViewController는 테이블뷰를 관리하고 선택 관리, 행 편집, 테이블 구성 등과 같은 많은 지원을 추가한다. 이 추가 지원은 테이블 기반 인터페이스를 만들고 초기화하기 위해 작성하는 코드의 양을 최소화하기 위한 것이다. 이 클래스를 직접 사용하지 않고 UITableViewController의 하위 클래스를 정의하여 사용자 정의 behavior를 추가한다. DataSource & Delegate UITableView 객체는 DataSource와 Delegate를 갖는다. MVC(Model-View-Controller)패턴에 따라 dataSource는 앱의 데이터 모델과 ta..

Programming/iOS 2018.06.01

[iOS.Swift3.0] UITableView 알아보기 - 기본

TableView 알아보기 테이블뷰는 iOS앱에서 가장 많이 볼 수 있는 형태의 인터페이스이다. 테이블뷰는 섹션으로 구별될 수 있는 여러 행의 스크롤이 가능한 데이터 목록을 제공한다. 테이블뷰의 용도 사용자가 계층적으로 구조화된 데이터를 탐색하게 하기 위함 색인된 항목 목록 표시 시각적으로 구별되는 그룹으로 세부 정보와 컨트롤 표시 선택할 수 있는 옵션 목록 제시 위의 네가지 외에도 많은 용도로 사용한다. 테이블뷰 스타일 테이블뷰의 스타일에는 두가지가 존재한다. Plain Table Views plain(혹은 regular) 스타일은 화면을 가로질러 늘어지는 행을 표시하며 기본적으로 흰색 배경 색상을 갖는다. plain table은 하나, 혹은 그 이상의 섹션을 가질 수 있다. 섹션은 하나, 혹은 그 이..

Programming/iOS 2018.06.01

[iOS/Swift3.0] Navigation Controller와 Modal에서의 화면 전환 차이

Navigation Controller와 Modal에서의 화면 전환 차이 Navigation interface 내비게이션 인터페이스는 주로 계층적 구조의 화면전환을 위해 사용되는 드릴 다운 인터페이스(drill-down interface)이다 드릴 다운 인터페이스는 각 선택할 수 있는 화면에 대한 세부 항목이 존재하는 인터페이스인데 설정 앱처럼 정보의 흐름을 가지고 있는 경우에 사용을 한다 내비게이션 인터페이스는 내비게이션 컨트롤러를 통해 구현한다. Navigation Controller 내비게이션 컨트롤러는 컨테이너 뷰 컨트롤러(container view controller)로써 내비게이션 스택을 사용하여 다른 뷰 컨트롤러를 관리한다 내비게이션 스택(Navigation Stack)은 뷰 컨트롤러를 담을..

Programming/iOS 2018.05.22

[iOS/Swift3.0] IBAction: Target-Action 알아보기

IBAction - target-action IBAction으로 객체에서 발생하는 액션을 코드로 연결해 사용자 동작에 상호 작용할 수 있게 만들 수 있다. UIKit에는 UIButton, UISwitch, UIStepper 등 UIControl을 상속받은 다양한 컨트롤 클래스가 있다. 그런 컨트롤 객체에 발생한 다양한 이벤트 종류를 특정 액션 메서드에 연결할 수 있다. 메소드의 형식을 갖는 IBAction은 리턴 타입으로 void 형을 가진다. 사용자 인터페이스에서 컨트롤은 사용자의 의도를 해석하고 다른 개체가 해당 요청을 수행하도록 지시한다. 스토리보드에서 ViewController로 액션을 연결하는 방식이 있고, addTarget() 메소드를 사용하여 이벤트를 연결할 수 있다. 사용자 인터페이스에서 ..

Programming/iOS 2018.05.15

[iOS/Swift3.0] Swift FCM Closed App Push Notification Click Event

swift fcm closed app push notification click event APNs로 되어있던 프로젝트를 FCM으로 바꾸면서 푸시 테스트를 몇번씩 진행을 하는데 앱을 강제 종료한 뒤 (홈버튼을 두번 눌러 앱을 날리는 것) 푸시를 받아 클릭하면 앱이 실행되고 그 이후의 동작을 하지않는 것을 발견하였다. 앱이 terminated/closed된 이후에도 푸시 클릭 이벤트를 받아 해당 링크로 갈 수 있게 하기 위해서는 delegate 메소드에 원하는 코드를 추가해야한다. AppDelegate에 UNUserNotificationCenterDelegate를 추가한 뒤 아래 메소드를 추가한다. userNotificationCenter(_, didReceive, withCompletionHandler)..

Programming/iOS 2018.04.23

[iOS/Swift] FCM 메세지 수신, 포그라운드 앱에서 데이터 메시지 처리하기

최근에 프로젝트에 FCM을 도입하였다.기존에 APNs로 되어있는 것에서 FCM 토큰을 받아 로그인 시 넘겨 푸시서비스를 이용하는데postman 프로그램 (https://www.getpostman.com) 에서 테스트할 때는 백그라운드, 포그라운드 모두 수신이 잘 되었었고 푸시 메세지 클릭하면 로직대로 잘 이동을 했었다. 그런데 서버 담당자가 만든 프로그램 -> FCM -> 휴대폰 푸시 수신으로 진행할 당시 포그라운드모드로 테스트를 진행하였는데푸시를 수신해서 클릭하면 화면 링크로 이동을 해야하는데, 그렇지않고 다른 화면으로 이동 후 원래 화면으로 돌아와야 푸시 수신을 알라내고 이동하는 오류가 있었다. FCM 공식 문서에서 내용을 확인할 수 있는데 일부 내용은 아래와 같다. 앱이 포그라운드 상태일 때 APN..

Programming/iOS 2018.04.12

[iOS/Swift3.0] 디바이스언어와 languageCode가 다를 때

Swift Language 내가 만든 앱 중 디바이스에 설정된 언어코드를 가져와 로그인 시 서버로 언어 코드를 넘기는 기능이 있었다. 그런데 사용자 중 iPhone X에서 앱 기능 중 일부가 영어로만 뜨는 문제가 발생해 급하게 패치를 하였다. 확인결과 iOS10에서는 해당 오류가 발생하지않았는데, iOS11부터 발생한 것으로 보여지는 것 같다. 그런데 다른 앱에서는 잘되는데.. 왜 이 앱에서 그러는지는 아직 이해를 잘 못하겠다. 가장 큰 문제는 디바이스언어가 ko, jp 등의 언어를 설정했음에도 Locale.current.languageCode로 가져오면 en만 뜨는 문제가 있었다.또 Locale.current.regionCode를 하면 현재 있는 곳이 한국이기에 ko_KR이었던가 en_KR로 떴던 것 ..

Programming/iOS 2018.04.12
728x90
반응형