사용자 삽입 이미지



---------------------------------------------------------------------------------------------------------

오랜만이네요.
귀찮아서 포스팅을 자꾸 차일피일 미루다가.. 마무리는 지어야겠다는 생각으로.. ㅎㅎ

Apple Developer Connection에 APNs가 정상적으로 등록이 되었다면, 이제 푸쉬메시지를 날려봐야겠죠~?

Developer Connection에 APP IDs 섹션을 가보시면 다음과 같이 변해있을겁니당
사용자 삽입 이미지

개발용으로 푸쉬 노티피케이션을 사용할 수 있다는거에요, 나중에 실제로 릴리즈할때는 밑에 있는 Production 부분에 대한 인증서를 생성함으로서, 푸쉬 노티피케이션을 보낼 수 있습니다.

그럼 이제, 실제로 아이폰 고유의 DeviceToken을 구해서 푸쉬 노티피케이션을 보낼 수 있게 구현을 해야되겠죠..
일단 DeviceToken에 대해서 간단하게 설명을 하자면..

아이튠즈 화면을 보시면, 11자리로 구성된 일련번호라는게 있는데.. 그 항목을 한번 더 클릭하면
식별자(UDID) 라는 40자리의 아이폰 고유의 번호가 나옵니다. 이것을 우리가 직접 구해야 됩니다.

(아래에 사용된 코드는 iOS4 에서 제대로 작동하니까 유의하세요~)

일단, 이 어플리케이션이 푸쉬 노티피케이션을 사용한다고 선언을 해줘야겠죠~?
어플리케이션 구동하자마자 호출해도되고, 원할 때 호출하시면 됩니다.

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

어플리케이션에 푸쉬 노티피케이션을 활성화 하면, UIApplicationDelegate에서 다음을 호출합니다.

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken ;
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err;

느낌이 오시져? 하나는 정상적으로 등록이 됐을 때, 하나는 등록되지 못 했을 때 입니다.

코드를 살펴 봅시다.

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
    const unsigned *tokenBytes = [devToken bytes];
    apnsDeviceToken = [NSString stringWithFormat:@"%08X%08X%08X%08X%08X%08X%08X%08X",
                       ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),
                       ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),
                       ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];
   
}

뭔가 어렵게 생겼는데, NSData형식의 UDID를 우리가 식별할 수 있게 16진수로 변환하는 과정이에요. 이 과정을 거치면 40자리의 UDID가 apnsDeviceToken에 저장됩니다.

자 이제 이 UDID를 구워먹고 삶아먹으면 되는데요,
앞선 페이지에서도 이야기 했듯이

푸쉬 노티피케이션의 흐름은

우리가 직접 구현한 프로바이더 서버(써드파티)에서 특정한 이벤트(메시지,친구초대,등등...)가 발생하면 애플APNs로 어떤 이쁜 여자의 아이폰으로 푸쉬메시지를 보내달라고 요청을 해야합니다.

그러기 위해선 프로바이더 서버(써드파티)를 구현해야하고, 누구에게 보내야 할지 그 아이폰의 UDID를 저장할 공간을 만들어야 합니다.

보통 푸쉬 노티피케이션을 사용하는 어플리케이션은 회원가입과 같이 서버에 무언가를 등록하는 작업을 거칩니다.
그때 여러분의 UDID정보도 같이 서버로 제공되는것이죠~~ +_+

여튼 위에서 구한 UDID정보는 http를 사용하시던, file을 통해 ftp를 이용하시던.. 여러분이 구현하신 서버로 제공을 하시면 됩니다.

(저 같은 경우엔 HTTP를 통해서 PHP로 구현된 서버페이지에다가 UDID를 저장하고 관리를 합니다.)

다음 포스팅에서는.. 서버에 저장된 UDID를 통해, 푸쉬 노티피케이션을 보내는 과정을 설명해드릴게요..
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/07/22 13:33 2010/07/22 13:33
http://myriky.net/tc/87
예전에 요런 글을 썼던 적이 있습죠..

이게 09년 4월 글이네요.. 1년이란 시간이 지나면서 아이퐁 SDK도 많이 변했군요..
그래서 제가 널리 세상을 이롭게 하자는 취지로... -_- 이미지 뷰어를 만들어 봤습니다.

