openssl passwd -crypt -salt /s [페스워드]

출력결과로 /etc/master.passwd 파일을 페스워드 필드를 수정

Posted by NOP 트랙백 0 : 댓글 0

iPhone SDK 출시

2008.03.07 10:08 from iPhone

http://www.engadget.com/2008/03/06/iphone-sdk-gets-real-available-today/

이번 발표때 iPhone SDK를 출시했다. 생각 외로 준비를 많이 한것 같아 보이며 현재 http://developer.apple.com/에서 다운로드가 가능하나 폭주로 접속이 거의 불가능하다. Torrent로도 SDK가 다운로드가 가능한 상태다.



예상했던 내용대로 시뮬레이터가 SDK에 포함되어 있으며 추가적으로 2.0 펌웨어에 대한 언급도 있는데 변경사항이 꽤 많을 것으로 생각된다.

우려했던대로 S/W는 iTune을 통해 다운로드가 가능한 형태가 되며 상업적 프로그램의 경우에는 7:3(에플이 30%)의 수익구조를 가지는 형태가 될 것이라고 한다. 그 외에 서드파티 개발에 대한 내용이 있는데 SEGA 같은 게임회사도 포함되어 있다.


다음은 SDK 비교차트이다.

http://www.engadget.com/2008/03/06/iphone-sdk-comparison-chart/

  Apple iPhone SDK Toolchain Windows Mobile S60
Cost Free Free Free; could be more depending on tools used Free; could be more depending on tools used
Wide availability June Now Now Now
Native development Yes Yes Yes Yes
Languages suppoted for native development Objective-C Objective-C C++, any language with a .NET compiler C++
Digital certificates Required for distribution No Available, required for some phones Available, required for some phones
Retail support Full; 30 percent Apple revenue share; free apps allowable No Limited Limited
Platform maturity Immature Immature Mature Mature
First-party support Yes No Yes Yes
Community support Just getting started! Excellent Excellent Excellent
App installation method Direct (App Store), iTunes Installer.app, custom Direct, ActiveSync Direct, PC Suite
Emulator available Yes No Yes Yes
Remote debugging Yes No Yes Yes
Target device variety Poor Poor Excellent Good
Touchscreen support Multi-touch Multi-touch Single touch Umm... soon?
App availability and variety Poor (that will change, though) Good Excellent Excellent
Underlying architecture Cocoa Touch / Mac OS X Mac OS X Windows Symbian
Flash availability No No Yes Yes
Java availability No In development Yes Yes

Posted by NOP 트랙백 0 : 댓글 2

Backlight 조절

2008.03.03 16:01 from iPhone

함수 프로토 타입 정의, 혹은 Header(GraphicsServices.h)에 추가(존재하지 않을 경우)

밝기는 0.0f ~ 1.0f

extern void GSEventSetBacklightLevel(float value);

Posted by NOP 트랙백 0 : 댓글 0

iPhone SDK 3월 6일 공개?

2008.02.28 10:33 from iPhone


ipodnn.com에 따르면 Apple에서 위와 같이 미디어에 초대장을 보냈다고 한다.

"Please join us to learn about the iPhone software roadmap, including the iPhone SDK and some exciting new enterprise features. The event takes place at Apple, Building 4, Town Hall on March 6 at 10:00 a.m. Registration begins at 9:00 a.m. Arrive early for this invitation-only event."

내용을 보면 3월 6일에 iPhone SDK를 포함하여 iPhone software에 관한 로드맵을 발표한다고 되어있다. 이 날 SDK가 발표될지는 확정된 사실이 없지만 사실상 2월 발표는 연기된 듯 하다. 추가로 "some exciting new enterprise features"에 대해서 언급하고 있는데 IBM에서 개발하고 있다는 Lotus Notes가 아닐까...

TAG iphone, sdk
Posted by NOP 트랙백 0 : 댓글 0

NSLog 로그 파일 출력

2008.02.25 15:37 from iPhone

