크리에이티브 커먼즈 라이선스
Creative Commons License

Xcode6 에서 폰 테스트시에 'process launch failed: Security' 라고 뜨면서 앱 구동에 실패하는 경우가 있습니다.

새로운 프로비저닝 프로파일을 사용하여 최초로 앱을 설치할때 나타나는 이슈 인듯합니다.

(정확한 원인을 아시는 분은 좀 알려주세요.. 굽신굽신..)


아이폰을 열어서 설치할 앱을 선택해주면 신뢰하는지 여부를 물어봅니다.

당연히 신뢰해주면 문제가 해결됩니다.



저작자 표시
신고
Posted by 지오아빠^^
크리에이티브 커먼즈 라이선스
Creative Commons License

정말 오랜만에 iOS 앱을 만져보려고 Xcode6를 실행해봤습니다.

시작 부터 살짝 멘붕이 왔는데요.. Xcode6 에서는 Empty Application 템플릿이 없어졌네요.

늘 Empty Application을 선택해서 개발을 했었던지라 익숙함을 찾아서 구글링을 했습니다.



1. Single View Application을 선택해서 프로젝트를 생성

2. Main.storyboard, LaunchScreen.xib, ViewController.h, .m 파일을 삭제

3. Info.plist에서 Main storyboard file base name, Launch screen interface file base name 항목을 삭제

4. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 메소드를 아래 내용으로 대체


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    return YES;

}


고고!




저작자 표시
신고
Posted by 지오아빠^^
TAG ios, xcode6
크리에이티브 커먼즈 라이선스
Creative Commons License

find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" ")" -print0 | xargs -0 wc -l




이제는 할부지 지오 ㅠㅠ


저작자 표시
신고
Posted by 지오아빠^^

iOS6 Smart App Banner

iOS 2013.08.06 18:07
크리에이티브 커먼즈 라이선스
Creative Commons License

iOS6 부터 Smart App Banner 라는 것이 생겼네요.


웹사이트에 방문했을때 해당 사이트의 앱을 설치 or 구동 시킬 수가 있네요.


사용하기에 따라서 굉장히 유용한 기능인데, iOS7 출시를 앞둔 시점에서야 알았습니다 ㅠ_ㅜ


사용 방법은 해당 사이트에 meta tag를 추가해주면 끝입니다.


<meta name="apple-itunes-app" content="app-id=568066519">


적절한 곳에 활용해 봐야겠네요.




저작자 표시
신고

'iOS' 카테고리의 다른 글

Xcode6 에서 Empty Application 프로젝프 만들기  (0) 2014.11.29
Xcode에서 소스 라인수 카운트  (0) 2014.02.28
iOS6 Smart App Banner  (0) 2013.08.06
iOS 앱에 Facebook Like 버튼 추가하기  (0) 2012.10.29
[iOS] Canonical Mapping  (1) 2012.03.27
Drawing with Quartz on iOS  (0) 2012.03.04
Posted by 지오아빠^^
크리에이티브 커먼즈 라이선스
Creative Commons License

조큼 삽질 했네요.


주된 설명은 아래 URL 참고하시면 됩니다.

https://developers.facebook.com/docs/opengraph/actions/builtin/likes/



1. https://developers.facebook.com > Apps > 앱선택 > Open Graph > Edit Open Graph > Create New Action Type > Like 선택 > Submit


2. Facebook 인증 등등의 절차는 각자 알아서..


3. Like


- (void) fbDidLogin {

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:

@"링크할URL", @"object",

facebook.accessToken, @"access_token",

nil];

[facebook requestWithGraphPath:@"me/og.likes"

  andParams:params

 andHttpMethod:@"POST"

 andDelegate:self];

}


- (void)request:(FBRequest *)request didLoad:(id)_result {

// 성공

}


저작자 표시
신고

'iOS' 카테고리의 다른 글

Xcode에서 소스 라인수 카운트  (0) 2014.02.28
iOS6 Smart App Banner  (0) 2013.08.06
iOS 앱에 Facebook Like 버튼 추가하기  (0) 2012.10.29
[iOS] Canonical Mapping  (1) 2012.03.27
Drawing with Quartz on iOS  (0) 2012.03.04
MonkSWF  (0) 2011.12.22
Posted by 지오아빠^^
TAG facebook, ios, like

[iOS] Canonical Mapping

iOS 2012.03.27 19:33
크리에이티브 커먼즈 라이선스
Creative Commons License

iOS에서 파일 경로를 읽어와서 DB의 정보와 비교하는 로직을 구현하다가 한참 삽질을 했습니다.

대략 이런 로직..


NSString *documentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/"];

NSFileManager *fm = [NSFileManager defaultManager];

BOOL isDir = NO;

