XCODE2011.05.16 00:42

기본 문법 #1

[object message:parameter];

//C style

DrawMyGradient(myView, aquaGradient, 0.0, 1.0, YES);

//Objective - c

[myview drawMyGradient:aquaGradient formValue:0.0 toValue:1.0 opaque:YES];


-(void)drawMyGradient:((CGGradientRef)gradient fromValue:start toValue:end opaque:opaque  //메소드 선언


기본 문법#2

//C Style

SubStringFormTo(sourceStr, &destStr, 2, 5); //위에서 타입을 정하고 메모리 얼록하고 여기다가 넣어달라

//O

NSString *destStr = [sourceStr subStringFrom:2 to:5];

long hash = [[sourceStr subStringFrom:2 to:5] hash]; //hash라는 메소드를 또 던진다


-(NSString *)subStringFrom:(int)from to:(int)to


오브젝트의 생성과 소멸

리테인 카운트 관리    //생성시점과 소멸시점을 관리

//person 클래스의 me 오브젝트를 만들고 없애기

Person *me = [[Person alloc] init];초기화     //리테인 카운트 1 생명줄!

[me retain];                                             //리테인 카운트 2

[me release];                                          //리테인 카운트 1

[me release];                                         //리테인 카운트 0

alloc -> release 해줄 필요, retain 해주지않은건 release 해줄 필요가없음


클래스 선언

.h 확장자를 가지는 파일

//헤더의 시작 interface  Person 클래스이름 NSObject는 슈퍼클래스

@interface Person : NSObject <NSCopying> {    //person은 NSObject의 서브클래스

int age;                          //instance변수 IVAR

 NSString *name;

}


-(void)singAsong:(Song *)song; //메소드선언 리턴타입 보이드 매개변수로 Song을 받는다

@end


클래스의 구현

.m 확장자를 가지는 파일


@implementation Person


-(void)singAsong:(Song *)song

{                                                       //cocoa object

NSlog(@""&@ can sing a song", name);      //NSlog가 있고 C에있는 printf와 유사하다, 중간중간에 token을 사용할 수 있다. 

}

@end


코딩 규약 - 이름 짓기

첫 글자를 대문자로

TheSinger.proj   Person.h / Person.m


nameOfPerson

ageOfPerson

addressOfPerson

//매개변수이름도 첫글자 소문자로,


-(void)singASong:(Song *)song


아이폰은 singleWindow




출처 : http://blog.naver.com/PostView.nhn?blogId=naoh14&logNo=10100421043

'XCODE' 카테고리의 다른 글

아이폰 개발 Xcode 기본문법 #1,#2  (0) 2011.05.16
xcode에서 iphone app 이름 변경  (0) 2011.04.09
Xcode 삭제  (0) 2011.04.09
[Objective-C] Xcode프로젝트 창  (0) 2011.04.09
[펌] Xcode 에 Subversion 적용하기  (0) 2011.04.09
XCODE용 디버그 메크로  (0) 2011.04.09
Posted by 오늘마감

출처 :  http://mystria.egloos.com/4387235

 

 

kabook 추가 : 압축 및 작업은 Mac에서 해야함

 

간략하게 정리..

1. 구현한 프로젝트를 "Simulator|Debug"가 아니라 "Device|Release"로 변경. Build를 수행함.

2. Project폴더의 "build > Release-iphoneos"에 들어가면 "프로젝트명.app"파일이 있는데 확장자는 표시되지 않음. 실제 Device와 연결이 되지 않아서인지 수행 불가 표시가 붙어있음.

3. 임의의 폴더를 생성하고, 그 안에 Payload라는 폴더를 생성. "프로젝트명.app"파일을 Payload폴더에 넣는다. "iTunesArtwork"는 "512*512"크기의 일반 png파일인데 아이튠즈를 실행시켰을때 표시되는 아이콘 모양인것 같다. iPhone에 올렸을 때 보여지는 아이콘은 따로 프로젝트에서 설정되는듯 하며, 따라서 "프로젝트명.app"파일 안에 포함되게 된다. "iTunesMetadata.plist"는 아이튠즈에 올렸을 때 표시되는 카테고리라든지 제작자같은 정보이다. 없어도 무방하다.
이 3개 중에 Payload폴더와 app파일만 있으면 된다.

4. 위 3가지 파일을 압축하게 되면 "Archive.zip"이 생성되는데, 이를 "아무이름.ipa"로 바꾸면 ipa파일 생성완료이다.

5. 이것을 iPhone에 올리는 것은 탈옥한 폰이어야 가능하며, 아이튠즈에 드래그하여 추가 후 동기화 시키는 방법과, "iPhone > var > mobile > Library > Downloads"에 복사 후 "Installous"를 이용해 설치하는 방법등을 통해 설치가 가능하다.

6. 완성

 

 



출처 : http://blog.naver.com/PostView.nhn?blogId=kabook&logNo=80122590217
Posted by 오늘마감

아이폰 용 애플리케이션을 제대로 개발하려면 애플 개발자 센터에 개발자로 등록을 해야 한다.

 

솔직히 이 과정이 짜증이 나기도 하지만 무쟈게 복잡하다. 정리해 두지 않으면 휘발성 메모리에서 훌훌 날아가 버릴 것 같아 이 참에 문서화 해둔다.

 

개발자 등록을 하지 않는다고 SDK를 다운로드 받는 데 제약이 있는 건 아니다.

 

Xcode 등 개발 환경을 못 쓰는 것도 아니다.

  

애플리케이션 개발 자체에 제약을 받는 것도 아니다.

 

그럼 뭐 하러 그 짜증나고 복잡한 짓을 하냐고?

  

개발자로 정식 등록하지 않으면 하다 못해 자신의 기기라 하더라도 자신이 개발한 애플리케이션조차 설치를 못하기 때문이다.

  

개발 단계에서는 시뮬레이터를 통해 시험 및 디버깅을 할 수 있지만 기기 자체에 설치해보려면 어쩔 수 없이 개발자로 등록해야 한다는 거다.

  

http://developer.apple.com/iphone/program

  

  

여기 가서 Enroll Now 버튼을 누질러 주시는 걸로 개발자 등록 과정이 시작된다.

  

한 걸음씩 가보자.

  

1. 개발자 등록

   

  

  

이제 대망의 아이폰 개발자로 등록하는 거다. 컨티뉴~~~

  

  

기존 애플 ID를 사용하거나 새로 만들어야 한다. 세금 문제를 고려해 따로 만들기를 권하는데 난 걍 기존 ID 썼다.

  

개발자로 등록하려면 개인의 경우 연간 $99를 내야 한다. (기업은 더 비싸다.) 인증을 위해서라도 어쩔 수 없는 선택이니 투덜거릴 거면 개발 안 하면 된다.

  

  

하루 이틀쯤 지나면 메일로 활성화 코드(activation code)가 날라온다.

  

  

등록하고 나면 드디어 개발자 사이트가 열린다.

  

  • Xcode - 매킨토시 Objective-C 통합 개발환경 (아이폰 포함)
  • iPhone Simulator - 아이폰이 없어도 시뮬레이터를 통해 개발한 애플리케이션을 실험 및 디버깅 할 수 있다
  • Instruments - 디버거와 프로파일러가 포함돼 있다
  • InterfaceBuilder - GUI 디자인 환경으로 직접 코딩을 하지 않고도 손쉽게 뷰 디자인을 할 수 있다. 특이한 건 VisualStudio 등 여타 IDE내 디자이너처럼 코드를 자동 생성하는 게 아니라 아예 객체(objects)를 인스턴스화해서 냉동실에보관(freeze)하는 구조라는 거다. 애플의 소프트웨어 최적화 신화의 근간이 아닌가 싶다.
  • 나머지는 모두 레퍼런스 자료들이다. 배터지게 읽거나 보고도 남을 정도로 넘쳐난다. 물론, 다 영어다. (근까, 우린 영어 공부 안하면 뭘 해도 먹고 살기 힘들다. 특히, 영어 공부 안하고 한글화를 기다리는 호모 사피엔스는 늘 뒤쳐질 수 밖에 없는 현실이다.구실 찾지 말고 걍 영어 공부하는 게 상책이다.)

  

2. 개발 인증서 발급 받기

  

인증서는 개발자가 애플리케이션에 사인을 하는 것과 같다. 어떤 넘이 만든건지 전자 꼬리표가 따라다닌다는 거다. 금융 거래 할 때공인인증서를 통해 신분을 증명하는 절차와 다를 게 없다. 이 과정이 없다면 게나 고동이나 익명으로 애플리케이션을 개발하고 악성코드를 심어둘 수도 있으니 당연한 절차라 할 수 있다.

  

인증서는 개인 키(private key)와 공개 키(public key)로 구성된다. 개인 키는 개발자 혼자 꿍쳐 두는 열쇠고 공개 키는 개인 키로 암호화된 디지털 데이터를 풀기 위해 공개적으로 배포하는 열쇠다.

  

예컨대, 중요한 워드 문서 하나를 대두족장의 개인 키로 암호화해서 대두족장의 공개 키와 함께 배포하면 오로지 대두족장의 공개키로만 암호화를 풀 수 있다는 거다. 소두족장이란 넘이 이 문서에 장난질을 하고 대두족장의 문서인 것처럼 배포를 하면? 개인키로 암호화했던 데이터와 다르기 때문에 공개 키와 아귀가 맞지 않게 된다. 근까, 대두족장 본인이 사인하지 않은 장난질 문서를누군가 '대두족장이 서명한 문서'로 오인할 가능성이 없다는 말이다. 서명 위조도 하는데 뭐 그까짓 게 안 되겠냐고? 해 보시라.128비트 쯤 되는 키를 깰만한 알고리즘 짱구굴릴 수 있으면 (이 따위 짓이 가능하다고 생각한다면 24같은 드라마나Swordfish 같은 영화 넘 많이 본거다ㅡ.ㅡ) 워렌 버핏 부럽지 않은 부자… 아니 세계 정복 야심도 키울 수 있을 거다.(아마 빈 라덴한테 납치될 지도 모른다…쿨럭~)

  

데이터 보안을 위해 대두족장과 소두족장이 손잡고 일할 수도 있다. 대두족장의 개인 키 + 소두족장의 공개 키로 문서를 암호화 해대두족장이 소두족장에게 메일로 보낸 다음 소두족장의 개인 키 + 대두족장의 공개 키로 풀어 보면 전송 과정에서 데이터가왜곡되거나 변질되지 않았는지 확인이 가능하다는 거다. 예컨대, 0100…..0111 로 보냈으면 당근 도착 후 까봐도0100…0111 이어야 한다는 거다. 0111….1010 따위로 바뀌어져 있다면 껍데기는 그럴 듯 해 보여도 중간에 누군가장난질을 한 거라는 말이다. 보안은 유지하면서도 대두족장과 소두족장은 자신의 도장(개인 키)를 외부에 공개할 필요가 없다. 달랑공개 키만 주고 받으면 (개인 키와 맞물리는 열쇠) 되기 때문이다.

  

그럼 아이폰에서는 왜 쓰냐고?

  

개발자는 개인 키로 애플리케이션에 서명을 하고 공개 키와 함께 설치를 하면 아이폰에서 그 공개 키로 개발자의 신분을 확인한 다음애플리케이션을 실행한다. 분명 서명한 넘은 대두족장인데 사인이 어딘가 짝퉁스럽다면? 글타. 실행 안 된다.

  

아리까리하다면 걍 아이폰 사용자의 안전을 위한 장치라고 생각하면 그만이다.

  

근데 인증서를 지 혼자 만들어 지 혼자 쓰면 애플이 확인할 길이 없다. 그래서 인증서는 공신력 있는 기관에서 확인을 받아야 한다.동사무소 가서 인감도장 등록하는 과정이라 생각하면 된다. 이른바 CSR(certificate signaturerequest)이라는 걸 동사무소(이 경우는 애플)에 제출해야 하는데 이게 바로 개발자의 공개 키가 된다. (과거 사이트 운영할때 이 과정 지랄 맞게 복잡했는데 요즘은 손 안 대고 코 푸는 수준이다ㅠ.ㅠ)

  

개인 키 및 공개 키(CSR)는 맥의 키체인 유틸리티로 생성할 수 있다.

  

메뉴에서 '키체인 접근 -> 인증 지원 -> 인증 기관에서 인증서 요청'을 순서대로 클릭해 다음처럼 인증 정보를 입력하고 디스크에 저장한다.

  

  

디폴트로 키 크기가 2048비트, RSA 알고리즘의 키를 생성해 준다.

  

2048비트로 암호화된 데이터를 깨는 해커는 영화에도 등장할 가능성이 없다. 외계인 캐릭터가 아닌 이상 이 따위 헛소리를 지껄이면 욕먹기 딱이니깐ㅡ.ㅡ

  

CSR을 저장했다면 개발자 프로그램 사이트로 가서 신청을 한다.

  

http://developer.apple.com/iphone/manage/overview/index.action

  

 

왼쪽 메뉴에서 Certificate을 클릭하면 뜨는 화면이다. 난 이미 인증서를 받았기 때문에 저렇게 나오지만 아직 인증서 발급을받지 않은 상태라면 CSR을 선택해 업로드 할 수 있는 화면이 뜬다. 개발용은 Development 화면에서, 배포용은Distribution 탭에서 처리할 수 있다. 

  

근까, 개발용이든 배포용이든 기본적으로 다음과 같은 화면에서 CSR을 업로드하게 된다. (다음은 배포용의 경우다.)

  

  

CSR을 업로드하면 승인할지 묻는 화면이 뜨는데 오케바리를 눌러주면 그만이다.

  

  

그런 다음 Download 버튼을 클릭해서 발급 받은 인증서를 개발자 맥에 다운받으면 된다.

  

인증서를 더블클릭하면 키체인 유틸리티가 떠서 '추가하까?' 물어본다. 추가 안할거면 이 개고생 할 이유가 없다. 당근이라고 클릭해 준다.

  

요기까지 하면 이제 대두족장의 맥북은 대두족장 전용 아이폰 개발 머신이 된다. 다시 말해, 이 개발 머신에서만 대두족장 신분으로개발한 애플리케이션을 디지털 서명하고 실행할 수 있다는 거다. 돈이 좀 튀어서 개발 머신이 두 세대 쯤 된다면 함께 생성한 개인키를 해당 개발 머신에도 복사해 주면 된다.

  

  

키체인에서 개인 키 클릭하고 내보내기 해서 2차, 3차, 4차…n차(오우~ 돈이 좀 많이 튀나 보지?ㅡ.ㅡ) 머신에 심어 주면 되신다고 하는데 나도 안 해봤으니 돈을 주체하지 못해서 맥을 2대 이상 굴리는 분은 해 보시라. 

3. 개발 기기 등록

  

개발자의 아이폰도 등록해 줘야 한다.

  

역시 개발자 프로그램 사이트 오른쪽 메뉴에서 Devices를 클릭한다.

  

  

Add Device 버튼을 클릭해 기기 이름(자신이 식별하기 위한 거니까 아무거나 쓰면 된다)과 Device ID를 입력해 준다. Device ID는 아이폰 연결하고 아이튠즈에서 확인할 수 있다.

  

4. 애플리케이션 ID 생성

  

왼쪽 메뉴를 보면 App IDs라는 게 있다. 기기 뿐 아니라 애플리케이션도 ID를 등록한다.

  

  

1Z3K14B128.so.what

  

애플리케이션 ID는 두 부분으로 나뉘는데 앞의 암호 같은 부분이 번들 시드(bundle seed)라는 걸로 애플이 알아서 만들어주는 거고 나머지는 개발자가 입력한다. 애플리케이션마다 일일이 만들기 귀찮으면 와일드카드를 쓸 수도 있다.

  

  

와일드카드를 쓰면 개발할 때마다 일일이 신경 쓰지 않아서 편하겠지만, Push Notification 기능을 사용할 수 없다고경고한다. 푸시는 딱 꼬집어 그 넘과만 연동돼야 하기 때문에 구체적으로 애플리케이션 ID를 만들어줘야 한다는 거다.

  

5. 개발용 프로비전 생성

  

프로비전이란 앞에서 마련한 디지털 신원 확인 데이터(개발 인증서, 기기 ID, 애플리케이션 ID 등)를 한 데 묶은 패키지라 할수 있다. 이걸 개발용으로 쓰려는 아이폰에 깔아주면 그제서야 개발용 아이폰이 완성되는 거다. 개발자의 인증서로 디지털 서명이 돼있고, 프로비전에 포함된 기기 ID와 실제 아이폰 ID가 동일해야 하며, 애플리케이션 ID도 일치해야 애플리케이션이 실행된다.(배포할 때는 모든 기기에서 쓸 수 있어야 하기 때문에 애플리케이션 ID 정보는 빠진다.)

  

  

NewProfile 버튼을 클릭해 프로파일 이름을 입력하고 인증서를 선택한 다음 애플리케이션 ID 및 사용 기기를 골라 Submit해주면 Download할 수 있는 화면이 나오고 *.mobileprovision 이라는 파일을 다운로드 받게 된다. 이걸더블클릭하면 Xcode Organizer가 뜬다. 프로비전 파일을 my iPhone에 드래그해주면 개발자의 아이폰에 설치가된다.

  

  

5. 프로젝트 설정

  

아이폰에 프로비전을 설치했으면 프로젝트에서도 궁합을 맞춰줘야 한다. 다음 화면은 개인적으로 Stanford University의아이폰 애플리케이션 개발 강좌를 따라해보며 만든 Stalker란 프로젝트의 Info 화면이다. Xcode의 Project메뉴에서 Edit Project Settings를 클릭하고 Build 탭을 누르면 Code Signing Identity 항목을볼 수 있다. Any iPhone OS Device를 클릭하면 다음과 같은 화면이 뜬다.

 

*참고로 영어가 부담스럽지 않은 분이라면 아이튠즈에서 무료로 볼 수 있는 Stanford University의 iPhoneApplication Programming 강좌를 강추한다. 어떤 책 보다도 감 잡기 쉬울 거다. (특히, 질의응답을 형식이아닌 필수 요소로 생각하는 외넘들의 대학 강의 모습에 감동 받을 기회가 되기도 한다…쿨럭~)

  

  

여기서 원하는 프로비전을 선택해 주면 된다. (구체적으로 만든 애플리케이션 ID가 아니라 와일드카드를 써서 퉁친 애플리케이션ID라면 여러 프로젝트에서 공용으로 쓸 수 있다. 근까, 공부하는 중이라 프로젝트를 남발할 게 뻔하다면 와일드카드 애플리케이션ID를 만들어 둬야 생고생 안 한다.)

  

여기까지 마치고 아이폰 연결한 다음 프로젝트를 실행하면 (시뮬레이터가 아닌 Device를 타겟으로 설정해야 한다) 짜잔~ 아이폰에서 프로그램이 뜨는 걸 목도할 수 있다.



출처 : http://blog.naver.com/PostView.nhn?blogId=knifeven&logNo=130095318358
Posted by 오늘마감
개발한 어플에서 sqlite3 를 사용하기 위해서는 /usr/lib 에 위치한 libsqlite3.dylib라는 동적 라이브러리 파일을 링크 시켜야 한다.

1. Xcode 에서 Groups & Files 를 눌러 Frameworks 를 선택하고 Project 메뉴의 add to project 클릭

2. /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKS/iPhoneSimulatorX.Y.sdk/usr/lib 폴더의 libsqlite3.dylib 파일을 추가한다. 이 파일은 SQLite3 라이브러리의 가장 최신 버전 파일을 가리키는 링크 파일이다.

 

물론 디바이스로 테스트 할 경우에는 iPhoneSimulator.platform 대신 iPhoneOS.platform을 선택하면 된다.

메시지 창이 뜨면 Copy items into destination group's folder (if needed) 항목을 체크하고,Reference Type 을 Relative to Current SDK 로 변경하고 추가 버튼을 누른다.

% Reference Type은 상대 경로로 하는 것이 링크가 깨질 확률이 낮고 좋다.

위와 같이 설정하고 나서 실제 sqlite3를 사용할 코드에서 다음을 import 하면 된다.

//#import "/usr/include/sqlite3.h" //기존에는 이렇게 했으나, ios4에서는 아래와 같이 해야하는 듯함.
#import  < sqlite3.h >

 


출처 : http://blog.naver.com/PostView.nhn?blogId=yesusok&logNo=50100610955
Posted by 오늘마감

 

작성 후 테스트 할 때는 꼭 볼륨을 키워놓고 테스트 하세요... ^^;


Create a View Based iPhone Application

First, create a view based iPhone application in XCode and add a button to your view that will play the sound. If you need a refresher on how to use Interface Builder to hook up controls check out my article on adding a slider control.

Add the Audio Toolbox framework

Drag in the Audio Toolbox framework into your frameworks group in XCode. Here is a video on how to quickly add frameworks in XCode if you need it: Quick Tip: Adding Frameworks Painlessly in XCode. Remember that the framework will be all one word with the .framework extension, AudioToolbox.framework.

Add a short wav file to your project

I used the website Joe’s Original Wave Files for this demo and found a nice laser sound to use. You can also buy the rights to use sounds in apps that you want to sell from websites like iStockPhoto.

Use Audio Services to play the sound

To keep things simple I put all the code that you need to play the sound in an IBAction called “shoot”.

-(IBAction) shoot{
 //Get the filename of the sound file:
 NSString *path = [NSString stringWithFormat:@"%@%@",
       [[NSBundle mainBundle] resourcePath],
       @"/jad0007a.wav"];

 //declare a system sound id
 SystemSoundID soundID;

 //Get a URL for the sound file
 NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];

 //Use audio sevices to create the sound
 AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);

 //Use audio services to play the sound
 AudioServicesPlaySystemSound(soundID);
}

That is it – pretty simple way to add some cool effects to your app.



출처 : http://blog.naver.com/PostView.nhn?blogId=yell301&logNo=130097056899
Posted by 오늘마감

티스토리 툴바