앱출시 무경험자의 개인 앱 배포 준비

2024. 3. 22. 23:06Mobile/iOS

 

Team 애플 개발자 계정 연결해서 사용자 계정으로 연결해둔다. 유료 개발자 계정을 사용안하고도 등록해서 사용하면 앱빌드할 수 있는 횟수가 제한이 되어 있는 것으로 알고 있다. 

Set the supported destination

앱이 지원하는 디바이스, 플랫폼 선택하는 방법 → 프로젝트 편집기 

udemy SwiftUI Master Class 강의 때 보고 학습했던 프로젝트

*실제 제가 진행하는 프로젝트는 아니고 SwiftUI 프레임워크에 강의보고 학습해봤던 프로젝트 파일입니다. 차후 앱 출시를 하면 공개하겠습니다 ㅎㅎ..

 

App Store Connect 에 빌드를 업로드하거나 Build 를 export 하여 App store 외부에 배포하기 전 배포할 Xcode

app 에 대한 정보

  • bundle ID: 번들 ID 는 보통 개발자가 정하는 것으로, 예시로는 com.example.appName 으로 하거나, kr.example.appName 등 정해서 사용하는 편인 것 같다. 
  • build string, version Number 
  • app icon
  • launch screen
  • testflight 나 App store 를 통해 빌드를 배포 후에는 업데이트해서 다시 재심사를 하기 전까지는 정보를 수정할 수 없으므로 설정을 신중하게 선택해야 한다!

Xcode 에서 프로젝트명을 누르면 Targets 의 프로젝트의 General 에서 Identity 에서 앱과 관련된 정보 설정을 해줄수 있다. 앱의 버전 업데이트도 여기 버전에서 설정해준다.

기본적으로 앱을 만들 때는 기능 구현에도 애를 먹고 있지만, 기본적으로 앱에 있어야할 정보들 설정들을 해주었다.

  1. App Icon 등록, LaunchScreen 등록
    • LaunchScreen 같은 경우에는 약간의 애니메이션 효과를 주고 싶어서 airbnb에서 만든 Lottie 라이브러리를 사용했다.
    • App Icon 은 Assets.xcassets 에서 AppIcon 에서 등록 하면 되고, 다양한 px 에 대응할 수 있게 App Generator 에서 디바이스별로 생성해주는 사이트다.
  2. App 의 Category 종류 설정:  자신이 만든 앱에는 카테고리 선택을 할 수 있다. 게임, 라이프스타일, 등이 있는데 자신이 만든 앱의 기능과 목적에 맞게 설정해주면 된다. 

앱 카테고리 설정

target - General 패널 - 사용하는 디바이스 종류 선택 - Identity 에서 개발자가 만든 앱의 성향에 따라 App Category 를 선택해주면 끝! 


3. 이미 Apple Developer 친구비(1년마다 갱신해야하는 약 129,000원) 를 가지고 있기에,bundle ID: 엑스코드에서 bundle ID 설정하는게 프로젝트 만들 시에 생기고,  Signing & Capabilities 에서도 Bundle Identifier 를 설정할 수 있다.

 

NOTE
보통 앱아이콘은 기본적으로 1024x1024px 이상으로 디자인해줘야한다! 예전에 그것도 모르고 작게 했다가 앱아이콘의 하얀 부분이 자꾸 보여서 왜 그러지 했었던 경험이 있다  😂

 

4. 앱의 버전과 build String 설정 

CFBundleShortVersionString : 앱의 번들의 릴리즈(배포) 또는 버전 번호, Property List Key(Plist)

CFBundleVersion: 앱의 업데이트시 빌드 버전이 올라가는 갈때, 이 키는 10.14.1과 같이 마침표로 구분된 1~3개의 정수로 구성된 컴퓨터가 읽을 수 있는 문자열이다. 이 문자열에는 숫자 문자(0-9)와 마침표만 포함할 수 있다.이 키는 앱 스토어에서 필요하며 시스템 전체에서 빌드 버전을 식별하는 데 사용된다.

