Tizen SDK를 실행시키고,

Tizen Z1을 USB로 데스크탑과 연결하였습니다.

하지만, SDK에서 기본 제공하는 샘플앱을 Z1에 설치할 수 없었습니다.


Tizen SDK에서 제공하는 샘플앱을 정상적인 방법으로 Build하여,

Tizen Z1에 정상적인 방법으로 Install하고자 하는데 에러가 나네요.


무슨 일인걸까요?


안녕하세요, Tizen 개발자 윤진입니다.


인스톨 에러는 결코 SDK의 문제가 아닙니다.

문제라면 Z1의 문제이죠.

Z1은 판매용 상품이니 만큼,

소비자가 크래킹의 위협에서 벗어날 수 있도록 보안을 견고하게 다져놓았습니다.

플랫폼 입장에서는 사용자가 인증받지 않은 앱을 설치하는 것만큼 위험한 것은 없습니다.


타이젠 스토어에는,

- 등록된 개발자만이 업로드를 할 수 있고,

- 업로드한 앱은 검증을 통과해야,

비로소 스토어에 노출됩니다.

따라서 타이젠 스토어를 통해 내려받은 앱은 안심하고 사용할 수 있겠죠.


하지만, 사용자가 타이젠 스토어가 아닌 다른 곳에서 불량앱을 다운로드 받을 수도 있으니,

Z1 입장에서는 다시 한번 인증하는 절차를 통해 불량앱을 적발하고자 합니다.


따라서 타이젠 SDK에서 만든 샘플앱도 적절한 인증절차를 거치지 않으면,

Z1 입장에서는 그저 불량앱에 지나지 않습니다.


타이젠 SDK를 실행시킨 상태에서,

Z1을 연결하면 아래 이미지처럼 왼편 하단 'Connection Explorer'에 SM-Z130H가 나타납니다.



샘플앱을 Z1에 올려보죠.

아래 이미지처럼 File > New > Tizen Native Project 에 진입하여 샘플앱을 생성합니다.



타이젠 네이티브 앱 개발을 위한 프로젝트를 생성합니다.

아래 이미지처럼 Sample 탭을 눌러,

Mobile-2.3 > Native UI App > Calculator UI sample application 을 차례대로 선택합니다.



Project name은 마음대로 지정합니다.

Project name에 따라 Package name은 자동으로 정해집니다.

자동으로 정해진 Package name은 org.tizen이 prefix로 붙습니다.

다른 이름을 지정하고 싶다면 바로 바꿀 수 있습니다.



프로젝트를 생성하면,

왼편 Project explorer에 생성한 프로젝트가 나열됩니다.

Project > Build Project를 눌러 샘플앱을 빌드합니다.

그리고 Run > Run 을 실행하여 타겟으로 샘플앱을 로딩하고자 하면...

아래처럼 타겟에 install 할 수 없다는 메시지가 나타납니다.



인증된 개발자가 만든 앱이 아니므로 Z1 시료에는 설치조차 할 수 없습니다.

앱을 설치하여 런칭까지 진행하기 위해서는 인증을 먼저 받아야 합니다.

인증을 받기 위해 삼성 Z1 개발자 사이트(http://developer.samsung.com/samsung-z)에 접속합니다.



Z1에 대한 특징과 스펙에 대한 정보가 채워져 있습니다.

사이트 하단으로 스크롤해보면 Certificate을 다운로드 받을 수 있는 버튼을 찾을 수 있습니다.



위의 이미지를 보면,

인증서를 등록하기 위해 다운로드하라고 되어 있습니다.

다운로드 버튼을 누르면 SDK 라이센스 합의서가 나옵니다.



여러가지 문구가 나와있지만, 결국 하고 싶었던 말은 이 부분이 아닌가 싶습니다.


  1. 4.1

    Your Applications must not (i) breach any applicable laws, regulations or generally accepted practices or guidelines in the applicable jurisdictions; (ii) contain any material, component or code which could damage, destroy, unduly burden or unreasonably affect software, firmware, hardware, data, systems, services, or networks; or (iii) disable, hack or otherwise interfere with any authentication, content protection, digital signing, digital rights management, security or verification mechanisms implemented in or by the Tizen Certified platform.


한 마디로 나쁜 짓을 하라 말아달라는 요청입니다.

위의 이미지에 왼쪽 하단에 있는, "I agree to this SDK License Agreement"에 체크를 하면 Download 버튼이 생깁니다.

"tizen2.3-certificate-extension.zip"을 다운로드합니다.


이제 Tizen SDK를 설치할 때 사용할 적이 있는,

Tizen SDK Install Manager를 실행합니다.

(Tizen SDK 설치는 여기를 참고해주세요.)



위의 메뉴에서, Update를 누릅니다.



위의 이미지 왼편에 있는,

Extra repository 버튼을 누릅니다.



자동으로 Certificate을 다운로드 받은 디렉토리가 추가되어있습니다.

만약 추가가 되어 있지 않다면,

Name은 적당한 이름으로 짓고,

Repository는 꼭 다음 syntax로 추가해야 합니다.


"file:///" + [절대경로 혹은 상대경로] + [확장자가 빠진 파일명]

디렉토리를 '/'나 '\' 어느 것으로 사용해도 검색이 됩니다.

여기서는 아래와 같은 주소를 입력하였습니다.

"file:///C:\Users\Administrator\Downloads\tizen2.3-certificate-extension"

(차기 버전에서는 Certificate repository를 입력하기 위한 Search 버튼을 추가해주세요~ :))

