MacOS Sequoia로 업데이트를 하면서 XCode 16도 함께 업데이트를 했습니다.iOS18 업데이트도 함께 진행됐지요.업데이트 이후 처음으로 AppStore에 Distribut App을 진행하는 과정에서 다음과 같은 bitcode 에러가 발생했습니다.Asset validation failedInvalid Executable. The executable 'Runner.app/Frameworks/Mapbox.framework/Mapbox' contains bitcodeAsset validation failedInvalid Executable. The executable 'Runner.app/Frameworks/Mapbox.framework/Mapbox' contains bitcode. (ID: 467..
Flutter
잘 사용하고 있던 웹뷰 페이지가 어느 순간 SUPPRESS_ERROR_PAGE Error를 뱉어내며 페이지가 보이지 않는 문제가 발생했습니다.물론 Flutter를 최신 버전으로 upgrade 하면서 flutter_inappwebview를 6.0.0으로 migration하면서 발생한 문제였던것 같습니다.E/MethodChannel#flutter/platform_views( 3411): Failed to handle method callE/MethodChannel#flutter/platform_views( 3411): java.lang.RuntimeException: Unknown feature SUPPRESS_ERROR_PAGEE/MethodChannel#flutter/platform_views( 3411..
최근에 do {} while 문을 사용하는데 내부 로직에서 무한루프가 도는 문제가 생겼었습니다.REST API를 호출하여 result 값을 조건으로 사용하는 로직이었는데 도무지 원인을 알수가 없었습니다. (해당 코드가 테스트 과정에서 임시로 사용했던 코드라 지금은 어떤 내용이었는지 기억이 나질 않네요 ㅠ.ㅠ)어쨌듯 한시간 가량 왜 그런 문제가 발생했는지 찾아보다Future.doWhile 이란 놈을 알게 되었습니다.그래서 이 문법을 사용하는 코드를 공유해보려고 합니다. 문법 자체는 엄청 단순한데요.아래의 코드와 같이 Future.doWhile을 사용하는 것입니다.Future.doWhile(() async { // do something});일반적인 do {} while 구문과의 차이점이라면 break; ..
최근 구글 정책이 업데이트 되면서 8월 31일까지 대상 API 수준을 업데이트하라는 메시지가 떴습니다."세부정보 보기" 버튼을 눌러 확인해보면 아래와 같이 친절하게 위반항목이 무엇인지 알려줍니다. 이번의 경우는 Android 13(API 33)을 타겟팅하지 않아 생긴 문제이네요. [해결방법] 그럼 바로 해결해봅시다.아래의 app/build.gradle 파일을 열어 compileSdk와 targetSdkVersion을 34로 바꿔주면 끝납니다. android { namespace "com.octoverse.ocpamine" compileSdk 34 // 저는 build.gradle 파일을 위의 내용처럼 사용하지 않고 local.properties 파일을 이용해서 한눈에 보기 좋게 수정해서 사용하..
앱을 개발하다 보면 숫자를 다양하게 표시해야 하는 경우가 있습니다.숫자를 표시하는 경우 숫자가 변경되면서 위치가 움직이거나 깜빡이는 느낌을 받을때가 있습니다. 아래 동영상과 같이 "11"과 "99"의 width 값이 서로 달라 보기 좋지 않은 경우도 있죠.이 문제를 해결하는 방법을 알려드리겠습니다.우선 간단하게 설명드리면 아래 코드와 같이 fontFeatures에 tabularFigures를 설정하는 것입니다.Text( '1. $formattedTime (tabularFigures)', style: const TextStyle( fontSize: 30, fontFamily: 'NotoSans', fontFeatures: [FontFeature.tabularFigure..
앱 업데이트를 진행하는데 TestFlight에서 아래와 같은 메일을 보내왔다.내용은 간추리면 다음과 같다. - Apple 필수 API를 사용하는 앱이니 PrivacyInfo 파일로 왜 사용하는지 설명해라.- 안내 메일대로 안하면 2024년 5월 1일부터 문제가 발생한다.해결 방법은 다음과 같다.1. XCode를 열고 Runner-Runner 우클릭 File/New/File -> App Privacy 추가2. PrivacyInfo 파일에 아래 항목 추가 나의 경우는 UserDefaults와 DiskSpace에 해당하는 메일만 받았으니 두가지 항목만 추가해주었다. NSPrivacyTracking NSPrivacyAccessedAPITypes ..
최근 짬짬히 시간을 내서 만들게 된 스토인 프로젝트에서 PlayStore에 앱 계정 삭제 요구사항에 맞지 않다는 오류와 함께 심사가 거절되는 사건이 있었습니다. 구글 고객센터의 안내 링크는 다음과 같고, 요약하면 아래와 같습니다. 1. Apple의 앱 내 계정 삭제 정책 발표 (22년 1월) 2. Google에서도 Apple을 따라 계정 삭제 정책 발표 (23년 4월) 3. 데이터 삭제 관련 질문 작성 기한 (23년 12월 7일) 4. 정책 규정을 준수하지 않는 경우 시정조치 될 예정 (24년 6월 이후) 계정 삭제 정책의 주요 내용은 다음과 같습니다. 1. 앱 콘텐츠 페이지의 데이터 보안 양식에 "데이터 삭제" 항목 설문 진행해야 한다. 2. 앱에서 계정 생성이 가능한 경우 앱 내에서 계정 및 데이터를..
이번에 소개팅 앱을 개발하면서 인앱결제 기능과 휴대폰 인증과 무료 핸드폰 인증 서비스인 옥토모를 이용하게 되었습니다. (옥토모 서비스는 글의 마지막에 작성해 두었으니 관심 있으신 분들은 참고하시길 바래요) 유저의 핸드폰 문자 메시지를 전송을 이용한 핸드폰 인증 방법이기 때문에 "android.permission.RECEIVE_SMS" 권한이나 "android.permission.SEND_SMS" 권한을 사용하려고 했습니다. 그러던 중에 갑자기 android.permission.QUERY_ALL_PACKAGES 오류가 발생하지 뭡니까? 이게 gradle 버전, key properties, 이런 저런 packages 들을 섞어 쓰다보니 어떤게 원인인지 정확히 파악하지는 못했지만 해결방법을 알아내고 넘어갔더랬..