본문 바로가기
728x90
반응형

프로그램 개발해서 돈벌기165

Manifest merger failed with multiple errors, see logs (targetSdkVersion 31 / Android 12) : exported 안녕하세요. 오늘(2022년 11월 24일) 앱을 배포하려고 구글 플레이 스토어에 "새 버전 만들기"를 진행하려고 했더니 targetSdkVersion을 31로 (Android 12) 변경을 해야 등록이 가능하다고 메시지가 뜨네요. 그래서 30에서 31로 변경을 했습니다. 변경하고 Rebuild Project 를 진행했습니다. 에러가 발생했습니다. Manifest merger failed with multiple errors, see logs 위 에러를 해결하기 위해서 AndroidManifest.xml 파일을 열고 에러가 발생한 곳을 확인했습니다. activity에 android:exported="true" 나 android:exported="false"를 추가해서 해결했습니다. android:expo.. 2022. 11. 24.
java.lang.IllegalArgumentException: com.xxx.xxx: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. (targetSdkVersion 31 / Android 12) 안녕하세요. 오늘(2022년 11월 24일) 앱을 배포하려고 구글 플레이 스토어에 "새 버전 만들기"를 진행하려고 했더니 targetSdkVersion을 31로 (Android 12) 변경을 해야 등록이 가능하다고 메시지가 뜨네요. 그래서 30에서 31로 변경을 했습니다. 변경하고 테스트를 진행하니 아래 처럼 에러가 발생하면서 앱이 죽었습니다. java.lang.IllegalArgumentException: com.xxx.xxx: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. 해당 에러는 서비스 내 Notificati.. 2022. 11. 24.
Android 10(TargetSDK 29) 이후 버전에서 파일 삭제 Android 10(TargetSDK 29) 이후 버전에서 Scoped Storage 적용으로, 어떤 파일을 삭제할때 사용자로부터 허락을 받아야 할 수도 있습니다. 예외로, 앱이 추가한 미디어 파일은 허락없이 삭제가 가능합니다. (TargetSDK 29 미만에서 앱이 미디어 파일을 삭제할때는 WRITE_EXTERNAL_STORAGE 권한을 갖고 있어야 합니다.) // TargetSDK 29 미만에서 앱 삭제 File file = new File("파일 절대(전체) 경로와 파일 이름"); if(file.delete()) { // 삭제 성공 } else { // 삭제 실패 } Android 10(TargetSDK 29) 이후 버전부터는 MediaStore를 이용하여 삭제를 합니다. 해당 방법을 소개한 곳은 .. 2022. 11. 14.
[SwiftUI] TabView 샘플 코드로 알아 보기 안녕하세요. 오늘은 TabView를 간략하게 알아 보겠습니다. TabView는 하나의 화면에 여러 개의 View를 Tab 방식으로 보여주는 것입니다. 샘플 코드 실행 화면은 그림 1.과 같습니다. // ContentView.swift import SwiftUI struct ContentView : View { var body: some View { TabView { Text("First View") // tabItem(하단 탭 메뉴)에 아이콘과 글자 표시 .tabItem { Image(systemName: "1.square.fill") Text("First") } Text("Second View") .tabItem { Image(systemName: "2.square.fill") Text("Second".. 2022. 11. 1.
[SwiftUI] Http 통신을 MVVM 패턴 예제로 이해하기 애플리케이션을 생성할 때 일반적으로 API에서 일부 데이터를 가져오기 위해 HTTP 요청을 해야 합니다. 이를 위해 SwiftUI에서 패키지 관리자(Swift-Request 또는 Alamofire와 같은)를 사용할 수 있지만 자체 HTTP 요청 함수를 만드는 것은 매우 쉽습니다. 어떻게 하는지 봅시다. 이 자습서에서는 무료 REST API인 JSONPlaceholder를 사용합니다. 10명의 사용자 목록을 가져와서 보기에 표시하기 위해 /users 엔드포인트를 호출합니다. 안녕하세요. 오늘은 http 통신을 알아 보려고 합니다. 위 설명은 개략적인 소개 내용입니다. 설명은 주석으로 소스에 설명을 넣겠습니다. MVVM 패턴을 잘 사용한 샘플입니다. // ~App.swift import SwiftUI @ma.. 2022. 10. 31.
[SwiftUI] MVVM 패턴을 샘플 코드로 간단히 이해하기 안녕하세요. 오늘은 MVVM 패턴에 대해서 알아 보겠습니다. M-V-VM 은 Model, View, View Model의 약자입니다. Model : 사용자 정보, 상품 정보 등 여러 정보를 담고 있습니다. 단순 정보 뿐 아니라 많은 로직과 비즈니스 룰이 있어 사용자에게 숨길 필요가 있습니다. View : Model 정보를 View에서 보여줍니다. View Model : View에서 보여 주고 싶은 정보만 Model에서 가져옵니다. 그리고 View에서 업데이트된 정보가 있다면 View Model이 중간에서 매개체 역할을 해서 Model에 전달합니다. MVVM 패턴을 적용한 아래 샘플앱은 Increment를 클릭하면 1씩 숫자가 높아집니다. 만약 3의 배수가 되면 화면에 Premium을 보여줍니다. // C.. 2022. 10. 31.
728x90
반응형