여지껏 아이폰으로 잘 개발하고 있다가 오늘 Xcode를 실행해보니, 빌드가 안되는 것이었습니다. 빌드가 잘될 때랑 지금이랑 Xcode도 그렇고 아이폰도 그렇고 바뀐 것은 아무것도 없었습니다. 오거나이즈를 열어 보니 아래와 같은 메시지가 나타났습니다.


Provisioning과 Application 정보가 나와야 할 곳에 "Could not support developement"란 오류메시지가 보였습니다. "Xcode cannot find the software image to install this version"는 말그대로 Xcode가 인스톨할 새로운 OS 이미지가 없다는 것으로 이전부터 나온 메시지였습니다.

인터넷에서 검색을 해보기에 앞서 이전부터 뜬금없이 나오는 프로비저닝 오류에서도 리부팅을 하면 된적이 있어 리부팅을 해보았습니다. 결과는 성공이고 초록색불과 함께 정상적으로 기기를 사용할 수 있었습니다.

한번은 오거나이즈에서 "This device is not currently connected."란 메시지가 나왔습니다. 그때는 Xcode를 재실행하니까 되더군요. 우연인지 모르겠지만 터치로 개발할 때보다 아이폰으로 개발할 때 이런 일들이 더 자주 일어 나는 것 같습니다.

이유는 모릅니다만 "안되면 껐다 켜라"라는 컴퓨터 사용시의 진리가 아이폰과 터치에서도 통하는 것 같습니다.

'기타' 카테고리의 다른 글

세계지도 앱 - World Atlas  (2) 2010.04.21
모토로이  (6) 2010.02.11
아이폰 3GS  (2) 2009.09.17
블로그를 또 다시 이전했습니다.  (4) 2009.05.11
실버라이트2 동영상 재생 속도  (0) 2009.02.13
AND

기타 2009. 9. 17. 11:23
일때문에 아이폰 3GS를 잠시 가지고 있게 되었습니다. 다들 아시다시피 터치와 다른점은 조금 더 두껍고 카메라가 달렸다는 것입니다. 어플리케이션은 전화, 메시지와  나침반 정도가 눈에 뜁니다.

제가 만든 사전을 돌려보니 터치 2세대에서는 검색시 약간의 멈춤이 있었는데 3GS에서는 멈춤없이 바로 실행되더군요. 정확한 스펙은 보지 않았지만 속도도 많이 빨라진 것 같습니다.

전화는 개통되지 않았기 때문에 화면의 버튼들만 눌러 보았습니다. 제가 그동안 블랙잭만 써서 그런지 번호를 누르기가 정말 편하게 되어 있는 것 같았습니다.

카메라와 동영상의 화질도 블로그에 올리는 등 웹상에서 사용하기에 전혀 무리가 없을 정도로 괜찮았습니다. 혐오스러운 사진일 수도 있겠지만 3GS를 들고 다니며 찍은 사진이 없어 이것으로 올려 봅니다.


제 개인 블로그에는 주로 먹고 마시는 소소한 일상들을 많이 올리고 있습니다. 주로 블랙잭으로 많이 찍어 화질이 조금 아쉬웠는데 이정도면 괜찮을 것 같다는 생각이 듭니다. 한달전쯤 집사람의 핸드폰이 고장났습니다. 9월 초 아이폰이 나온다는 소문이 있어서, 아이의 핸드폰을 사용하며 기다려 보다가 출시되면 같이 아이폰을 사기로 했습니다.

늘 그렇듯이 역시나 잘못된 소문이었네요. 집사람은 다른 핸드폰을 사고 전 계속 아이폰을 기다리고 있습니다. 아이폰 하나면 되는데 항상 블랙잭과 터치, 두개를 가지고 다니기 번거롭고 빨리 나와주었으면 좋겠는데, 늘 소문만 무성하네요. 애플의 아이폰 발매 국가 페이지의 Coming Soon에 나오기전까지는 잊고 살자고 했는데, 막상 실제 아이폰을 보니 가지고 싶은 마음에 또 조급해집니다.

'기타' 카테고리의 다른 글

모토로이  (6) 2010.02.11
역시 그냥 껐다 키는 것이...  (8) 2009.09.24
블로그를 또 다시 이전했습니다.  (4) 2009.05.11
실버라이트2 동영상 재생 속도  (0) 2009.02.13
sqlite3 둘러보기  (3) 2009.02.02
AND

이전에 포스팅한 "NSXMLParser로 RSS 읽어오기"와 유사한 방법으로 구글 날씨 RSS를 가져오는 것을 만들어 보았습니다. 그런데 한글이 깨져나와 확인해 보니 문자셋이 euc-kr이었습니다. 문자셋을 확인하는 방법은 URLConnection의 델리게이트 메소드에서 확인할 수 있습니다.
  1. - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
  2.     NSLog(@"Encoding: %@", [response textEncodingName]);
  3. }

전송이 끝난 후에 아래와 같이 NSData를 euc-kr을 utf-8로 변환하여 사용할 수 있습니다. 변경된 data를 NSXMLParser의 initWithData의 인자로 사용하면 됩니다.
  1. - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
  2.     NSString *str = [[NSString alloc] initWithData:receiveData encoding:0x80000000 + kCFStringEncodingDOSKorean];
  3.     NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
  4.    
  5.     NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
  6. .
  7. .
  8. .
  9. }

한가지 이상한 점은 웹브라우저에서 확인하면 같은 URL이지만 utf-8로 넘어 옵니다. 아마 서버에서 헤더를 검사에서 각각 다른 인코딩으로 넘겨주는 것이 아닌가 하는 생각이 듭니다. 헤더의 항목들을 변경해서 보았는데 User-Agent를 설정해서 보내보니 euc-kr이 아닌 utf-8로 넘어 왔습니다.
  1.     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/ig/api?weather=seoul"]];
  2.      
  3.     [request addValue:@"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ko; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2" forHTTPHeaderField:@"User-Agent"];
  4.  
  5.     xmlConnection = [[NSURLConnection alloc]
  6.                      initWithRequest:request
  7.                      delegate:self];


구글의 날씨 API에서는 이와 같이 User-Agent를 보내면 utf-8로 보내기때문에 위와같이 인코딩의 변환이 필요하지 않습니다. 아마 예측가능한 User-Agent는 utf-8로 보내고 그외에는 euc-kr로 보내는 것 같습니다. 이는 영문도 마찬가지이며 http://www.google.com/ig/api?weather=seoul와 같이 co.kr에서 com으로 변경하면 문자셋이 iso-8859-1로 넘어 옵니다. User-Agent를 추가하면 역시 utf-8로 넘어 옵니다.



이전부터 그냥 복사해서 올렸는데 오늘 보니 아래와 같이 나오는 건 너무 보기가 힘든 것 같아서, 예제코드를  Quick Highlighter를 사용해서 정리해 보았습니다.
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/ig/api?weather=seoul"]];
     
    [request addValue:@"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ko; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2" forHTTPHeaderField:@"User-Agent"];

    xmlConnection = [[NSURLConnection alloc]
                     initWithRequest:request
                     delegate:self];

보기도 조금 나아지지만 해당 클래스에 대한 애플의 문서로 바로 링크가 되는 것도 좋은 것 같습니다.

AND