작동은 이렇게 하네요~



파일은 네개로 구성되어 있구요.
MRImageViewController.h .m // MRScrollView.h .m 이 있습니다

사용자 삽입 이미지

뷰어 호출은 다음처럼 하시면 됩니다.

MRImageViewController *_imageView = [[MRImageViewController alloc] initWithTitle:title withCounts:maxCount withPage:startPage];

발로 만든 소스라서.. 그냥 대충 쓰시면 되겠습니다.

다운로드받기

Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/07/12 12:04 2010/07/12 12:04
잠깐 iAd 이야기~

회사에서 개발했던 어플리케이션에다가 iAd를 달고, 업데이트를 했다.

어라... iAd 배너 View가 붙어야 할 자리에.. 그냥 덩그러니 빈 화면만 생기네??
그래서 부랴부랴 'iPhone Developer News' RSS를 확인 해 봤더니 이런 피드가 있더라..

사용자 삽입 이미지

'For developers outside of North America, iAd will be rolled out in a few months.'

퓨 먼쓰란다.... 북미시장을 제외하고 나머지 시장은 아직 iAd가 서비스 되지 않는댄다..
아마 광고타겟이 다르기 때문이 아닐까.. 생각이든다

그래서 우리 아시아권 개발자들은..
iAd를 request했지만 거절됐을 때 이벤트를 만들어 줘야되는데
(iAd 영역의 공간을 원래의 컨텐츠가 가져가게 하던가.. 말이지)

http://developer.apple.com/videos/wwdc/2010/
올해 개최되었던 WWDC 페이지를 가면 iAd라던가 멀티태스킹에 관련된 키노트들이 있으니 참고를 하면된다.

그 키노트를 바탕으로 만들어 뒀던 예제는 요렇게 생겼는데요.. 한번 보시죠

- (void)moveBannerViewOffScreen {
    // iAD영역을 없애고 컨텐츠 크기를 늘리는 메소드
    CGRect originalWebViewFrame = _webView.frame;
    CGFloat newWebViewHeight = 416; // self.view.frame.size.height 와 같이 self.view가 되었던, tableview가 되었던 원하는 높이
    CGRect newWebViewFrame = originalWebViewFrame;
    newWebViewFrame.size.height = newWebViewHeight;
   
    CGRect newBannerFrame = _iADView.frame;
    newBannerFrame.origin.y = newWebViewHeight;
   
    _webView.frame = newWebViewFrame;
    _iADView.frame = newBannerFrame;
}


- (void)moveBannerViewOnScreen {
    //iAD가 impression되었을 때 컨텐츠의 일부영역을 잘라서 iAd에게 할당해주는 메소드
    CGRect newBannerFrame = _iADView.frame;
    newBannerFrame.origin.y = 416 - newBannerFrame.size.height; // iAd의 시작위치를 정해주면 됨
   
    CGRect originalWebViewFrame = _webView.frame;
    CGFloat newWebViewHeight = 416 - newBannerFrame.size.height;
    CGRect newWebViewFrame = originalWebViewFrame;
    newWebViewFrame.size.height = newWebViewHeight;
   
    [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
    _webView.frame = newWebViewFrame;
    _iADView.frame = newBannerFrame;
    [UIView commitAnimations];
   
}


- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    [self moveBannerViewOnScreen];
} // 정상적으로 iAd가 요청되었을때 ADBannerViewDelegate 에서 콜백되는 함수


- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    NSLog(@"didFailToReceiveAdWithError : %@",[error description]);
    [self moveBannerViewOffScreen];
} // iAd요청을 했으나, 거절되었거나 인터넷 상태가 좋지않아 광고를 받아오지 못 할 경우


대충 보시면 저 같은경우엔 UIWebView를 이용해서 iAd를 달았기 때문에 self.view가 아니라 _webView의 크기를 구하는 걸 알 수가 있을거에요~

iAd 다셔서 돈 많이 버세용..
그럼~

Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/07/12 10:10 2010/07/12 10:10


사용자 삽입 이미지



---------------------------------------------------------------------------------------------------------

