어플리케이션 바이너리를 등록할 때 웹에서 직접 등록하는 방법도 있지만 애플에서 제공하는 어플리케이션로더 어플리케이션으로 올리는 것이 더 안정적인 것 같습니다. 오류 발생시에도 더 자세하게 오류 메시지를 출력하여 주고요.

다운로드는 iTunes Connect로 로그인 후에 Manage Your Application 클릭하여 들어가 하단을 보시면 Get Application Loader란 링크가 있습니다. 이 링크를 클릭하시면 다운로드 받으실 수 있습니다. 아마 눈에 잘 뛰지 않아서 오래전부터 어플리케이션을 등록하시는 분들중에도 모르시는 분들이 계신 것 같습니다.

사용방법은 새로운 어플리케이션의 등록할 때나 업그레이드 시에 바이너리를 등록하는 페이지에서 "Upload application binary later."를 체크 합니다.

바이너리를 제외한 나머지 정보들은 모두 입력후에 저장합니다. 그 후에 맥에서 어플리케이션 로드를 실행합니다. 로더를 실행하면 아래와 같이 바이너리 업로드가 필요한 목록들을 선택할 수 있습니다.


목록을 선택하고 업그레이드할 파일을 선택한 후에 send 버튼을 클릭하시면 됩니다. 메뉴의 New를 클릭하여 여러개의 어플리케이션을 동시에 등록할 수도 있습니다. 용량이 크거나 다수의 바이너리를 올려야 할 경우에는 웹보다 어플리케이션 로더가 더 사용하기 편리한 것 같습니다.

'App Store' 카테고리의 다른 글

스모킹 카운터 한글화  (4) 2010.02.22
다른 시스템에 프로비져닝 프로파일 등록하기  (8) 2009.07.28
App들 업그레이드  (2) 2009.05.28
앱스토어에 대한 소고 - 1  (4) 2009.05.09
앱스토어에 대한 소고 - 2  (10) 2009.05.09
AND

몇일 전에 만들었다가 아이콘을 넣고 조금 다듬어서 올려 봅니다. 맥에서 여러개의 파일을 하나로 합치는 간단한 툴입니다. 아이폰용 사전 어플을 업그레이 하다가 음성파일이 너무 많아 파일을 하나로 합치고 파일명과 시작과 끝 위치정보를 저장하기 위해서 만들었습니다.

사용 방법은 간단합니다. 좌측 하단의 [+] 버튼을 클릭하여 통합할 파일을 등록 한 후에 [Save] 버튼을 클릭하여 저장합니다.
합쳐진 개별 파일에 대한 정보가 저장되는 파일의 종류는 text, xml, sqlite3, 세가지 형식에서 선택할 수 있습니다. 각각 *.txt, *.xml, *.db의 확장자로 저장되며 형식은 아래와 같습니다.

* txt
6-1.png|0|968
9-1.png|968|1965
8-1.png|1965|2939
5-1.png|2939|3840
3-1.png|3840|4821
0-1.png|4821|5749
각 파일들은 '\n'으로 구분되면 파일 정보들은 '|'를 구분자로 저장이 됩니다. 읽어올 시에는 마지막의 '\n'를 삭제하셔야 합니다.

* xml
<?xml version="1.0" encoding="utf-8"?>
<Files>
    <FileEntry>
        <name>6-1.png</name>
        <start>0</start>
        <end>968</end>
    </FileEntry>
    <FileEntry>
        <name>9-1.png</name>
        <start>968</start>
        <end>1965</end>
    </FileEntry>
    <FileEntry>
        <name>8-1.png</name>
        <start>1965</start>
        <end>2939</end>
    </FileEntry>
    <FileEntry>
        <name>5-1.png</name>
        <start>2939</start>
        <end>3840</end>
    </FileEntry>
    <FileEntry>
        <name>3-1.png</name>
        <start>3840</start>
        <end>4821</end>
    </FileEntry>
    <FileEntry>
        <name>0-1.png</name>
        <start>4821</start>
        <end>5749</end>
    </FileEntry>
</Files>

* sqlite3
files란 테이블에 name, start, end 필드 순으로 저장됩니다.


아이폰 어플에서는 UIImage나 AVAudioPlayer등 멀티미디어 파일에 관련된 오브젝트들은 대부분 NSData 타입을 지원하기 때문에 원하는 데이터를 쉽게 가져올 수 있습니다. 아래는 sqlite 타입으로 통합된 파일인 music.dat에서 abc.mp3 파일을 찾아내어 플레이하는 간단한 예입니다.

