XCode 에서 Product를 상용과 개발로 분리 시킨후 기존에 바라보던 서버 주소도 각각 빌드에 맞게 자동적으로 적용 하고 싶다면 어떻게 해야할까? 간단하게 전처리 매크로를 이용해서 분리 시킬수 있다. 먼저 상용 셋팅은 별도로 건드리지 말고, 개발쪽 셋팅을 변경해 보자! 아래처럼 프로젝트 셋팅에서 1. Beta Product를 선택한 2. 상단 메뉴에 Build Settings 를 클릭 3. custom 을 검색한다. 4. Swift Compiler - Custom Flags 를 그림 1과 같이 셋팅한다. (아마 처음 Debug 는 DEBUG 로 되어 있을 건데 DEV 를 추가하고, Release 는 아무것도 없을 건데 마찬가지로 DEV 를 추가해 준다.) 5. 분기를 태우고 싶은 코드를 아래처럼 전..
INSERT 함수 - create(values: Object, options: Object) : 레코드 생성. - findOrCreate(options: Object): 조회 시 없으면 생성. - findCreateFind(options: Object) : 조회 시 없으면 생성 후 조회. - upsert(values: Object, options: Object) : 한 레코드만 인서트하거나 업데이트 SELECT 함수 - findOne(options: Object) : 하나만 조회. find()와 같음 - findAll(options: Object) : 여러 개를 조회 - findAndCountAll(findOptions: Object) : 조회 후 레코드의 수까지 알 수 있다. - findByPk(id:..
iOS 배포를 위해 심사 제출을 했는데, 리젝이 되었다. 이유는 아래와 같다. Guideline 2.3.3 - Performance - Accurate Metadata We noticed that your screenshots do not sufficiently reflect your app in use. Specifically, your 6.5-inch iPhone screenshots do not display the app in the correct device frame. Next Steps To resolve this issue, please revise your screenshots to ensure that they accurately reflect the app in use on the s..
1. 인스턴스 생성 후 다운받은 키페어 파일의 위치를 기억해둔다 2. 터미널을 열고 해당 파일의 경로로 이동한다. 3. sudo chmod 400 xxxxx.pem 키페어 파일의 권한을 변경해 준다. 4. aws 인스턴스 콘솔창에서 그림 1 의 연결을 클릭 해준다. 5. 아래 그림 2와 같은 화면이 나오면 아래의 명령어를 복사한다. 6. 다시 터미널로 이동후 키페어 파일이 존재하는 위치로 가서 복사 해둔 명령어를 실행한다.
Android FCM 을 사용하면서 발견한 몇가지 제약 사항을 정리 하려 합니다. 1. Payload(메시지 데이터)에 Notification 필드가 포함되어 있으면 백그라운드 상태에서 onMessageReceived를 호출하지 않습니다. 그림 1 을 참고 하시면 Notification만 있을때, Data 만 있을때 , 둘다 사용할때, onMessageReceived의 호출 여부및 노출 여부를 알수 있습니다. 참고 : https://firebase.google.com/docs/cloud-messaging/android/receive 2. Android Oreo 버전 이상은 Notification Channel Id 와 Payload 의 "android_channel_id" 가 같아야 heads-up 알림..
저번주 금요일부터 휴가여서 주말을 쾌적하게 보내고 출근해서 iOS App 을 업데이트 하려고 업로드 했더니 아래와 같은 메일이 날라왔다. App Store Connect Dear Developer,We identified one or more issues with a recent delivery for your app, "zxxxxx" 0.0.1 (16). Your delivery was successful, but you may wish to correct the following issues in your next delivery:ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebV..
안드로이드 스토어 등록 정보에 프로모션 그래픽을 첨부할수 있는 칸이 있는데, 이부분은 자신의 프로젝트가 OS 4.0 이전 버전 앱을 지원할때 필요하다. 그림 2를 참고 하면, 자신의 프로젝트가 minSdkVersion 14 이상이라면 무시해도 된다는 소리다. 참고: https://docs.microsoft.com/ko-kr/xamarin/android/app-fundamentals/android-api-levels?tabs=macos Android API 수준 이해 - Xamarin Xamarin.ios에는 여러 버전의 Android와 앱의 호환성을 결정 하는 몇 가지 Android API 수준 설정이 있습니다. 이 가이드에서는 이러한 설정의 의미, 구성 방법 및 런타임에 응용 프로그램에 미치는 영향에 ..
Android Studio 에 연결된 Device 의 파일들을 다운로드 또는 업로드가 필요 할때가 있는데, 이럴때는 Shift 를 두번 눌러 Navigator 를 킨다음 FileDevice File Explorer 을 입력후 연결된 Device 에 파일을 마우스 오른쪽 클릭을 통해 업로드 또는 다운로드를 해 주면 된다.
1. 메시지 구성을 Notification에 title, body 로 구성 할 경우 해당 메시지를 다르게 변경해서 보여줄 수 없다. (OS에서 관리함) 2. Notification을 재구성해 사용자에게 보내주고 싶을 경우 payload안에 Notification을 없애고, 다른 key, value 값으로 보내고 payload를 파싱해서 Local Notification 으로 재구성 해서 보내주면 된다. 3. 하지만 2번 방법은 치명적인 단점이 있다. iOS 정책에 의해 App이 Background 로 들어간 후 메모리 부족등의 이유로 OS가 App을 메모리에서 해제 하면 Notification을 받을수 없다. 또한 사용자가 App을 Background에서 지워도 동일하게 받을수 없게된다. 4. 결론은 i..
TestFlight에 앱을 올리고 테스터들을 초대해야하는데 방법은 아래와 같다. 1. 아래 사이트에 들어간다. https://appstoreconnect.apple.com/access/users https://appstoreconnect.apple.com/login?targetUrl=%2Faccess%2Fusers&authResult=FAILED appstoreconnect.apple.com 2. + 버튼을 누른다. 3. 사용자 이름과 이메일, 역할에 맞게 체크후 초대를 누른다. 4. 초대완료후 사용자가 초대메일을 승인한뒤 5. https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app