728x90
반응형

 

이전 글에서 Apple Push Services 인증서 발급을 진행했습니다.

 

이번 글에서는  APNs 키 발급을 진행하보겠습니다.

 

기본적으로 Apple 개발자 프로그램이 가입된 기준으로 작성됩니다.

 

 

 

 

APNs 키 발급.

키를 발급하기 위해 Keys 메뉴에서 + 버튼이나 'Create a Key' 버튼을 클릭합니다.

 

 

 

Key의 이름은 push notifications service key 로 작성했지만 편한 이름으로 작성하시면 됩니다.

 

Apple Push Notifications service (APNs) 항목을 선택하고 'Continus' 버튼을 클릭합니다.

 

 

선택된 항목을 확인후 'Register' 버튼을 클릭합니다.

 

 

정상적으로 등록이 되어지면 아래처럼 보여지게 됩니다.

 

다운로드를 하면 Apple 에서는 더이상 다운로드를 지원하지 않기 때문에 안전한 곳에 저장을 해두어야 합니다.

728x90
반응형
728x90
반응형

 

이전 글에서 App ID의 Push Notification 활성화를 했습니다.

 

이번 글에서는  Apple Push Services 인증서 발급을 진행하보겠습니다.

https://gigas-blog.tistory.com/248

 

 

Apple Push Services 인증서 발급.

Apple Push Services 인증서를 발급하기 위해 Certificates 메뉴에서 + 버튼을 클릭합니다.

 

 

 

 

Apple Push Notification service SSL 항목을 선택합니다.

 

 

 

등록된 App ID중 인증서를 적용할 App ID를 선택합니다.

 

 

 

 

인증서를 생성하려면 Mac에서 생성한 CSR 파일이 필요하다고 나옵니다.

 

기존에 있다면 업로드 하면 되고 없다면 새로 생성해야합니다.

 

아래 글을 통해 키체인 인증서를 생성 후 진행해주세요.

gigas-blog.tistory.com/247

 

[Mac OS X] 키체인 인증서 생성

Apple 개발중 인증서가 필요한 상황과 자주 맞닥뜨리게 됩니다. 다양한 기능을 추가하거나 연동할 때 필요한 부분이니 자주 사용하게 되는데요. 쉽고 간략하게 키체인 인증서를 생성해 보도록 하

gigas-blog.tistory.com

 

 

 

 

키체인 인증서를 업로드 하고 'Continue' 버튼을 클릭합니다.

 

 

키체인 인증서의 문제가 없다면 아래와같이 Apple Push Services 인증서가 생성됩니다.

 

'Download' 버튼을 클릭하여 파일을 저장합니다.

 

 

 

다운받아진 aps.cer 인증서 파일을 클릭하여 Mac OS X 의 키체인 목록에 추가합니다.

 

 

 

정상적으로 되었는지 확인하려면 Apple Developer의 Certificates 목록에 TYPE이 Apple Push Services으로 되었는지 확인하면 됩니다.

 

728x90
반응형
728x90
반응형

 

iOS 기기에서 푸시알림 기능을 추가 하려면 APNs 설정을 해야 합니다.

 

APNs(Apple Push Notification Service)는 애플 개발자 화면에서 인증서와 키를 생성해야 사용할 수 있습니다.

 

이번 글에서는 사용할 App ID의 Push Notification 기능을 활성화 해보겠습니다.

 

기본적으로 Apple 개발자 프로그램이 가입된 기준으로 작성됩니다.

 

 

 

App ID의 Push Notification 체크.

Apple Developer 로그인을 합니다.

developer.apple.com/account

 

로그인 - Apple

 

idmsa.apple.com

 

 

 

 

Certificates, Identifiers & Profiles 로 진입합니다.

 

 

 

 

Identifiers 메뉴에서 푸쉬를 사용하려는 항목을 선택합니다.

 

 

 

등록되어있는 identifier가 없다면 새로 등록을 진행합니다.

 