APNs를 사용하기 위해서는, iPhone Provisioning Portal에 등록을 해야됩니다.
모든권한이 있는 관리자로 작업을 진행 하시기 바랍니다.
( 일반개발자 권한으로 AppIDs 부분을 수정할 수가 없더라구요.)

일반적인 어플리케이션에 대한 인증서는 모두 생성이 되어있다는 전제로 설명을 드릴게요.

APP IDs로 들어가시면 해당 어플리케이션의 고유 도메인주소가 존재하고,
APNs와 In App Purchase 의 작동여부를 보여주고 있습니다.

사용자 삽입 이미지

Configure를 선택해서 APNs를 등록하러 갑시다.

여기서 중요한게 Configure가 눌러지지 않는다면 어플리케이션 고유 도메인 주소가 와일드카드(*)로 끝나는 경우엔 푸쉬서비스를 사용할 수 없으니, 만약 와일드 카드로 되어있다면 새로운 APP ID가 필요로 합니다.

사용자 삽입 이미지

다음과 같은 화면이 보이는데요, 일단 테스트를 위한 개발용 APNs를 등록합시다.
Configure를 누르시구요.

사용자 삽입 이미지사용자 삽입 이미지

다음과 같은 팝업 레이어가 뜨는데요, 어디서 많이 본 듯한 화면입니다.

시키는대로 해보죠,

어플리케이션 > 유틸리티 > 키체인 접근 을 실행하시고
상단 메뉴에서 키체인 접근 > 인증 지원 > 인증 기관에서 인증서 요청을 눌러서 인증서를 새로 만듭시다.

사용자 삽입 이미지
기존에 인증서를 만들듯이 동일한 메일주소 / 이름을 지정해주시면 됩니다.

디스크에 저장됨 / 키페어 정보 저장 체크 하시구요.

그러면 키체인 접근에 개인 키 / 공개 키가 생성이 됩니다.

그리고 부가적으로
"CertificateSigningRequest.certSigningRequest" 라는 파일이 생성 되는데요, 이 파일을 아까 팝업 레이어에 첨부해 줍시다.

계속 진행하면 인증서가 생성되고 다운로드를 받으라고 나옵니다. 다운로드 받으시고 실행하시면 "키체인 접근"에 방금 만든 인증서가 쏙 하고 올라가게 됩니다.

사용자 삽입 이미지

다음과 같은 인증서가 생겼습니다.
이제 긴장하시구요.. 잘 따라하세요..

사용자 삽입 이미지

위에 있는 인증서 파일을 오른쪽 클릭을 해서 "Apple Development Push... 보내기"를 누르시고 다음 파일을 "cert.p12"라는 이름의 파일로 저장하세요.

그리고 동일하게 아까 만든 "키" 중에서 "개인 키"라고 되어 있는 걸 오른쪽 클릭해서 "보내기"를 누르시고 "key.p12" 라는 이름의 파일로 저장을 하세요.

cert.p12와 key.p12라는 파일을 작업하기 편한 장소로 옮겨두세요.

이제 인증서 준비는 끝났습니다. 인증서를 우리가 사용할 써드파티 서버에 업로드해서 APN서버와 통신하게 해 줘야 되는데, 통신에 앞서서 다음 인증서를 애플과 통신할 수 있는 포맷으로 변환 해줘야 됩니다.

PEM format (Privacy Enhanced Mail Security Certificate) 이라는 형태로 전환을 해줘야 하는데, 다음 작업은 어플리케이션 > 유틸리티 > 터미널 을 열어서 작업하시면 됩니다.

openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
openssl pkcs12 -nocerts -out key.pem -in key.p12

다음 과정을 거치면 PEM 형식의 인증서와, 개인키가 발급이 됩니다.
써드파티 서버에서 푸쉬를 보낼 때 푸쉬 인증서를 개인키와 비교해서 올바른 사용자인지 구분하는 과정을 거쳐줘야
되는데요, 매번 개인키를 통해서 인증하는 과정이 번거롭기 때문에, 인증서와 개인키를 합치는 과정을 진행 해 보
겠습니다.

