안녕하세요, 타이젠 개발자 윤진입니다.


타이젠 관련 행사를 진행하면 으레 받는 질문 중에 하나가 '인증'과 관련된 부분입니다.

타이젠 SDK로 소스를 빌드한 후,

패키지를 에뮬 혹은 타겟에 설치하고자 할 때 인증관련 에러를 접하게 되는데요,

알고나면 별거 아니지만 문제를 해결하기까지 시행착오를 겪는 경우가 아주 많지요.

따라서 그런 시행착오를 조금이나마 줄이고자,

타이젠 사이트에 정리되어있는 내용에 살 좀 붙여서 공유하고자 합니다.

한국어 보다 영어가 편리하신 분은 여기에서 참고하셔도 됩니다.

(위의 자료는 오픈소스그룹의 조재민 책임연구원께서 준비한 것으로 추정됩니다.)


SDK와 Z1 간에 개발자/디바이스 인증을 받는 법은 이미 포스팅한바 있습니다.

[Tizen] 타이젠 SDK와 Z1 연결이 되나요? 인증은 필수!

위의 포스팅은 전체적인 인증절차를 살피고자 문제없이 진행된다는 가정하에 쓰여졌었는데요,

처음 인증을 받고자 하는 분들은 위의 포스팅을 참고하시고,

문제가 생겼을 때 본 포스팅으로 도움을 얻으셨으면 좋겠네요.



* 인증을 위한 첫걸음, SDK Extension 설치하기

타이젠 플랫폼이 탑재된 상품은 견고한 보안을 갖추고자 다각도로 노력하고 있습니다.

따라서 Z1, Z3와 같은 모바일 상품이나,

Gear 시리즈와 같은 웨어러블 상품에서는 해킹위협을 원천차단하고자 합니다.

그 첫번째 단추가 검증되지 않은 앱을 설치하지 못하도록 막는 것입니다.

그렇기 때문에 복잡한 인증절차를 거칠 필요가 있습니다.

인증절차를 아직 밟지 않으셨다면 위에서 언급한 포스팅을 참고하여 인증을 받아주세요.

아래 링크를 참고하여 모바일 혹은 웨어러블 Extension을 설치하시면 됩니다.


- Mobile SDK Extension

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


- Wearable SDK Extension

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



* Active secure profile is not set.
  Please check the signing configurations at Preferences > Security Profiles.

위의 에러메시지는 저자 & 장치 인증을 받지 않았을때 나타납니다.

Extension SDK를 설치하시고 저자 & 장치 인증을 먼저 받으세요.

그리고 Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"를 선택해주세요.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.



* 'Launching TizenApp' has encountered a problem.
  Error code: SIGNATURE_INVALID

위의 에러메시지를 자세히 읽어보면 "Check author certificates"라는 부분이 있습니다.

저자인증이 제대로 진행되지 않아서 발생하는 에러겠지요.

이미 인증을 모두 진행하셨더라도 저자 인증을 다시 진행해야합니다.

제대로 인증을 완료한 후 Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"를 선택해주세요.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.



* 'Launching basic' has encountered a problem.
   Errors occurred during the build.

팝업의 하단을 잘 살펴보면 "Invalid password"라는 문구가 보입니다.

인증서를 등록하셨다면 저자인증 파일을 등록하면서 패스워드를 입력하셨을 겁니다.

바로 그 패스워드가 잘못되었을 경우 위와 같은 에러가 발생합니다.

Preferences > Tizen SDK > Security Profiles

위의 경로로 진입하셔서 Author 인증시 입력한 패스워드를 다시 잘 입력해보세요.

만약 패스워드가 기억이 안나신다면 Author 인증를 새로 해주세요.



* 'Launching basic' has encountered a problem.
  Error occurred while signing the widget.
  Both an author and a first distributor must be required.
  Please check your profile information.

팝업 내용을 살펴보면 저자인증 부분이 잘못된 것을 알 수 있습니다.

저자인증시 입력한 패스워드를 다시 한 번 확인해주세요.

만약 패스워드가 기억이 안나신다면 Author 인증를 새로 해주세요.



* Registration failed.
  Reason: java.lang.Exception: Generic Exception caught.
  Given final block not properly padded.