상황에 맞는 IDs를 선택하면 되며, 일반적으로 진행한다면 App IDs를 그대로 두고 Continue 버튼을 클릭합니다.

 

 

 

이번 화면에서도 기본 App 인 상태로 Continue 버튼을 클릭합니다.

 

 

 

항목을 선택할때와 새로운 앱을 등록할 때 동일한 화면이 보여지고, 하단으로 내려가면 Push Notifications 체크 항목이 보여집니다.

 

해당 항목을 체크하고 'Save' or 'Continue' 버튼을 클릭하여 저장하면 Push Notifications 가 활성화 됩니다.

 

728x90
반응형
728x90
반응형

 

광고 식별자 IDFA - ID for Advertisers는 Apple에서 사용자의 기기에 할당한 임의 기기 식별자 입니다.

 

Google은 광고 식별자 ADID - Advertising ID 를 사용하고 있지요.

 

각 광고 식별자를 통해 기기에 할당한 임의의 식별자로 사용자를 식별하고 맞춤형 광고를 제공할 수 있습니다.

 

 

 

iOS 14 이전 버전에서는 별다른 권한없이 IDFA 값을 가질 수 있었습니다.

 

하지만 iOS 14 버전 이상에서는 사용자를 추적할 권한을 요청하도록 처리 해야 합니다.

 

광고 식별자추적 권한을 요청하는 방법을 알아보겠습니다.

 

https://support.apple.com/ko-kr/HT212025

 

앱이 사용자의 활동 추적을 요청하는 경우

앱 추적 투명성 기능은 광고 제공 또는 데이터 브로커와의 공유를 목적으로 앱이 다른 회사의 앱 및 웹 사이트에서 사용자의 활동을 추적하도록 허용할지 사용자가 직접 선택할 수 있게 해줍니

support.apple.com

 

 

 

1. Framework 추가.

Xcode 프로젝트를 만든 뒤 Target -> General -> Frameworks, Libraries, and Embedded Content 로 진입합니다.

 

+ 를 클릭하여 AppTrackingTransparency.framework 를 추가합니다.

 

AppTrackingTransparency.framework 는 iOS 14 이상부터 사용이 가능합니다.

 

 

2. Privacy 항목 추가.

info.plist의 key 항목에 Privacy - Tracking Usage Description을 추가 합니다.

 

애플 공홈에 나와있는 내용 Your data will be used to measure advertising efficiency. Value 항목에 넣겠습니다.

 

 

 

3. 권한 요청.

이제 ViewController.swift 로 돌아와 권한 요청을 위한 코드를 작성하겠습니다.

 

requestTrackingAuthorization 함수를 추가 하였고 iOS 14 버전 이상일 때만 권한 요청을 하도록 추가 했습니다.

 

요청 후 아래처럼 AuthorizationStatus 를 전달하고 있습니다.

 

authorized: 승인 

denied: 거부

notDetermined: 결정되지 않음

restricted: 제한

 

각 상태에 맞게 처리를 하면 됩니다.

import UIKit
import AppTrackingTransparency

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        requestTrackingAuthorization()
    }
    
    func requestTrackingAuthorization() {
        if #available(iOS 14, *) {
            ATTrackingManager.requestTrackingAuthorization { (status) in
                switch status {
                case .authorized:
                    print("authorized")
                case .denied:
                    print("denied")
                case .notDetermined:
                    print("notDetermined")
                case .restricted:
                    print("restricted")
                }
            }
        }
    }
}

 

 

 

위처럼 작성하고 정상적으로 Build가 되었다면 아래처럼 보여지게 됩니다.

 

 

 

설정에서 설치된 앱을 선택하여 '추적 허용'을 취소 하거나 다시 허용을 할 수 있습니다.

 

728x90
반응형
728x90
반응형

 

이전 글을 통해 PDFKit을 사용하여 단일, 다중 PDF 파일을 표시 하였습니다.

https://gigas-blog.tistory.com/262

 