openssl rsa -in key.pem -out key.unencrypted.pem
cat cert.pem key.unencrypted.pem > ck.pem


다음 과정을 통해 APN서버와 통신 할 수 있는 ck.pem 인증서 파일이 생성 되었습니다.
다음 파일을 써드파티로 이용할 웹서버에 업로드 하시고 읽기권한의 퍼미션을 주시면 되겠습니다.

아, APN서버로 푸쉬 메시지 요청은 SSL을 통해서 이뤄지므로, 적당한 서버 세팅을 해주시면 되겠습니다.
(참고로 OSX에서 구축할 수 있는 웹서버 MAMP는 SSL을 지원하지 않구요, XAMPP를 이용하셔야 됩니다.)

다음 포스팅에서는 써드파티에서 애플에 푸쉬메시지를 요청하는 과정을 비롯해, 아이폰에서 디바이스 토큰을 가져오는 방법 등을 설명해 보겠습니다.

^*^

--------- 10.06.01 추가

혹시 인증서 보내기 하실때 분명히 인증서만 선택해서 보내기를 하는데
.p12 파일이 아니고 .cem 파일이라면.. 인증서 생성을 처음부터 해야될지도 모릅니다.

다음을 보세요
사용자 삽입 이미지

두개의 똑같이 생긴 인증서가 있는데, 하나는 개인키가 제대로 물려있고, 하나는 그렇지 않습니다.
위에 있는 인증서를 보내기를 하면

요러케 .cem 파일로 저장이 되고
사용자 삽입 이미지

제대로 생성된 인증서는 .p12 형태로 저장이 되니..

사용자 삽입 이미지

.cem 으로 이상하게 저장이 되실 때 참고하시면 되겠습니다.

복구하는 방법은... 정신건강에 좋지 않으니 "애플 개발자 센터"에서 인증서 전부 다 초기화 하시고 처음부터 작업하시기를 권장합니다 ^*^
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/04/23 10:07 2010/04/23 10:07
2010년 여름 출시 될 새로운 아이폰 운영체제에 관한 리포트


목차는 다음과 같구요.

  • 새롭게 추가된 기능  
  • 일곱개의 주요 기능
  1. Multitasking (멀티테스킹)
    1. Background audio
    2. VoIP
    3. Background location
    4. Push Notifications & Local notifications
    5. Task Completion
    6. Fast app switching
  2. Folders (폴더)
  3. Even Better Mail
  4. iBooks
  5. Enterprise (엔터프라이즈)
  6. Game Center (게임센터)
  7. iAd

그냥 제 개인적인 소견입니당... 헤헤
Creative Commons License
이올린에 북마크하기
2010/04/15 14:40 2010/04/15 14:40
정확하게 얘길 하면,

소리가 나긴 나는데.. 스피커에 문제가 없는데

아이팟에서 볼륨 조절 하는 막대가 사라지고, 외장 스피커로 소리가 나오지 않을 때.. 가 있다

'어제 까진 말짱했는데... 내가 뭐 잘못한게 없는데..' 라고 생각하면 경기도 오산이다!

그거슨 바로 짝퉁 아이폰 유니버셜 독을 사용했기 때문이다~

아이폰 하단에 보면 24핀 케이블이 꽂히는데.. 그 곳에서 외장 스피커가 장착 되었는지 아닌지.. 구분하는 부분이 있는데.. 짝퉁 독을 사용하다 보면 해제가 됐음에도 불구하고 아이폰 스피커로 정상적으로 되돌려 주지 않는 경우가 있다~ 헤헤

외국 포럼에서도 한참 찾아봤는데.. 아이폰 업그레이드를 해도 안되고.. 다운그레이드를 해도 안된다..

오직 독이나 다른 외장 스피커에 이용되는 24핀 케이블을 꽂았다 뽑아서 원래상태로 만들어야 된다~

그럼 이만~

iPhone speaker doesn't work
-> you should put it on universal dock(or 24pin cable of outer speaker) again.
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/04/06 23:30 2010/04/06 23:30
애플 푸쉬 노티피케이션 서비스(Apple Push Notification Service : APNs)에 대해서
샅샅이 파해쳐 보도록 하겠습니다. ^*^

