Auto Update Library : Sparkle 적용하기 3 - 마지막 Development

Auto Update Library : Sparkle 적용하기 2
이어집니다.

다운로드 받았던 스파클 라이브러리 폴더로 가서 Signing Tools폴더와 Sample Appcast.xml 을 현재 프로젝트로 복사해서 가져옵니다.(꼭 이렇게 할 필요는 없지만 이렇게 하는 것이 업데이트 관리하는데 도움이 될 것입니다.)



Signing Tools 폴더 안에 보면 generate_keys.rb와 sign_update.rb 두 파일이 있습니다.



터미널에서 다음의 명령어를 입력합니다. (위치는 Signing Tools 라고 가정합니다.)
ruby generate_keys.rb

이 명령을 치고 나면 수초 후 dsa_pub.pem과 dsa_priv.pem 이라는 두 개의 파일이 생성됩니다. 이 두 개의 파일은 한 번 적용한 이후절대로 잃어버리면 안 되므로 잘 보관해야 합니다.

자 이제 Xcode에서의 마지막 단계로 넘어가겠습니다.

dsa_pub.pem 파일을 Resources 밑으로 복사해 넣습니다.




info.plist 를 열고 다음 두 가지 key를 추가합니다. SUFeedURL, SUPublicDSAKeyFile


SUFeedURL은 어플의 업데이트 정보를 담고 있는 캐스트 주소를 적고
SUPublicDSAKeyFile은 dsa_pub.pem 의 파일명을 적어줍니다.

여기서 캐스트 주소에 대한 공간은 변동되지 않을만한 곳으로 결정하셔야 합니다.

이제 Xcode에서 할 일은 끝났습니다.

지금까지 한 일은 한 번으로 끝났고,
여기서부터는 버전이 올라갈 때마다 매번 해야 할 일입니다.


Release로 컴파일을 한 후 실행파일을 압축합니다.


여기서 다음 정보를 알아두고 넘어갑니다.
1. 현재 어플의 버전
2. 현재 압축파일의 용량
3. 압축된 파일이 올려질 위치(웹주소)

이제 Signing Tools와 함께 복사해 두었던 Sample Appcast.xml 을 엽니다.
아마 처음 딱 보시면 어떻게 해야 할 지 아실 겁니다.

다음을 참고하시기 바랍니다.

여기서 가장 중요한 부분은 sparkle:dsaSignature 입니다.
드디어 아까 만들어 두었던, dsa_priv.pem 을 이용할 때가 왔습니다.

압축 파일(실행 파일)을 Signing Tools 폴더로 복사(이동)합니다.

터미널에서 다음 명령어를 입력하면 sparkle:dsaSignature 에 넣어야 할 값이 나옵니다.
ruby sign_update.rb SparkleTest.zip dsa_priv.pem

이제 수정한 xml 파일을 SUFeedURL에 입력했던 위치에 저장합니다.

이제 끝났습니다.!!!
업데이트 할 때마다 sparkle:dsaSignature 를 재생성하고 xml 파일을 업데이트 해주면 만사 OK 입니다.

모든 일이 완벽히 끝났다면 만들어진 프로그램을 실행해서 메뉴의 Check for Updates... 를 실행해 보세요.
아마 최신버전이라는 메시지가 나올 겁니다.
아니면 에러 메시지가 나올 확률도 꽤 높습니다.
어딘가에서 잘못한거죠... -_-;;

대표적으로 위의 xml 스크린샷을 보면 아래쪽에 /item 이 쓸데없이 들어가 있습니다. 이런 경우 무조건 에러입니다.

그리고 두번째 어플을 실행했을 때는 아마도 '자동으로 업데이트를 검사하겠느냐?'는 메시지가 나올 겁니다.
Sparkle 은 쉬우면서도 너무나 강력한 기능을 제공하는 것 같습니다.

지금까지 설명드린게 Sparkle 의 모든 사용법은 아닙니다.
더 자세하고 필요한 기능은 홈페이지의 documentation 코너에 가보시면 더 많은 정보를 찾으실 수 있을 겁니다.



생각보다 설명해야 할 게 많아서 뒤로 갈수록 부실해진 느낌입니다. 뒤쪽이 더 중요한데 말이죠...
해보시고 잘 안 되는 점이나 질문 있으시면 메일이나 댓글 달아주시기 바랍니다.

이 글 보고 혹시라도 Auto Update 때문에 고민하시는 분이 없길 바랍니다. :)

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://felaur.egloos.com/tb/2175967 [도움말]

덧글

덧글 입력 영역