if (sqlite3_prepare_v2(sDB, "SELECT start, end FROM files WHERE name='abc.mp3'", -1, &statement, NULL) == SQLITE_OK) {
    if (sqlite3_step(statement) == SQLITE_ROW) {
        long start = sqlite3_column_int(statement, 0);
        long end = sqlite3_column_int(statement, 1);

        // 데이터 파일을 연다      
        NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:
                              [[NSBundle mainBundle] pathForResource:@"music" ofType:@"dat"]];
      
        // 시작위치만큼 파일 포인터 이동
        [file seekToFileOffset:start];
       
        // 원본파일 크기만큼 읽어온다
        NSFileData *data = [file readDataOfLength:end - start];
        [file closeFile];
       
        // mp3 플레이
        AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:fileData error:&err];
        [player play];
    }
}

1,000개의 오디오 파일을 통합하여 사용해 보았는데 문제는 없었습니다. 몇번 사용하지를 않아서 버그나 오류가 있을 수 있을 것 같습니다. 알려 주시면 수정하겠습니다.


AND

App Store 2009. 5. 28. 17:06
어제 7개의 사전 어플을 등록/업그레이드 하면서 25개 사전의 업그레이드를 완료했습니다. 아직 리뷰중인 것들도 있지만, 제 터치에 등록된 사전들을 보고 있으면 기분이 좋아집니다.


그동안 버그수정이나 자잘한 오류로 개개의 사전을 업그레이드 한적은 있지만 대대적으로 업그레이드를 한 것은 이번이 처음입니다. 개발능력은 갈수록 퇴하하고 등록하는 기술만 나날이 발전하고 있다는 생각이 들었습니다. 1.5 버젼으로 오면서 아이콘과 초기화면, 탭버튼 디자인과 함께 퀴즈를 추가하였습니다.


하루에 10개씩 문제를 풀수 있고 결과가 저장되는 흔한 기능입니다.

몇일전에 컨텐츠 업체로 부터 음성파일을 받았지만 다음주부터 작업을 할려고 합니다. 갯수가 많아 아무래도 파일을 합치고 기존 데이터와 매칭하는 툴을 만들어야 할 것 같네요. 간단한 프로그램이지만 아주 오랫만에 맥용 어플을 만들어 볼 것 같습니다.


또 하나, 저번주에 스모킹 카운터란 흡연횟수를 세는 어플을 업그레이드 하였습니다. 이 역시 기존에 버그 수정으로 업그레이드를 한적은 있지만 기능추가는 처음입니다.

사용해 보면서 항상 보기에 밋밋하고 카운터 본연의 기능이 미약한 것 같아서 디자인을 변경하고 캐릭터가 간단한 정보들을 번갈아 가며 알려 주는 기능을 추가했습니다. 내부적으로는 cocos2d로 교체해서 1세대 사용자분들도 이전 보다는 쾌적하게 사용할 수 있을 것 같습니다. 그외에 카운터가 올라 갈때 효과와 함께 '찰칵'하는 효과음을 추가했습니다.

사실 이 어플은 현재 앱스토어에서 하루에 1~5개 정도밖에 팔리지 않습니다. 하지만 이번 업그레이드는 개인적인 만족감이 크고요. 많지는 않지만 업그레이드되어 좋아할 전세계 각국의 골초들을 생각하면 기분이 좋아집니다.


소스공개 및 앱스토어 테스트라는 불순한 의도로 올린 액션카운터라는 것이 있는데, 얘는 참 아무리 봐도 난감합니다. 올린지 20일 동안 한 40개 정도 팔렸고 지금은 몇일에 한번씩 구매하는 분들이 계십니다.

클릭하면 숫자는 올라가니 어떤 카운터로는 쓸 수 있겠지만, 이런 정체불명의 목적없는 어플을 구입하는 호기심이 많은 분들에게 죄송합니다. 그래서 어떤식으로든지 쓸 수 있도록 업그레이드를 할려고 하는데, 기존 형식을 유지하면서는 답이 안나오고 있습니다.

내릴까 하다가 기존 구입자들을 위한 업그레이드를 한번 해볼려고 합니다. 조만간 머리를 짜내 쓸 수 있도록 만들어야 겠네요. 하지만 대부분의 사용자 기기에서 지워져 있을 것이라는 게 문제입니다.

처음 버젼들을 급하게 올려 늘 부끄럽고 마음에 걸렸습니다. 하지만 업그레이드를 하고 어느 정도 쓸만하게 되었다는 자평을 하고 나니 조금 괜찮아졌습니다. 앱스토어의 어플들은 가격도 저렴하고 소모품이란 인식도 있습니다. 개인적으로는 터치용 App도 어차피 어플리케이션이고 어플리케이션에 있어서는 버젼업을 해가며 완성도를 높이는 것이 중요하다고 생각됩니다.

사전이야 한계가 있겠지만 스모킹 카운터는 키보드 칠 힘이 남아 있을 때까지 업그레이드를 해볼려고 합니다. ^^;

AND