[Swift] PDFKit 사용하기 #2 다중 PDF

이전글에서 PDFKit을 사용하여 간단하게 단일 PDF를 표시하는 앱을 만들어 봤습니다. 이번글에서는 여러 PDF를 하나로 병합하여 표시하는 앱을 만들어 보겠습니다. https://gigas-blog.tistory.com/261 [Swift]

gigas-blog.tistory.com

 

그런데 몇번 페이지를 보고 있는지. 전체 페이지가 몇개가 있는지 보여지는게 없네요.

 

이번 글에서는 전체페이지와 현재 페이지를 아래처럼 표시해보도록 하겠습니다.

 

아래와 같이 3개의 변수를 선언해주었습니다.

 

pageInfoContainer 는 페이지번호를 감싸주는 Container입니다.

 

currentPageLabel 은 페이지번호를 표시해주는 Label입니다.

 

timer는 일정시간 페이지번호를 표시해준뒤 PDF를 가리지 않기 위해 pageInfoContainer를 가려주는 용도로 사용합니다.

var pageInfoContainer: UIView = {
    let view = UIView()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.layer.cornerRadius = 6
    view.backgroundColor = UIColor.gray
    return view
}()

var currentPageLabel: UILabel = {
    let label = UILabel()
    label.translatesAutoresizingMaskIntoConstraints = false
    label.font = UIFont.systemFont(ofSize: 12, weight: .medium)
    label.textColor = UIColor.white
    return label
}()

private var timer: Timer?

 

 

 

페이지 UI의 제약을 주기 위해 아래처럼 작성을 해주었습니다.

 

UI구성을 마쳤으니 실제 페이지번호를 보여주도록 처리해보겠습니다.

func setUpUI() {
    view.addSubview(pageInfoContainer)
    
    pageInfoContainer.addSubview(currentPageLabel)
    
    NSLayoutConstraint.activate([
        pageInfoContainer.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 20),
        pageInfoContainer.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 20),
        
        currentPageLabel.topAnchor.constraint(equalTo: pageInfoContainer.topAnchor, constant: 5),
        currentPageLabel.leadingAnchor.constraint(equalTo: pageInfoContainer.leadingAnchor, constant: 10),
        currentPageLabel.trailingAnchor.constraint(equalTo: pageInfoContainer.trailingAnchor, constant: -10),
        currentPageLabel.bottomAnchor.constraint(equalTo: pageInfoContainer.bottomAnchor, constant: -5),
    ])
}

 

 

 

PDFKit에서 지원을 하고 있으며 다양한 Notification을 지원하고 있습니다.

 

그중 PDFViewPageChanged 를 통해 페이지 상태가 변하면 handlePageChange함수로 알림을 받도록 등록합니다.

NotificationCenter.default.addObserver(self, selector: #selector(handlePageChange), name: .PDFViewPageChanged, object: nil)

 

 

 

PDFViewPageChanged 으로 등록한 Notification이 handlePageChange함수를 호출해주는데요.

 

pageIndex를 가져온 뒤 pageInfoContainer를 표시해주고 startTimer를 호출합니다.

 

startTimer에서는 타이머를 invalidate 하고 새로운 Timer를 생성해줍니다.

 

그리고 2초 뒤에 pageInfoContainer를 사라지게 해주는 whenTimerEnds함수를 호출해 줍니다.

// MARK: - PDFView PDFViewPageChanged
extension ViewController {
    @objc
    func handlePageChange() {
        view.bringSubviewToFront(currentPageLabel)
        if let currentPage: PDFPage = pdfView.currentPage,
           let pageIndex: Int = pdfView.document?.index(for: currentPage) {
            UIView.animate(withDuration: 0.5, animations: {
                self.pageInfoContainer.alpha = 1
            }) { (finished) in
                if finished {
                    self.startTimer()
                }
            }
            currentPageLabel.text = "\(pageIndex + 1) of \(pdfView.document?.pageCount ?? .zero)"
        }
    }
    
    private func startTimer() {
        timer?.invalidate()
        timer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(whenTimerEnds), userInfo: nil, repeats: false)
    }

    @objc
    func whenTimerEnds() {
        UIView.animate(withDuration: 1) {
            self.pageInfoContainer.alpha = 0
        }
    }
}

 

 

 