if ( [fm fileExistsAtPath:path isDirectory:&isDir] ) {

if ( isDir ) {

NSArray *ls = [fm contentsOfDirectoryAtPath:path error:nil];

for ( NSString *path in ls ) {

NSString *relativePath = [path substringFromIndex:[documentsPath length] + 1];

if ( [ isEqualToString:@"한글파일명.txt"] ) {

// 아 젠장.. 뭐가 잘못인데 여기로 안오냐..?

}

}

}

}


별 문제 없는 로직으로 생각했는데, 원하는 결과가 나오지 않더군요.

혹시 캐릭터셋 문제일지 몰라서 오만 캐릭터셋으로 변환해가면서 테스트 했지만 결과는 같았습니다.


문제는 Canonical Mapping 였습니다.

Canonical Mapping에 대한 내용은 http://johotogoshinentai.tistory.com/71 에서 참고하세요.

저는 배경지식이 부족해서 읽어봐도 전부 이해하지 못하겠네요 ㅠㅠ

결론 적으로 이야기 하면 <한글파일명.txt><ㅎㅏㄴㄱㅡㄹㅍㅏㅇㅣㄹㅁㅕㅇ.txt>로 처리가 되고 있다는 사실입니다.


NSLog 덕분에 더욱 한참 해멜수(?) 있었습니다.

NSLog로 relativePath 출력하면 정상적으로 출력이 되는 거죠.

혹시나 공백문자등이 따라오나 싶어서 NSLog(@">>%@<<", relativePath); 와 같이 출력했지만 이상 없이 잘 출력해주더군요.

NSData 타입으로 변형하여 Hex코드로 출력해야지만 겨우 다르다는 것을 인지 할 수 있습니다.


이런경우에 사용하라고 NSString에는 Canonical Mapping 적용/해제 해주는 메소드를 제공하고 있습니다.


- (NSString *)decomposedStringWithCanonicalMapping     // Canonical Mapping 적용

- (NSString *)precomposedStringWithCanonicalMapping    // Canonical Mapping 해제


예제 코드에 이를 적용하면 해결됩니다.


NSString *documentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/"];

NSFileManager *fm = [NSFileManager defaultManager];

BOOL isDir = NO;