아이폰에 대해서 공부하면서, 푸쉬서비스 이해하기가 가장 난해했었는데.. 어느정도 실마리가 풀려나가는 것 같습니다. 이론을 토대로 실무에 적용하면서 배운 많은 것들을 몇가지 소개 해드리겠습니다.

아무 생각없이, 써보자! 라고 했던거라.. 분량이 얼마나 나올지는 모르겠습니다만.. 생각나는대로 계속 업데이트 하겠습니다.

사용자 삽입 이미지



---------------------------------------------------------------------------------------------------------

어플리케이션에서 사용자에게 어떠한 알림메시지나, 이벤트를 주기위해서 푸쉬~라는 서비스가 필요로 합니다.
예를들면, 메신저를 통해 친구가 로그인 했다던가 하면 오른쪽 구석에서 네모난 상자가 올라갔다가 내려가면서 사용자들에게 어떤 상황을 전해 주는걸 푸쉬 서비스라고 생각을 하시면 됩니다.

모바일 디바이스에서도 예외가 아니에요. 디바이스에 설치한 어플리케이션에서 사용자에게 도움이 되는 정보나, 어떠한 상황이 발생했을 때 알려주는 기능이 있어야 되는건 당연하겟죠.

사용자 삽입 이미지
기본적으로 푸쉬알람을 받기위해선, 어플리케이션이 있어야겠죠. 그리고 물론 어플리케이션이 실행중이어야 됩니다. 그래서 윈도우 기반의 휴대폰들을 보면 푸쉬서비스를 받기 위해서 상당량의 프로그램들이 계속 백그라운드로 실행되고 있습니다.

( 왼쪽에 있는게 윈도우 모바일의 작업관리자 화면 인데요 지속적으로 푸쉬알림을 받고, OS를 관리하는 프로세스들이 실행되고 있습니다. )

하지만,

단순히 어플리케이션이 백그라운드로 많이 떠있으면 그만큼 퍼포먼스도 떨어지고, OS도 불안불안해집니다. 특히 개인개발자들이 만든 백그라운드 어플리케이션들은 그 안정성도 보장할 수 없고, 걔네들이 무슨짓을 하는지도 알 방법이 없죠..

그래서 애플이 아이폰을 발표하고, 기존에 모바일 OS와 차별을 두기 위해 꺼내든 카드는 OS의 안정성과 신뢰성입니다.

iTunes AppStore를 통해서 애플의 검수를 모두 마친 어플리케이션들만 판매 / 제공함으로서 사용자들은 믿고 어플리케이션을 받을 수 있게되고, 어플리케이션들의 안정성은 전화기를 껐다,켰다 반복하지 않게 되었습니다. 사용자들은 디바이스가 제멋대로 꺼지진 않을까? 바이러스가 걸려서 내 개인정보가 빠져나가진 않을까? 에 대한 걱정은 깨끗하게 잊을 수 있게 만들었습니다.

그러면, 아이폰은 백그라운드 프로그램을 지원하지 않는데 어떤방식을 통해서 어플리케이션 푸쉬서비스를 받을 수 있을까요? 정답은 바로 APNs에 있습니다.

어플리케이션이 사용자에게 알려줘야 되는 내용을 애플 서버를 경유해서 전달해줌으로 인해서, 그 푸쉬되는 내용에 대해서 신뢰할 수 있게 됩니다.

일반적인 푸쉬 서비스의 흐름은 간단합니다.
( 클라이언트 서비스 서버 ) -> ( 모바일 디바이스 )
반면에, APNs는
( 클라이언트 서비스 서버) -> ( APNS : Apple Push Notification Server ) -> ( 아이폰 )
의 방법을 통해서 사용자에게 푸쉬를 해주는 겁니다.

그리고 APNs는 일반적인 푸쉬서비스와 개념이 약간 다른데요..
일반적으론 백그라운드에 있던 어플리케이션이 푸쉬를 받는 순간 특정한 모듈이 작동하고, 액션이 발생하지만

APNs의 개념은 "어플리케이션에 다음 과 같은 상황이 일어났으니.. 어플리케이션을 실행해서 서버와 통신을 하도록 해라." 라고 할 수 있을 것 같습니다. 푸쉬 메시지가 어플리케이션의 어떤 행동을 해주는게 아니란 얘기죠.. ^^