타이머를 사용했다면 deinit 될때 꼭 invalidate 처리를 해주어야겠죠.

deinit {
    timer?.invalidate()
}

 

 

 

이렇게 작성된 코드를 Build하면 아래처럼 페이지 이동시 현재페이지와 전체페이지를 보여주는 View를 보실 수 있습니다.

 

이로써 기본 기능에 충실한 PDFViewer를 만들어 보았습니다.

 

다양한 용도로 Custom 을 하여 더 멋진 PDFViewer를 만들어보세요.

 

 

 

 

지금까지 작성한 코드는 GitHub 를 통해 확인하실 수 있습니다.

https://github.com/bonjin-app/iOS/blob/main/PDFKitExample/PDFKitExample/ViewController.swift

 

bonjin-app/iOS

Contribute to bonjin-app/iOS development by creating an account on GitHub.

github.com

 

728x90
반응형
728x90
반응형

 

이전글에서 PDFKit을 사용하여 간단하게 단일 PDF를 표시하는 앱을 만들어 봤습니다.

 

이번글에서는 여러 PDF를 하나로 병합하여 표시하는 앱을 만들어 보겠습니다.

https://gigas-blog.tistory.com/261

 

[Swift] PDFKit #1 단일 PDF

PDFKit은 공식 문서를 보면 PDF데이터를 보여주거나 작성 및 검색을 할 수 있다고 나와있습니다. iOS 11 이상부터 사용이가능하기에 이전 버전을 지원하는 앱에서는 사용이 불가능합니다. https://devel

gigas-blog.tistory.com

 

 

 

이전처럼 함수로 미리 작성해 주겠습니다.

 

PDFDocument를 배열로 받아서 document에 insert함수를 이용하여 추가하는 방식입니다.

 

PDFDocument를 PDFPage로 변환하여 보여질 document에 insert만 하면 된다는게 정말 쉽군요.

func loadMultiplePdfView(inputDocuments: [PDFDocument]) {
    let document: PDFDocument = PDFDocument()
    for input in inputDocuments {
        for i in .zero...input.pageCount {
            if let page: PDFPage = input.page(at: i) {
                document.insert(page, at: document.pageCount)
            }
        }
    }
    
    pdfView.autoScales = true
    pdfView.displayMode = .singlePageContinuous
    pdfView.displayDirection = .vertical
    pdfView.document = document
}

 

 

 

아래 코드를 ViewDidLoad함수에 넣어서 실행해보겠습니다.

let urlStrings = ["http://www.africau.edu/images/default/sample.pdf",
                 "http://www.africau.edu/images/default/sample.pdf",
                 "http://www.africau.edu/images/default/sample.pdf"]
        
let documents = urlStrings.compactMap { (urlString) -> PDFDocument? in
    if let url = URL(string: urlString),
       let document = PDFDocument(url: url) {
        return document
    }
    return nil
}
loadMultiplePdfView(inputDocuments: documents)

 

 

 

하나의 pdf가 2개 page 를 갖고 있기 때문에 3개를 호출하여 6개의 page를 만들어서 표시 했습니다.

 

 

정말 간단하지요? PDFKit의 장점은 Custom이 가능하다는 것입니다.

 

TableView를 추가하여 좌측에 전체 페이지를 보여주는것도 가능하고, PDFView의 go 라는 함수로 특정 페이지로 스크롤을 이동시키는것도 가능합니다.

 

 

WebKit으로 PDF를 병합하려고 찾지 마시고 PDFKit을 통해서 해결해보시는게 어떨까요?

 

다양하게 본인만의 PDFViewer를 만들어보세요.

 

