Apr 28
alonesiphone build error, ios, iPad, iphone, png, pngcrush, xcode
우움 XCode로 빌드하고 나니 아래와 같이 png 파일 에러를 토해냈다. 해당 png 파일이 없는대로 빌드되어서 바이너리가 올라갔지만, 해당 png 파일은 앱에 없었다.
… pngcrush caught libpng error …
원인은
이미지가 무늬만 png 확장자를 가지고 실제 png 파일이 아닌 경우에 발생한다고 한다.우움
해결책은
1. 해당 png 파일을 포토샵 등에서 열어서 다시 png 파일로 별도 저장한다.
2. png 파일을 xcode에서 삭제 (파일까지) 하고 clean – build – svn commit 까지 한다.
3. 별도 저장한 png 파일을 다시 추가한다.
** 그래도 안된다면..
해당 파일을 완전 삭제하고 포토샵에서 다른 확장자로 저장해서 추가하면 됩니다. -_-
Ref
PNG Crush Build Error in iOS
Apr 21
alonesiphone ad, iAd, ios, iphone, landscape, orientation, portrait, 광고
여러 광고 프레임워크를 사용하실 건데요..
두괄식으로 말씀드리면,
가로 모드 iAd 배너에서 가로 모드 광고를 본 후 광고 창을 닫고 나면, iAd 뷰와 super 뷰가 엉망으로 돌아가는 경우가 있고,
해결책은 (여러 가지 시도 끝에), super부터 새로 만들어서 붙여주는 것입니다.
* 세로 모드 광고만 있겠지라고 생각하다, iAd Gallery로 보니 -_-; 예쁜 가로 모드 광고가 있어서….
(참고로 배너자체가 꼭 가로일 때만 발생하는 것은 아니고, 세로 모드에서 가로 광고를 보고 나서도 동일한 현상이 발생합니다)
[전제]
- window 위에 BaseViewController를 깔았습니다
- BaseViewController 위에 (여러 광고를 사용하는 경우는 더 이렇겠죠?) 광고만 담는 AdViewController (세로: 320X50, 가로: 480X32)가 있고,
- AdViewController 에 iAd View가 있습니다.
[현상]
[1] 아래 그림과 같이 가로 모드에서 광고를 클릭하고,

[2] 가로 모드 전용 광고가 나와서 (아이폰을 그대로 가로 모드로 유지하고 보겠죠?) 본 후

[3] 아이폰을 가로 모드로 유지한 상태에서 광고 뷰를 닫으면 아래 그림과 같이 (iAd에서 super view를 애써 센스 있게 돌려주셔서)
광고 뷰가 엄하게 돌아가 있는 경우가 (완전) 왕왕 있습니다.

머 심지어 -_-; 완전 사라지는 경우도 있고요

[해결책]
AdViewController에서ADBannerViewDelegate을 구현해서 bannerViewActionDidFinish: 에서 frame을 애써 조절해보려고 해도,
이 처방은 가로 모드 배너에서 세로 배너 광고가 나와서 사용자가 아이폰을 세로 모드로 돌려줬을 때만 먹힙니다.
그래서 처방은 아래 코드와 같이 bannerViewActionDidFinish:에서 AdViewController를 새로 생성해버리는 것입니다.
(첨부한) 예제 코드는 AdViewController에 protocol을 하나 만들어서 BaseViewController에서 AdViewController를 새로 만들게 했습니다.
- (void)bannerViewActionDidFinish:(ADBannerView *)banner {
if( delegate && [delegate respondsToSelector:@selector(adViewAdFinished:)] == YES ) {
[delegate adViewAdFinished:self];
}
}
[예제 코드]
TestAd
* 참고
예제 코드는 Xcode4로 작성되어있습니다.
그리고 저는 Interface Builder를 안 씁니다. 흐.
Apr 20
alonesiphone app store, apple, ios, iPad, iphone, marketing
지금까지는 앱 스토어 랭킹은 단순히 다운로드 기반이었는데, Ref의 글들처럼 다운로드 뿐만아니라 실제 사용에 좀 더 기반한 랭킹 시스템으로 바뀐 거 같습니다.
Rating이나 실제 사용 (트래킹을 하는 것 같기도하고)에 비중을 둬서 랭킹을 만드는 것 같은데.. 그래서 아래와 같이 앱들의 순위가 변경되었다고 합니다.
Facebook: #13 -> #1
Skype: #33 -> #11
Pandora: #22 -> 10위 권내

그리고 또 하나 주요 변화는, pay-per-install 을 사용하는 앱들이 최근 Reject을 받았다고 합니다.
Pay-per-install은 앱 내에서 추천하는 다른 앱을 다운로드 받으면, 게임 머니나 게임 아이템을 제공해주는 새로운 비지니스 모델이었는데.. Reject 당했다고 하는군요.
돈과 관련해서는 애플을 통하라는 것 같습니다.
Ref
Apple banning pay-per-install apps from the App Store says Tapjoy
Apple tweaks app ranking system
Apple May Have Tweaked App Store Ranking Algorithm, Making Downloads Matter Less
Apr 19
alonesiphone App, app store, camera, ios, iphone, photo
개인적으로 게임 개발쪽과는 동떨어져있어서, 아래와 같은 기사는 마음을 훈훈하게 만드는 것 같습니다.
웹, 게임, SNS, Util, 사진 이런 카테고리가 스마트 폰 사용자들의 큰 사용 빈도 아닐까요?


Apr 15
alonesiphone apple, arc4random, dev, ios, iPad, iphone, rand, random
습관이 되어서 무심하게 Copy&Paste하는 코드는 참 무선운 것같습니다. 생각과 고민을 안하고 쓰니…
저도 random()에 time seed를 써서 사용해왔었는데요… 최근부터는 arc4random()으로 바꾸었습니다.
* random()이 0x7fffffff (2147483647) 인 것인데, arc4random()은 0×100000000 (4294967296) 이니 훨씬 정교한 임의의 값을 얻을 수 있겠죠?
* 임의의 수를 뽑아내는 알고리듬도 arc4random()이 훨씬 우수하다고 하죠
* arc4random() 는 seed를 줄 필요가 없죠~
Ref
http://iphonedevelopment.blogspot.com/2008/10/random-thoughts-rand-vs-arc4random.html
http://stackoverflow.com/questions/4435905/arc4random-random-number-generator
http://www.iphonedevsdk.com/forum/iphone-sdk-development/2969-random-number-generator.html