본문 바로가기

프로그래밍/iOS243

Java서버 JDK 1.7이상에서 APNS를 발송할경우 인증서 생성 Java서버에서 JDK 1.6까지는 기존의 방법대로 PUSH 인증서를 생성해도 별 문제없이 발송이 된다 하지만 JDK 1.7이상에서 부터는 기존의 방법대로 PUSH인증서를 생성할 경우 SandBox용으로만 발송이 되고Real로는 발송이 되지 않는 현상이 발생하낟. 때문에, APNS인증서를 다음과 같이 생성하여야 한다. openssl x509 -in 다운로드받은 CER파일명.cer -inform DER -out 다운로드받은 CER파일명.pem -outform PEMopenssl pkcs12 -nocerts -in 키체인에서 내보낸 P12파일명.p12 -out 키체인에서 내보낸 P12파일명.pemopenssl pkcs12 -export -inkey 키체인에서 내보낸 P12파일명.pem -in 다운로드받은 C.. 2017. 3. 23.
오직 코드만으로 Autolayout 을!! 링크 스크랩 http://cafe.naver.com/mcbugi/307672 2014. 11. 16.
Xcode SVN 주소 바꾸기 출처 : http://minilog.tistory.com/174 xcode 에서 svn을 사용할땐 콘솔에서 명령어를 입력해야 할 때가 있습니다. 처음 생성할때도 필요하고요.. 저처럼 svn서버의 IP주소가 변경되었을 때도 필요한데요.. 주소가 변경되었을 때 명령어를 적어 둡니다. 자꾸 잊어버려요.. 1. 작업하고 있는 프로젝트 폴더로 이동 후 2. 아래의 명령어 입력 svn switch --relocate OLD_URL NEW_URL 예) svn switch --relocate svn://***.***.***.***:3691 svn://***.***.***.***:3691 쉽죠? 맥에서 개발하다보면...그래도 리눅스 좀 해둔게 도움이 될때가 있어용^^ 2014. 7. 9.
XCode 5.1.x의 CodeSnippets경로 XCode의 괄호형식을 변경하기 위해서는 SystemCodeSnipperts파일을 수정해야 하는데 5.1.x부터 경로가 변경되었다. 변경된 경로는 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets 이다. 해당 경로의 SystemCodeSnippets.codesnippets를 적절히 수정하면 기본생성되는함수의 괄호형식을 변경할수 있다. 괄호형식 변경과 관련해서 자세한 내용은 http://blueamor.tistory.com/1046 이글을 참고하기 바란다. 2014. 6. 12.
화면유지 [UIApplication sharedApplication].idleTimerDisabled = YES; AppDelegate 나 꺼지지 않게할 뷰에서 위와 같이 설정 2014. 4. 2.
XCode4 code 를 XCode5로 컨버팅하기 출처 : http://youngminpark.com/program/Site/XCode5.html 2014. 2. 11.
[Core Data] Core Data Version Up 후 LightWeight Migration 하기 출처 : http://warmz.tistory.com/802 참고:: http://taehoonkoo.tistory.com/172 예제소스:: CoreData_1.zip Data Model (Managed Object Model)에 정의된 Entity를 수정하고 싶은 경우가 있다. Entity를 더 추가할 일이 있을 수도 있고, 기존 Entity에 attribute를 추가하거나, rename 혹은 delete하는 경우 Core Data framework에서 지원하는 Version Up & LightWeight Migration 기능을 활용하면 안전하게 데이터를 유지하면서 수정이 가능하다. 조건은 위와 같다. 반드시 기존 Data Model (.xcdatamodeld) 파일은 유지하고 있어야 한다는 것. .. 2013. 7. 21.
[Core Data] Relationship / Inverse Relationships 출처 : http://warmz.tistory.com/805 참고:: http://brandontreb.com/core-data-quicktip-inverse-relationships/ Inverse라는 속성에 대해 알기 전 Database에서 Relationship이라는 것이 무엇인지부터 파악해 볼 필요가 있다. Relationship in Database Database에서 관계(Relationship)이란 두 개의 Entity나 그 자신과의 특정 관계를 양방향으로 표현하는 수단이다. 현재의 관계나 장래 유용한 관계만을 한정적으로 표시하는데 각 방향의 관계에는 반드시 아래 사항들을 명시해야 한다. 1. 관계 명칭 2. 선택 사양(Optionality) 3. 관계형태 (Degree) * 모든 Entit.. 2013. 7. 21.
[CoreData] Relationship에 관한 Tip - 연관된 Entity 함께 지우기 출처 : http://www.prapps.net/551 현재 사용 중인 Xcode 버전이 4.3인데 바뀐 Xcode로 작업을 하려니삽질이 이만 저만이 아니다.대부분 아주 간단한 것인데 애플의 문서를 샅샅이 살펴보지 않는 한은쉽게 발견하기 힘든 것들이기도 하다. 오늘은 Entity간의 Relationship에 대한 이야기다. 일단 Entity간의 구조는 이렇다. 보는대로 이메일과 첨부파일을 관리할 Entity이다.당연히 EmailData와 AttachFiles의 관계는 1:N이다. 이 것이 Insert시에는 EmailData의 attachFiles에 NSSet 형태로 집어넣고[emailData.managedObjectContext save:&error]만 해주면 첨부파일들이자동으로 AttachFiles에 .. 2013. 7. 21.
Objective-C에 새로 추가된 NSDictionary, NSArray, NSNumber 리터럴(literal) 표기법 출처 : http://cafe.naver.com/mcbugi/255479 지난해 XCode 4.4가 배포되면서 탑재된 LLVM 4.0 컴파일러는 Objective-C에 새로운 리터럴 표기법을 사용할 수 있도록 했습니다. NSString에서 리터럴 표기법은 @""였습니다. 이와 유사하게 NSArray, NSDictionary, NSNumber에 대해서도 아래와 같이 추가되었습니다. NSArray 리터럴 이전:array = [NSArray arrayWithObjects:a, b, c, nil]; 현재:array = @[ a, b, c ]; NSDictionary 리터럴 이전:dict = [NSDictionary dictionaryWithObjects:@[o1, o2, o3] forKeys:@[k1, k2, .. 2013. 7. 12.
iOS에서 OpenCV 사용하기 출처 : http://thefermata.net/?p=997 아이폰에서 OpenCV를 사용하려면 우선 iOS용 OpenCV Framework가 필요합니다. OpenCV 공식홈페이지 또는 SourceForge에서 다운로드 가능합니다. 압축을 풀어서 framework 폴더 통째로 프로젝트에 추가. 링크 되게 Add to targets 항목 확인 후 추가합니다. 이제 같이 사용할 라이브러리들을 추가해 주어야 합니다. QuartzCore, Accelerate, AssetsLibrary, AVFoundation, CoreMedia, CoreImage, CoreVideo 빌드 설정을 해야하는데, OpenCV를 사용하려면 Objective C++를 사용해야합니다. 간단하게 OpenCV의 Canny를 활용해서 실시간으.. 2013. 7. 2.
UIActivityViewController를 이용하여 다른 앱과 컨텐츠 공유하기 참고:: http://mobiledevelopertips.com/user-interface/uiactivityviewcontroller-sharing-content-on-ios-6-part-1.html http://www.toyship.org/archives/959 http://uiactivities.com/ 관련:: http://warmz.tistory.com/824 샘플소스:: UIActivityViewControllerExample.zip UIActivityViewController는 iOS 6에서 새롭게 추가된 클래스로써, 이 클래스를 활용하면 뷰 컨트롤러가 컨텐츠를 여러 서비스(OS 내 설치된 어플리케이션)에게 공유할 수 있게 해준다. 공유 대상 서비스의 범위는 SMS 또는 이메일, 클립보드 복.. 2013. 2. 28.
objective c SHA256 암호화 #import -(NSString*) sha256{ NSString* home = [@"~" stringByExpandingTildeInPath]; // NSLog(@"home===============%@",home); NSString *mergePdfPath= [NSString stringWithFormat:@"%@/Documents/C0105.pdf",home]; // const char *s = [data cStringUsingEncoding:NSASCIIStringEncoding]; // NSData *keyData=[NSData dataWithBytes:s length:strlen(s)]; NSData *data = [[[NSData alloc] initWithContentsOfFile:mer.. 2013. 2. 8.
OTA ( Over the Air AdHoc ) 2 ** 개인적 메모입니다. 태클 사절 ** OTA 를 이용해서 다른 부서에 ipa를 배포하려고 하는데.. 설치가 안된다.. "111.111.111.111 연결할 수 없음" 이라는 얼럿창만 계속 나오고 다음 프로세스가 진행되지 않는다..-_-; '왜 일까?' 고민 중 다운로드 링크 URL 형식을 보니 아무래도 IIS에서 문제가 발생하지 않을까는 생각에 mime type을 알아봤다. http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html 애플 개발자 라이브러리 사이트에서 확인해 보니... Setting Server MIME TypesIt .. 2013. 1. 30.
CFRunLoopRun() 를 이용한 AlertView 만들기 출처 : http://cafe.naver.com/mcbugi/246495 CFRunLoopRun() 를 이용한 AlertView 만들기 : Block이나 Delegate 없이 버튼 Index를 바로 받아 올 수 없을까 ? UIAlertView 클래스는 사용자에게 alert 메시지를 발생하게 합니다. 참으로 꼭 필요한 클래스가 아닐 수 없습니다. 하지만 버튼 index를 콜백받는 메소드를 delegate로 지정하여 따로 코드를 작성하는 일이 여간 귀찮은 것이 아니라 할 수 없으며, Block 코드(iOS4이상)가 등장했을 때, 이것을 좀더 편하게 하기 위해 UIAlertView를 Block 코드로 리턴받는 메소드가 생겨났을 정도 입니다. UIAlertView+Block 코드를 보신분은 아시겠지만, 정말 단.. 2013. 1. 9.
샘플코드와 그림으로 잘 정리한 UINavigationController Customization Tutorial UINavigationController Customization TutorialIn this tutorial I’ll go through various tasks that are usually performed with a navigation controller. Feel free to jump into a particular section if you’re looking for something specific, or leave a comment if you feel like something is missing. Creating a UINavigationController programmaticallyCreating a UINavigationController programmatically is t.. 2012. 11. 7.
두 좌표간 거리 구하는 메소드 출처 : http://cafe.naver.com/mcbugi/239292 두 좌표간 거리구하는 메소드입니다. #import /*좌표계 : WGS84좌표1 : _x1, _y1좌표2 : _x2, _y2*/- (double)getDistance:(double)_x1 y1:(double)_y1 x2:(double)_x2 y2:(double)_y2{double pi = 3.1415;double theta = _y2 - _y1;double distance = sin(_x1*pi/180.0) * sin(_x2*pi/180.0) + cos(_x1*pi/180.0) * cos(_x2*pi/180.0) * cos(theta*pi/180.0);distance = acos(distance);distance = distance.. 2012. 10. 20.
내 어플에 GameCenter (게임센터) 를 붙여보자 + 겜센터 스타일 노티도 띄워보자! 출처 : http://cafe.naver.com/mcbugi/126651 이번에 게임센터를 붙이면서 공부한내용을 블로그에 포스팅하면서 PDF로 만들어 보았습니다. 게임센터의 점수판(Leaderboard), 목표달성(Achivementboard) 를 붙이고,게임센터 로그인시 나오는 노티피케이션 스타일로 노티띄우는 법을 적어봤습니다. 공부하시거나 어플공부에 도움이 되셨으면 좋겠네요 :-)도움이 되셨으면 블로그에 리플도 하나 힘내라고 적어주시면 감사하겠습니다 ㅠㅠ http://lomohome.com/357 근데 만들어놓고 나니 뭔가 이미지는 많은데 내용은 별게 없네요;;;; ---------------------- 블로그의 내용 퍼서 붙여봅니다. -----------------------------------.. 2012. 9. 14.
MFMessageComposeViewController를 이용한 sms(문자) 보내기 출처 : http://blog.naver.com/konori?Redirect=Log&logNo=10144133208 문자 관련 앱이 기획되어 아이폰 SDK의 문자 보내기에 대해 알아보았습니다. 궁극적으로는 MMS를 보내보려 했지만검색결과 MFMessageComposeViewController를 통해서는 MMS보내기가 불가능하더라구요. 암튼 String기반의 SMS보내는 방법을 포스팅해보겠습니다. 1. MessageUI.framework를 추가합니다.2. 헤더파일에 아래와 같이 추가해줍니다. #import #import MFMessageComposeViewControllerDelegate 3. 직접 문자보내기가 불가능하기 때문에 아래와 같이 모달뷰로 메시지뷰를 띄워줍니다. MFMessageComposeVi.. 2012. 9. 13.
How to cross compile ffmpeg for iOS (iPhone and iPad) 출처 : http://blog.fh-kaernten.at/wehr/?p=1764 In one of my latest projects I needed some audio/video streaming capabilities for iOS driven devices. The first App. which we implemented was a audio/HDVideo low latency conference streaming application for smart phones. The second app was around MPEG-TS to Elementary Stream demuxer for some dreambox streaming fun The framework of choice is the swiss .. 2012. 9. 5.
iOS ffmpeg player (rtsp 플레이어) 출처 : http://bluexmas.tistory.com/277 ffmpeg 라이브러리를 이용해서 wowza서버를 사용하는 rtsp 플레이어를 제작해보았습니다. 소스는 iFrameExtractor 프로젝트에서 파일 오픈하는 부분을 rtsp 주소를 사용했고, ffmpeg 라이브러리 경로를 따로 설정해서 컴파일 했습니다. 설치한 ffmpeg 라이브러리가 ios용으로 컴파일 되어 있어서 시뮬레이터에서는 테스트 할 수가 없네요. iFrameExtractor 프로젝트는 ffmpeg 라이브러리만 사용했기 때문에 플레이는 되지만, 속도는 나오지 않습니다. OpenGL ES / SDL 라이브러리 이용해야 될 것 같네요. 출처 http://stackoverflow.com/questions/10518082/how-can.. 2012. 9. 5.
Objective-C에서 NSFileManger와 NSFileHandle을 이용하여 문자열을 파일로 저장하는 방법 출처 : http://blog.saltfactory.net/117 iPhone이나 Cocoa 애플리케이션을 개발하면 데이터 저장 방법에 대해서 고민을 하게 된다. 애플리케이션이 종 료했다가 다시 실행되었을 때 이전의 데이터를 다시 사용하고 싶기 때문이다. plist나 SQLite와 같은 저장 방법은 매우 효과적으로 구조화된 데이터를 저장하거나 읽어 올 수 있다. 애플리케이션이 크기 않거나 단순한 데이터를 저장하고 싶을 경우는 SQLite를 사용하지 않고 텍스트를 저장하거나 읽어올 수 있게 만들 수도 있다.이 때 사용할 수 있는 가장 기본적인 방법이 바로 파일을 이용하는 방법이다. plist도 파일로 저장하는 것이지만 plist 특징상 XML 형태로 저장이 된다. 이 포스트에서 설명하는 텍스트 저장 방법은.. 2012. 9. 4.
페북 Single Sign On 을 iOS앱에 적용하기 출처 : http://www.iosappdev.co.kr/iosappdev/?p=1652 그렇게 읽기 싫게 생긴 문서였는데 서문을 번역해서 집중도를 높인다음 브라우저 폰트키워서 차근히 읽어봤습니다. 간단하다 쉽다 좋다 무한반복. 다 읽어보니 정말 간단하더군요. 그럼 문서를 진짜 간단해 보이게 쓰던가. 그림도 한장 없고 말이야 쯧 Facebook Single Sign On Integration Summary Facebook iOS SDK를 다운로드 받는다. git hub에 소스까지 공개되어 있습니다iOS 앱 프로젝트에 포함시킨다 두가지 방법이 있는데 하나는 소스 폴더를 통채로 끌어다가 iOS앱 프로젝트에 포함시키는겁니다. 페북 SDK가 ARC를 지원하지 않기 때문에 iOS앱 프로젝트에서 ARC를 사용하면 .. 2012. 8. 8.
아이폰에서 통신 사업자 및 국가코드 알아 오기. 출처 : http://gyuha.tistory.com/418 이제는 SK에서도 아이폰이 나오니.. 슬슬 필요 하지 않을까 싶어서 적어 봅니다. 아래 코드를 이용하면, 핸드폰의 국제 설정이 아니라, 서비스의 위치로 사용 할 수도 있습니다. 먼저 프로젝트에서 CoreTelephony.framework를 추가해 줍니다. 그리고 아래와 같은 코드를 넣어 주시면 됩니다. #import #import CTTelephonyNetworkInfo *networkInfo = [[[CTTelephonyNetworkInfo alloc] init] autorelease];CTCarrier *carrier = [networkInfo subscriberCellularProvider]; // 사업자 이름 알아오기NSString *c.. 2012. 8. 4.