728x90
반응형
728x90
반응형

 

PDFKit은 공식 문서를 보면 PDF데이터를 보여주거나 작성 및 검색을 할 수 있다고 나와있습니다.

 

iOS 11 이상부터 사용이가능하기에 이전 버전을 지원하는 앱에서는 사용이 불가능합니다.

https://developer.apple.com/documentation/pdfkit/pdfdocument

 

Apple Developer Documentation

 

developer.apple.com

 

 

 

 

기존 프로젝트에 약관을 확인하려는 용도로 WebKit을 사용하여 html파일을 로드하는 방식으로 사용을 하고 있었습니다.

 

Server 에서 pdf로 보내도 WebKit에서 변환하여 잘 보여주고 있는데요.

 

PDFKit을 사용하여 다양한 방식으로 표시를 해보겠습니다.

 

 

 

새로운 xcode 프로젝트를 PDFKitExample이라는 이름으로 만들어줍니다.

 

그리고 Main.storyboard의 ViewController에 UIView를 만들어주는데 class를 'PDFView'로 연결해줍니다.

 

PDFView는 PDFKit에서 지원하는 UIView를 상속하여 만들어진 View이고 PDF파일을 보여주는 역할을 합니다.

 

 

ViewController로 돌아와 PDFKit을 import하고 조금전에 만든 PDFView 를 pdfView 와 연결합니다.

import UIKit
import PDFKit

class ViewController: UIViewController {

    @IBOutlet weak var pdfView: PDFView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
}

 

 

 

이제 pdfView에 pdf파일을 연결하는 함수를 작성해 줍니다.

 

PDFDocument라는 Parameter를 받아서 pdfView와 연결해줍니다.

 

autoScales 는 뷰의 크기가 조정되거나 회전 될 때 배율이 자동으로 변경되는 모드입니다.

true, false 로 구성되어있습니다.

 

displayMode는 문서 표시 모드 이며 기본값은 singlePageContinuous로 단일 페이지 방식입니다.

singlePage, singlePageContinuous, twoUp, twoUpContinuous 모드가 있습니다.

 

displayDirection은 vertical과 horizontal로 구성되어있고 기본값은 vertical 모드 입니다.

 

마지막으로 document라는 속성에 PDFDocument를 연결하면 됩니다.

func loadPdfView(document: PDFDocument) {
        pdfView.autoScales = true
        pdfView.displayMode = .singlePageContinuous
        pdfView.displayDirection = .vertical
        pdfView.document = document
    }

 

 

 

url을 받아서 PDFDocument로 변환하여 loadPdfView함수를 호출하도록 처리 했습니다.

 

local방식과 web방식을 선택하여 사용하면 되고, 아래 코드를 ViewDidLoad 함수에 넣어서 실행해보겠습니다.

// local Sample Pdf
// let url = Bundle.main.url(forResource: "sample", withExtension: "pdf")

// web Sample Pdf
let url = "http://www.africau.edu/images/default/sample.pdf"

if let url = URL(string: urlString),
	let document = PDFDocument(url: url) {
	loadPdfView(document: document)
}

 

 

 

WebView처럼 pdf파일을 잘 불러온것을 확인할 수 있습니다.

 

 

위처럼 간단하게 하나의 pdf파일을 로드해서 표시를 해봤습니다.

 

다음글에서는 pdf파일이 여러개 있을때 하나로 표시하는 방법을 알아보도록 하겠습니다.

 

728x90
반응형
728x90
반응형

 

저축은행 업무를 하면서 많은 솔루션을 사용합니다.

 

정말로 앱 하나에 10개 이상은 들어가는것 같습니다.

 

이게 앱을 만드는건지 솔루션을 합치는건지 모를정도로 다양한 솔루션을 사용합니다.

 

 

 

 

어느 기업의 솔루션을 받아서 사용하는데 개발사는 하청 업체가 진행하는것이 다반사 입니다.

 