주소를 올바르게 입력하였다면,

위처럼 리스트에 Certificate 이름이 나올 겁니다.

이름 옆에 체크박스를 체크한 후 OK 버튼을 누릅니다.



위처럼 Extra 항목에 "Certificate Extension"이라는 항목이 추가되었습니다.

Install 버튼은 눌러 인스톨을 진행합니다.

인스톨이 완료되면 SDK를 통해 Certificate을 요청할 수 있습니다.


Certificate을 요청하기 위해서는,

내 신분이 기록된 CSR 파일을 생성해야 합니다.

우선 아래 이미지의 Certificate 버튼을 누릅니다.


버튼을 누르면 아래 이미지와 같은 다이얼로그가 나옵니다.



개발자 인증을 받기 위해서는,

Author 패널 > Generate a certificate signing request(CSR file)

위의 버튼을 눌러 개발자 인증을 받기 위한 파일을 생성해야 합니다.


개발자 인증서를 처음 발급받는 것이니,

Generate a new certificate signing request

위의 라디오 버튼을 선택한 후 Next를 누릅니다.



사용자 이름과 비밀번호 그리고 기타정보를 입력한 후 Finish 버튼을 누릅니다.

여기서 입력한 비밀번호는 차후 Certificate과 함께 입력해야하므로 잘 기억해두세요.



C:\tizen-sdk-data\keystore\author.csr

위의 위치에 csr 파일이 생성되었습니다.


이제 다시 다이얼로그 Author 패널에서,

"Request the certificate" 버튼을 누릅니다.



팝업이 뜨며,

다음 단계에서 삼성계정에 로그인해야한다고 알려줍니다.

확인 버튼을 눌러 다음 단계로 진행해보죠.


삼성 개발자 사이트 로그인 화면창이 왼편에 나오고 연결된 디바이스 정보가 오른편에 함께 나타납니다.

이미 삼성 개발자 사이트에 아이디가 있으면 Sign in을 눌러 접속을 하고,

아이디가 없으면 중간에 "Create a Samsung accrount"를 눌러 아이디를 만드세요.



로그인을 완료하면,

그러면 Request Developer Certificate을 위한 창이 새로 생깁니다.



좀 전에 생성한 csr 파일을 선택하여 Submit 버튼을 누릅니다.



메일로 개발자를 위한 인증서를 받을 수 있습니다.

메일을 열어보면 첨부파일로 author.crt 파일이 있는 것을 확인할 수 있습니다.

위의 파일을 Author 패널의 Certificate file 항목에 넣어줍니다.

Password에는 csr 파일을 생성할 때 넣어준 암호를 넣어주면 됩니다.


이제 디바이스를 인증받을 차례입니다.

Z1 디바이스를 USB로 연결한 후,

Device Profile 패널 > Request a device profile을 선택합니다.

등록하고자 하는 Mobile 기기를 등록하기 위한 페이지가 나옵니다.



Privilege Level은 "Public", "Partner" 혹은 "Platform"을 선택할 수 있지만 일반 개발자가 선택할 수 있는 것은 "Public"입니다.

Developer Type은 "Individual"(개인)이나 "Company"(회사) 중에 선택합니다.

Device ID는 오른편에 연결된 기기에서 Copy 버튼을 눌러 갖다 붙입니다.

그리고 하단의 Submit 버튼을 누릅니다.


본인 계정으로 Profile에 대한 정보를 보내는데 성공하였다면,

위와 같은 화면이 나옵니다.

이제 본인의 계정으로 등록한 1) device-profile.xml 파일과 2) 디바이스에 대한 인증패스워드가 날라옵니다.



첨부파일은 Device Profile > Certificate file에 붙입니다.

Password는 메일로 함께 날라온 암호를 입력합니다.

그리고 OK를 누르면 드디어 인증이 완료됩니다.



인증이 완료되었다면,

Window > Preferences > Tizen SDK > Security Profiles

위의 위치에서 등록된 인증서를 확인할 수 있습니다.


자, 이제 마지막 단계입니다.

SDK에 등록된 인증서를 타겟에 옮기세요.

SDK 왼편에 있는 Connection Explorer에 있는 타겟을 선택하고 마우스 오른버튼을 누릅니다.



위의 팝업메뉴에서 가장 아래에 있는,

Permit to install applications

버튼을 눌러 인증서를 타겟에 복사합니다.


여기까지 왔다면, SDK에서 만든 앱을 Z1에서 실행할 수 있습니다.


만약 앱을 실행하려 했으나 다음과 같은 에러가 떠서 실행이 안된다면,

인증 과정에서 오류가 발생하여 제대로 인증이 안되었을 가능성이 높습니다.


- "Cannot create package"

- " java.io.IOException: Invaild password  If you want to know more information, please check your 'Error Log' view"

- "Cannot launch ..."


차분히 다시 인증과정을 진행해보길 권장합니다.

그래도 안되면 무한도전 등을 보며 심신의 안정을 취한 후,

다시 처음부터 차분히 진행보세요. :)


끝_




* Reference

http://developer.samsung.com/samsung-z#certification_guide

http://developer.samsung.com/technical-doc/view.do?v=T000000198




+ Recent posts