APNs를 이용함에 있어서 단점도 있습니다.
전세계 아이폰 어플리케이션에서 원하는 푸쉬의 내용이 각 나라의 통신사 서비스를 통해서 애플서버를 경유해 가기 때문에, 반응이 느릴 수 밖에 없습니다. 그리고 푸쉬가 폭주하는 날이면 종종 알람을 받지 못하는 경우도 일어납니다. ( 경우에 따라 다르지만, 푸쉬를 제공하는 클라이언트 서비스 서버가 트래픽을 감당못하고 뻗어버리는 경우가 더 많죠... )
그리고, 푸쉬로 제공할 수 있는 데이터의 제한이 있습니다.
다음 파트에서 또 언급을 할 거지만.. 256byte의 제한이 있습니다. 텍스트의 크기가 아니고, 모든 푸쉬서비스에 관련된 패킷 사이즈가 256byte 미만이어야 합니다.

푸쉬 서비스 치곤 할 수 있는게 너무 없다고 생각하실 수도 있을거에요, 하지만 애플이 원하는건 안정성을 담보로 아이폰의 안녕을 바라고 있으니까요 ^^

구현의 관련된 사항과, 또 무언가 들은... 계속적으로 써 나가겠습니다..
그럼 안녕~

Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/16 11:56 2010/03/16 11:56
아이폰 어플리케이션들 중에 대다수가..
인터넷 커넥션이 필요한 어플리케이션이 많죠? ㅎㅎ

아예 어플리케이션의 모든 기능 조차 사용할 수 없을 때가 있습니다.
그래서 어플리케이션을 최초 구동시 혹은 아이폰을 껏다 키고 최초 실행할 때,

Wi-Fi나 3G커넥션이 연결되어 있지 않으면, 연결하고 오라는 메시지를 다음과 같이 출력할 수 있는 기능이 있습니다.

생긴건 다음과 같구용
사용자 삽입 이미지사용자 삽입 이미지

설정하는 방법은 다음과 같습니다.
프로젝트이름-Info.plist 파일에서 항목을 하나 추가하고~
"Application uses Wi-Fi" 를 선택하시고 체크박스를 하나 넣어주시면 됩니다.

Info파일이 text로 되어 있다면
<key>UIRequiresPersistentWiFi</key>
<true/>

항목을 추가 해주면 되겠네여.

"설정" 을 누르면 어플리케이션이 종료되고 설정하는 창이 뜹니다.
"승인" 은 말그대로 confirm했다는 얘기고, Wi-Fi나 3G는 따로 직접 작동해야됩니다~

그럼 이만~
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/08 10:54 2010/03/08 10:54
사용자 삽입 이미지
일반적으로 어플리케이션에 아이콘을 집어넣으면 스프링보드에 이런식으로 둥그런 효과가 자동으로 생깁니다.

근데 간혹 아이콘이 덜 이쁘게 나오기 때문에..

그림자를 없애는 방법을 알려드리죠

사용자 삽입 이미지
프로젝트에 존재하는 plist 파일에 칸을 하나 만들어서, UIPrerenderedIcon 항목을 만들어서 체크 해주시면 됩니당

UIPrerenderedIcon을 체크하면 자동으로

사용자 삽입 이미지
다음과 같이 바뀌니 놀라지 마세요 ㅋㅋㅋ


시뮬레이터에선 그대로 나오는데, 디바이스에서 보면 제대로 나옵니다~
사용자 삽입 이미지


참 쉽죠잉?


Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/01/14 12:37 2010/01/14 12:37
말 그대로입니당.

자기가 만든 어플리케이션의 현재 버전넘버를 출력하는 소스입니다.
plist파일의 담긴 Bundle version을 긁어와서 뿌려줍니다.

NSBundle의 세계는 심오하네여.
그러면 응용해서 아이콘이미지는 물론이고, 어플 이름까지 뽑아올 수 있겠죠?


[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]]


참 쉽죠잉~?
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/06/23 11:03 2009/06/23 11:03