같은 업체의 솔루션이지만 다른 하청업체에서 개발하기 때문에 서로 충돌도 많이 생기는데요.

 

이번경우는 다른 기능이지만 같은 기능들이 많아서 충돌이 되는 문제였습니다.

 

 

 

 

xcode 빌드시 아래처럼 중복된 코드들이 있다는 오류가 보여지고 있었습니다.

 

같은 회사 솔루션인데 왜 이렇게 만드는지는 모르겠으나.. 병합 처리를 해서 사용하려고 합니다.

duplicate symbol '_OBJC_CLASS_$_xxxxxx' in:
	/Users/gigas/Documents/IOS/xxxx/a.a (c.o)
    /Users/gigas/Documents/IOS/xxxx/b.a (c.o)

 

 

 

libtool 프로그래밍 도구를 통해 병합을 진행합니다.

 

Libtool은 GNU 빌드 시스템에서 나온 GNU 프로그래밍 도구이며 포터블 라이브러리를 만드는 사용합니다.

 

www.gnu.org/software/libtool/

 

Libtool - GNU Project - Free Software Foundation

GNU Libtool - The GNU Portable Library Tool GNU Libtool is a generic library support script that hides the complexity of using shared libraries behind a consistent, portable interface. To use Libtool, add the new generic library building commands to your

www.gnu.org

 

 

 

 

a.a, b.a 파일을 한곳에 모아두고 해당 경로로 들어가서 아래와 같은 명령어를 입력하면 됩니다.

 

a.a 파일과 b.a 파일을 병합하여 merge.a 라는 파일로 만들어 줍니다.

libtool -static -o ./merge.a ./a.a ./b.a 

 

 

 

 

이렇게 생성된 merge.a 라이브러리 파일을 사용하니 문제 없이 빌드가 잘 되었습니다.

 

libtool에 많은 옵션들이 있지만 단순 병합하는 용도로 설명을 하였습니다.

 

728x90
반응형
728x90
반응형

# Xcode11 Version 11.6 (11E708) 을 사용하고 있습니다.

 

은행권 보안 솔루션을 적용중에 아래와 같은 오류가 발생하였습니다.

 

ld: '/Users/gigas/Documents/...)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

 

BITCODE는 ios9에서부터 앱 용량을 줄여주는 App Thining과 밀접한 관계가 있습니다.

 

App Store에 등록할 때 bitcode 활성화 상태로 올라가서 Apple이 32bit, 64bit 를 구분하여 용량을 줄이도록 제공한다고 합니다.

 

 

 

 

 

보안 솔루션 업체에서 오래전에 만들어둔 수정 보완을 거치지 않고 납품을 많이 하는지 BITCODE 관련해서 처리가 되어있지 않았습니다.

 

이를 해결하려면 보안 솔루션 업체에서 BITCODE를 포함하여 빌드를 해주는 방법이 있습니다.

 

하지만 이렇게 간단하게 된다면 저런 모듈을 주지 않았겠죠..

 

업체와 문제 해결방법을 찾기보단 프로젝트 설정을 건드는것으로 처리하려고 합니다.

 

Build Settings 에서 Build Options 의 Enable Bitcode 값이 기본은 Yes지만 No로 변경하면 정상적으로 Build가 됩니다.

 

 

 

 

은행권 프로젝트를 하면 솔루션 작업에 어려움이 많습니다.

 

다른 업체별로 맞는 환경을 맞춰야하는데 언제쯤 이런 수고를 덜수 있을까요..

 

728x90
반응형
728x90
반응형

 

던스 번호(D-U-N-S Number)란, D&B라는 회사에서 사업자 구분을 하기 위해 개별기업에 부여하는 개별기업 인식코드 입니다.

 

Apple 법인 개발자 등록을 위해 국제사업자번호(D-U-N-S Number)를 D&B로부터 부여받아 제출해야합니다.

 

차근차근 던스 번호를 발급받아 보겠습니다.

 

 

 

1. [DUNS 넘버 무료로 발급받기]