[Major].[Minor].[Patch]

 

Mail 로 의견보내기 기능

사용자의 Device Model, Device OS, App version  정보값을 가지고 오게 할 수 있다. 이 기능은 바로 위에 얘기한 CFBundle 과 연관이 있다. 

 

아래 코드는 실제로 개인 앱에서 적용했던 코드다. 

import UIKit

class Device {
    static func getAppVersion() -> String {
        return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String
    }
    
    static func getBuildVersion() -> String {
        return Bundle.main.infoDictionary?["CFBundleVersion"] as! String
    }
    
    static func getDeviceIdentifier() -> String {
        var systemInfo = utsname()
        uname(&systemInfo)
        let machineMirror = Mirror(reflecting: systemInfo.machine)
        let identifier = machineMirror.children.reduce("") { identifier, element in
            guard let value = element.value as? Int8, value != 0 else { return identifier }
            return identifier + String(UnicodeScalar(UInt8(value)))
        }
        
        return identifier
    }
    
    func getCurrentVersion() -> String {
        guard let dictionary = Bundle.main.infoDictionary,
              let version = dictionary["CFBundleShortVersionString"] as? String else { return "" }
        return version
    }
    
    static func getDeviceModelName() -> String {
        let device = UIDevice.current
        let selectName = "_\("deviceInfo")ForKey:"
        let selector = NSSelectorFromString(selectName)
        
        if device.responds(to: selector) {
            let modelName = String(describing: device.perform(selector, with: "marketing-name").takeRetainedValue())
            return modelName
        }
        return "알 수 없음"
    }
}


// App 설정 부분

let bodyString = """
                 개선 사항, 문의 내용을 작성해주세요.





                 ---------------------------
                 Device Model: \(Device.getDeviceModelName())
                 Device OS:    \(UIDevice.current.systemVersion)
                 App Version:  \(Device.getAppVersion())
                 ---------------------------
                 """

앱스토어 커넥트(App store Connect) 설정 

  • Description, App ID Prefix(개발자계정 비용을 내면 생긴다.)
  • App Store Connect 에 배포 준비를 해본다. (3월 31일..지금 대략 8,90 프로까지 완료...🥹🤯) 
  • 앱 스토어 커넥트에 들어가면 앱추가를 하고 앱을 설정해줄 수 있다.

4. App Store Connect 에 들어가면 앱 추가를 하고 앱을 설정해 줄수 있다. 

 

앱 스토어에 들어가 커넥트, 빌드, Testflight(베타테스트) 등도 할 수 있다. 
아직도 남은 저장한 녹음파일 가져와서 재생하도록 하는 부분을 구현 중임으로 스크린 샷(앱스토어에서 사용자들이 앱을 설명하고 확인하는 화면들) 을 마저 하지는 못하고 있다. 스크린샷과 앱의 설명 부분과 같은 부수적인 부분을 미리 해두려고 한다! 빨리 빨리 진행해서, 앱을 상반기에는 꼭 출시해야한다! 😇🤣

90프로가 되면 더 작성해서 글을 정리해봐야겠다.

아래 보면 앱과 관련된 정보를 나타내는 스크린샷을 아래에 업로드 할 수 있다. 

 

NOTE
스크린과 관련된 괜찮은 툴은 Figma 나 previewed, 목업 사이트를 이용해 나의 앱 스크린 샷을 캡처해서 사용하면 된다. 
( 팀 프로젝트 팀원분이 알려주셨다. 감사합니다.🥹 )

 

 

그럼 다시 코드보고 코드치고 뜯고 맛보러 가볼게요 

 

 

참고 

https://developer.apple.com/documentation/xcode/preparing-your-app-for-distribution/#Set-the-supported-destinations

 


차후에 사용했던 기본 설정 부분을 더 추가해보고, 앱 출시 이후 리뷰도 정리해보려고 합니다~ 

틀린 정보나 내용 피드백 환영합니다.