생소한 자바에러가 보이지만 '등록(Registration)'과 관련된 부분이란 것을 눈치챌 수 있습니다.

만약 Legacy certificate로 저자 & 장치 인증을 하셨다면,

Legacy certificate 파일이 잘못되었을 수 있습니다.

제대로 된 Legacy certificate으로 다시 인증을 받아보시길 권해드립니다.


그게 아니라 저자 & 장치 인증을 각각 받았다면,

저자인증 입력한 패스워드가 잘못되었을 수도 있습니다.

저자인증을 위한 암호를 다시 한 번 입력해보세요.

암호가 기억나지 않는다면 다시 저자인증을 하시길 추천해드립니다.



* There is no certificate for the selected device.
  Please update your certificate.

위의 팝업을 만나면 장치인증 파일에 문제가 있을 수 있습니다.

SDK와 연결된 장치와 장치인증을 받은 장치가 맞는지 확인해보세요.

device-profile.xml 파일을 열어서 <TestDevice>의 DUID와 SDK 연결된 장치의 DUID를 비교하시면 됩니다.

만약 DUID가 다르다면 연결된 장치로 장치인증을 다시 받으셔야 합니다.



* Certificate has not been installed to device yet.
  Please perform 'permit to install applications' of the context menu in Connection Explorer.
  For more information, refer to Help Contents: Certificates.

위의 에러메시지는 저자 & 장치 인증이 제대로 수행되지 않았을때 나타날 수 있습니다.

인증을 하지 않으셨다면,

Extension SDK를 설치하시고 저자 & 장치 인증을 먼저 받으세요.


(인증을 이미 하신 경우 포함) 인증절차를 완료한 후,

Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"까지 선택을 해주셔야 합니다.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.



* 'Launching nativetest - Debug' has encountered a problem.

  Cannot create package.

패키지를 생성하지 못했다는 경고문구입니다.

문구가 구체적이지 않기 때문에 수정포인트를 잡을 수가 없네요.

이 문구는 certificate가 잘못되었을 확률이 높습니다.

Preferences > Tizen SDK > Security Profile

위의 경로에 진입하여 저자 & 장치 인증부터 다시 진행해보세요.



* 'Launching test - Debug' has encountered a problem.
  Cannot install application.

위의 에러는 패키지를 설치할 때 발생하는 에러입니다.

유감스럽게도 'Error message: Success'라고 되어 있기 때문에 더 난해졌습니다.

에러메시지가 '성공'이라고 하네요. 하핫;

이럴 때 좌절하고 싶으실지는 모르겠지만 조금만 참아주세요.


문구가 난해하기 때문에 딱부러진 해결책도 없습니다.

저자 & 장치인증서를 처음부터 다시 받아보세요.

그리고 Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"를 선택해주세요.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.


이상으로 인증실패 총정리편을 마치겠습니다.

그 외의 에러팝업도 있을 수 있겠죠?

여기에 언급되어 있지 않은 에러팝업을 보신다면,

tizen.org의 Q&A 게시판에서 도움을 받으시는게 가장 빠른 방법입니다.

그게 부담되신다면 답글을 남겨주세요.

담당자분께 확인하여 답변해드리겠습니다.

(시간이 좀 더 걸리겠지요.)


그럼 좋은 하루 보내세요~

끝_


* References

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

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

https://developer.tizen.org/community/tip-tech/trouble-shooting-certification

  1. 하수 2016.07.19 01:06

    안녕하세요 타이젠 연습해보려는 학생입니다!! 간단히 native로 만들고 실행해보는데
    'Launching fakekakaotalk - Debug(1)' has encountered a problem
    The program file specified in the launch configuration des not exist

    이러는데 어떻게 해결해야하나요?? 어려운것도 없엇는데 벌써이러네요....

    • 안녕하세요. 제가 지금 러시아 오지탐험 중이라 직접 확인해볼 수가 없는데요. 심지어 인터넷도 너무 느려서 이 댓글을 확인하는것만 오분 정도 걸렸습니다. 하하. 죄송하지만 페이스북에 Tizen talks 그룹이 운영되고 있는데 거기서 한번 물어보시겠어요?

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