DUNS 넘버 찾기(등록)사이트에 접속합니다. 

 

https://developer.apple.com/enroll/duns-lookup/#!/search

 

로그인 - Apple

 

idmsa.apple.com

 

 

 

2. 양식 작성

영문사업자등록 증명서의 내용을 그대로 기입하시면 됩니다.

 

영문사업자등록 증명서는 세무서나 홈택스에서 발급받으실 수 있습니다.

Organization Information

영문 사업자 등록증에 있는 내용을 입력해야 합니다.

 

Country: South Korea

Legal Entity Name: 법인 회사명

 

 

 

Headquarters Address

Street Address: 회사 도로명

Town / City: 시/군/구

State / Province: 도

Postal Code: 우편번호

Phone Number: 연락받을 폰 번호

 

 

Your Contact Information

D-U-N-S 번호 발급 담당자 연락처 및 성함을 입력해주시면 됩니다.

 

Given Name: 이름

Family Name: 성

Work Phone Number: 연락처

Work Email: 회사 이메일(회사 도메인 권장)

 

 

 

 

3. 던스번호 요청

작성을 완료한 뒤 'Continue' 버튼을 클릭하였지만 던스 번호가 등록되어있지 않아 Dun & Bradstreet에서 법인에 정보를 제출하여 던스 번호를 요청하라고 합니다.

 

 

 

 

 

약관에 동의 후 'Submit' 버튼을 클릭하면 Dun & Bradstreet로부터 던스 번호 요청이 완료됩니다.

 

 

 

4. 던스 번호 요청 확인 이메일 수신

요청한 후 당일에 작성한 회사 이메일로 승인 메일이 수신됩니다.

Thank you for submitting your D-U-N-S Number request / update to D&B. 
It should be completed by 07/13/2020, or sooner. 
Your request id is: 000000-000000. 
A D&B representative may be contacting you directly. 
Your cooperation will help to expedite the resolution of this request. 
Please contact applecs@dnb.com if you have any questions.

 

 

 

 

5. 070 국제전화 통화 수신

메일을 수신하고 나면 070으로 시작하는 국제전화가 1~2일 내로 오는데 영어 또는 한국어로 연결됩니다.

 

이메일로 받은 Request id를 확인합니다.

 

(이 부분에서 인식이 안되어 전화가 종료될 수 있습니다. 해결 방법을 별도로 작성해 공유하겠습니다.)

 

 

 

 

6. 던스 번호 발급 완료 메일 수신

던스 번호 9자리를 포함한 메일을 수신합니다.

 

7일 후에 던스 번호를 사용할 수 있다는 것과 던스 번호로 메일로 도착하였습니다.

Your D-U-N-S Number request/update submitted on 2020-06-29 with ID Number 000000-000000 has been completed. 
You may start using your number in 7 days. 
D-U-N-S Number: 000000000 Resolution Description: Match Found via host investigation, 
host database updated The following information was submitted as part of your request: 
Business Name: 회사명 City: 시, 구 
Country: KOREA SOUTH (REP OF) Thank you for using D&B's Mini Investigation Service.

 

 

 

7. 던스 번호 확인

발급 받은 던스 번호를 확인하시려면 아래의 URL로 이동후 양식을 작성하시면 확인 가능합니다.

 

https://www.dandb.com/dunsnumberlookup/

 

Dun & Bradstreet D-U-N-S® Number Lookup

 

www.dandb.com

 

 

 

 

시간이 지나도 메일이 안오거나, 연락이 없다면 아래의 Apple 지원을 통해 해결할 수 있습니다.

 

https://developer.apple.com/kr/support/D-U-N-S/

 

D-U-N-S® 번호 - 지원 - Apple Developer

문의하기 어떻게 도와드릴 수 있는지 알려주시면 핸드폰이나 이메일을 통해 해결 방법을 찾아드립니다. 지원받기

developer.apple.com

 

728x90
반응형

+ Recent posts