if ( [fm fileExistsAtPath:path isDirectory:&isDir] ) {

if ( isDir ) {

NSArray *ls = [fm contentsOfDirectoryAtPath:path error:nil];

for ( NSString *path in ls ) {

NSString *relativePath = [[path substringFromIndex:[documentsPath length] + 1precomposedStringWithCanonicalMapping];

if ( [ isEqualToString:@"한글파일명.txt"] ) {

// 오케이! 여기다 원하는 걸 넣어주자!

}

}

}

}



Apple | iPhone 4 | Normal program | Pattern | 1/15sec | F/2.8 | 3.9mm | ISO-400 | Off Compulsory | 2012:03:03 15:21:07




저작자 표시
신고

'iOS' 카테고리의 다른 글

iOS6 Smart App Banner  (0) 2013.08.06
iOS 앱에 Facebook Like 버튼 추가하기  (0) 2012.10.29
[iOS] Canonical Mapping  (1) 2012.03.27
Drawing with Quartz on iOS  (0) 2012.03.04
MonkSWF  (0) 2011.12.22
[iOS] shouldAutorotateToInterfaceOrientation 호출이 안되는 경우  (0) 2011.09.26
Posted by 지오아빠^^

Drawing with Quartz on iOS

iOS 2012.03.04 22:35
크리에이티브 커먼즈 라이선스
Creative Commons License
저작자 표시
신고

'iOS' 카테고리의 다른 글

iOS 앱에 Facebook Like 버튼 추가하기  (0) 2012.10.29
[iOS] Canonical Mapping  (1) 2012.03.27
Drawing with Quartz on iOS  (0) 2012.03.04
MonkSWF  (0) 2011.12.22
[iOS] shouldAutorotateToInterfaceOrientation 호출이 안되는 경우  (0) 2011.09.26
[iOS] UIImage imageNamed  (1) 2011.08.09
Posted by 지오아빠^^
TAG ios

MonkSWF

iOS 2011.12.22 18:24
크리에이티브 커먼즈 라이선스
Creative Commons License
 SWF 애니메이션을 iOS에서 돌릴 수 있도록 해주는 오픈소스 입니다.
당연히 Flash Runtime은 아닙니다.

SWF에서 프레임정보를 뽑아서 cocos2d를 이용하여 애니메이팅 한다는 것이 요점인듯 합니다.
자세한 내용은 아래 블로그를 참고하세요.

http://blog.zincroe.com/2011/11/displaying-a-swf-on-the-iphone-with-cocos2d-and-monkswf/

MonkSWF 다운로드

 

저작자 표시
신고

'iOS' 카테고리의 다른 글

[iOS] Canonical Mapping  (1) 2012.03.27
Drawing with Quartz on iOS  (0) 2012.03.04
MonkSWF  (0) 2011.12.22
[iOS] shouldAutorotateToInterfaceOrientation 호출이 안되는 경우  (0) 2011.09.26
[iOS] UIImage imageNamed  (1) 2011.08.09
[XCode4] Run "Attaching to YourAppName"  (0) 2011.06.09
Posted by 지오아빠^^
크리에이티브 커먼즈 라이선스
Creative Commons License
제 경우에는 UIWindow에 두개의 UIViewController를 붙였습니다.
첫번째 UIViewController는 로그인 화면이고, 두번째 UIViewController는 메인화면인데,
로그인이 되면 첫번째 로그인 VC와 메인화면 VC를 Transition시켰습니다.

문제는 여기부터 시작인데요, 로그인 화면에서는 디바이스 방향에 따라서 화면 회전처리가 잘되었는데,
메인 화면에서는 화면 회전과 관련된 shouldAutorotateToInterfaceOrientation 메소드가 호출되지 않았습니다.

찾아보니 UIWindow에 두개의 UIViewController를 붙이면  둘중 하나만 화면 회전화 관련된 노티를 받는다고 하는 군요.
다음  링크에서 솔루션을 찾았습니다.

http://developer.apple.com/library/ios/#qa/qa1688/_index.html

한참 고생했습니다.
애플 문서를 꼼꼼히 읽지않고 노가다 코딩만하는 허접 개발자의 넋두리 였습니다. 
저작자 표시
신고

'iOS' 카테고리의 다른 글

Drawing with Quartz on iOS  (0) 2012.03.04
MonkSWF  (0) 2011.12.22
[iOS] shouldAutorotateToInterfaceOrientation 호출이 안되는 경우  (0) 2011.09.26
[iOS] UIImage imageNamed  (1) 2011.08.09
[XCode4] Run "Attaching to YourAppName"  (0) 2011.06.09
[XCode4] build 디렉토리 설정  (0) 2011.05.20
Posted by 지오아빠^^

[iOS] UIImage imageNamed

iOS 2011.08.09 18:38
크리에이티브 커먼즈 라이선스
Creative Commons License
아무 생각없이 잘 사용하고 있던 API중 하나가 바로 imageNamed 였습니다.

UIImage *image = [UIImage imageNamed:@"파일명"];


저 한줄이면 Low, High Resolution에 Localizing도 알아서 처리해주고, 코딩은 또 얼마나 짧고 편리합니까?
너무 좋은 놈이었지만 꼭 알고 넘어가야 하는 부분이 있었고 저는 몰랐습니다.
근래에 굉장히 많은 이미지를 사용해야하는 앱을 개발하다가 이유도 없이 앱이 Crash되는 현상을 겪고 나서야 알게되었습니다.


Discussion

This method looks in the system caches for an image object with the specified name and returns that object if it exists. If a matching image object is not already in the cache, this method loads the image data from the specified file, caches it, and then returns the resulting object.


시스템에 캐시 되네요. 자주 사용되는 이미지에 대한 IO성능 향상을 위한 것이 겠지요?
이걸 모르고 모든 이미지 로딩에 imageNamed를 사용했다가 몸이 고생했습니다.
무식하면 몸이 고생이라더니 ㅠㅠ

이미지 용량이 굉장히 크거나, 자주 사용되는 것이 아니라면 아래와 같은 방법으로 처리하는 것이 맞을 것 같습니다.
아래와 같이 사용해도 Low, High Resolution에 Localizing까지 한큐에 해결 됩니다.

UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"파일명" ofType:@"png"]];



추가적으로 고려 할 것은 인터페이스 빌더를 사용하는 경우입니다.
인터페이스 빌더에 UIImageView를 추가하고 이미지 파일을 설정하게 되면 내부적으로 imageNamed를 사용하여 로딩하게 된다는 군요.
이미지를 많이 사용하는 앱을 개발하신다면 꼭 고려하실 사항이라고 생각됩니다.

무엇보다보 중요한 것은 이미지의 사용 목적에 맞추어 선별적으로 API를 사용하는 것이 중요하겠군요.
저처럼 아무 생각없이 코딩 하시면 몸이 고생합니다 -:)
저작자 표시
신고

'iOS' 카테고리의 다른 글

MonkSWF  (0) 2011.12.22
[iOS] shouldAutorotateToInterfaceOrientation 호출이 안되는 경우  (0) 2011.09.26
[iOS] UIImage imageNamed  (1) 2011.08.09
[XCode4] Run "Attaching to YourAppName"  (0) 2011.06.09
[XCode4] build 디렉토리 설정  (0) 2011.05.20
[iOS] Custom Font  (0) 2011.05.19
Posted by 지오아빠^^






티스토리 툴바