CocoaDev에서 내용을 찾아보면 다음과 같은 형식으로 NSLog의 내용을 파일 출력이 가능하다고 한다.

NSArray *searchPaths =
NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryFolder = [searchPaths objectAtIndex:0];
NSString *logPath = [[libraryFolder stringByAppendingPathComponent:@"Logs"]
    stringByAppendingPathComponent:
    [[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleExecutable"]
            stringByAppendingPathExtension:@"log"]];   
freopen([logPath fileSystemRepresentation], "a", stderr);

기존 Cocoa에서 사용되는 방법으로 iPhone에서 로그를 남겨보려고 하면 위 방법으로는 동작하지 않는다. 이는 NSLog의 출력이 stderr이 아니기 때문인 것 같다.

따라서 XLog를 사용하고 printf부분을 fprintf(stderr, ...)으로 변경하면 ~/Library/Logs에 로그가 생성됨을 알 수 있다. (단 디렉터리는 생성되어 있어야 한다.)

XLog.h

extern void XLog(NSString *format, ...);
extern void XFTimeLog(CFAbsoluteTime *time, NSString *format, ...);
 

XLog.m

void _XLog(CFAbsoluteTime *lastTime, NSString *format, va_list argList) {   
    CFAbsoluteTime time = CFAbsoluteTimeGetCurrent();
    static unsigned logcount = 0;
    if (logcount++ % 100 == 0) NSLog(@"logcount: %i", logcount);
    static CFTimeZoneRef zone = nil;
    if (!zone) zone = CFTimeZoneCopyDefault();
    CFGregorianDate date = CFAbsoluteTimeGetGregorianDate(time, zone);
    if (lastTime) {
        double elapsed_time = time - *lastTime;
        unsigned total_sec = elapsed_time;
        double fraction = elapsed_time - (double)total_sec;
        unsigned milli = fraction * 1000.0f;
        unsigned micro = fraction * 1000000.0f;
        micro %= 1000;
        // log elapsed time [sec.ms_us|pid]
        fprintf(stderr, "[%03i.%03i_%03i|%i] ", total_sec, milli, micro, getpid());
    } else {
        unsigned sec = date.second;
        double fraction = date.second - (double)sec;
        unsigned milli = fraction * 1000.0f;
        // log standard time [hours:min:sec.ms|pid]
        fprintf(stderr, "[%02i:%02i:%02i.%03i|%i] ", date.hour, date.minute, sec, milli, getpid());
    }
    CFStringRef log = CFStringCreateWithFormatAndArguments(NULL, NULL, (CFStringRef)format, argList);
    char *ptr = (char *)CFStringGetCStringPtr(log, kCFStringEncodingUTF8);
    if (ptr)    
        fprintf(stderr, "%s\n", ptr);
    else {
        unsigned buflen = CFStringGetLength(log) * 4;
        ptr = malloc(buflen);
        if (CFStringGetCString(log, ptr, buflen, kCFStringEncodingUTF8));
        fprintf(stderr, "%s\n", ptr);
        free(ptr);
    }
    fflush(stderr);
    CFRelease(log);   
}

void XLog(NSString *format, ...) {   
    va_list argList;
    va_start(argList, format);
    _XLog(nil, format, argList);
    va_end(argList);   
}

void XFTimeLog(CFAbsoluteTime *time, NSString *format, ...) {   
    va_list argList;
    va_start(argList, format);
    _XLog(time, format, argList);
    va_end(argList);
    if (time) *time = CFAbsoluteTimeGetCurrent();   
}

Posted by NOP 트랙백 0 : 댓글 0

Apple Repo 팀이 잠정적으로 소스를 닫은것 같다.

The Apple's Repository Project is down indefinitely.

We are working on a new system that will make everything more efficient and faster.

Once up, support will not be provided by us, but by a community of users on our coming forum.

There is no timetable on which when we will be back.

FACT: We have served more than 1 million iPhone apps!

- Apple Repo Team

그래서 현재 기존의 소스는 사용이 불가능 하지만 물론 다른 소스도 존재한다.

http://ipodtouchmaster.com/files/repo.xml

iPhone 1.1.3 Applications > The iPhone 1.1.3 Apps를 선택

Posted by NOP 트랙백 0 : 댓글 0
Engadget에 다음과 같은 기사가 올라왔습니다.
1주에서 3주 연기면 3월은 되야 SDK를 만져볼 수 있겠네요.

With seven days left in the month to announce the iPhone SDK, BusinessWeek is reporting that they've got it from a reliable source that it's going to be late by between a week to three. Yes, it would absolutely suck -- but there's always Ziphone.
2007년부터 기다리는 입장에선 참 absolutely suck 합니다;;. 어떤 모양일지 궁금하군요. 에뮬레이터에 대한 단서도 올라오는거 보면 말이죠.
TAG iphone, sdk
Posted by NOP 트랙백 0 : 댓글 0

Dynamic Lib 생성

2008.02.19 11:10 from iPhone

링크 Flag 추가 추가

LDFLAGS=-dead_strip -dynamiclib

함수 초기 / 종료 시점

__attribute__((constructor))
static void initializer(void)
{

...

}

__attribute__((destructor))
static void finalizer(void)
{

...

}

라이브러리 로딩 예시

dlopen("/Library/libTest.dylib", RTLD_LOCAL);

Posted by NOP 트랙백 0 : 댓글 0

iPhone Touch Stylus

2008.02.17 17:36 from iPhone

Pogo Sylus라고 정정식 터치스크린용 스타일러스가 나와있다.

스타일러스 하나에 25$, 배송비 15$정도 하며 아래 사이트에서 자세한 정보가 나와있다.
배송에는 2주 정도가 소요된듯 하며 Shipping track도 되지 않아 돈 날렸다 싶기도 했다;
http://www.tenonedesign.com/stylus.php

img_iphone_gun 


아무튼 직접 사용해본 바로는 생각보다 펜이 크지 않고 위 사진처럼 펜을 보관할 수 있는 독을 같이 주는데 이게 완성도가 높지 않다. 그리고 끝부분이 아래 그림 처럼 되어 있는데 그림처럼 솜 부분이 많이 나와있지 않아서 철 부분이 자주 닿인다. 그래서 수직으로 써야 인식이 잘되고 유리판에 상처도 안날듯 하다.

tip-closeup-horizontal

결론은 쏘세지 손가락에 광명인듯 하지만 비추인듯 하다.
Posted by NOP 트랙백 0 : 댓글 2

iPhone SSH Passwordless 접속

2008.02.17 17:23 from iPhone

빌드된 iPhone 바이너리를 단말에 올리기 위해서 scp를 이용하려면 공개키를 이용한 인증 방법을 사용하면 편리하다.

설정 방법은 다음과 같으며 현재 개발환경은 cygwin에 설치된 toolchain 기준이다.
다음 명령으로 한쌍의 키를 생성한다. 이는 iphone 단말에서 해도 되고 접속할 client에서 해도 상관없다.

ssh-keygen -t rsa

위 명령을 실행하면 password 설정을 물어보는데 그냥 엔터를 쳐서 password 없이 키를 생성한다.
그러면 ~/.ssh폴더에 id_rsa와 id_rsa.pub가 생성되는데 id_rsa.pub를 authorized_keys라는 파일명으로 iphone의 .ssh폴더에 저장한다. 디렉터리가 없다면 생성하며 퍼미션은 다음과 같이 설정한다.

chmod 755 /var/root
chmod 700 /var/root/.ssh
chmod 644 /var/root/.ssh/authorized_keys

그런 다음 iphone의 /etc/sshd_config를 다음과 같이 3개의 설정의 주석을 제거해 준다.

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

그럼 다음 iphone을 reboot 하면 password 없이 접속이 가능하다.

단, 1.1.3 버전에서는 /var/root가 아니라 /var/mobile에 저장해야 한다. (이것 때문에 삽질을;)

Posted by NOP 트랙백 0 : 댓글 0