블로그 이미지
Sergio Donati Julyus

카테고리

분류 전체보기 (886)
[Apple] (156)
iDev (35)
iPeople (10)
iMac (14)
iDocument (16)
iMechine (6)
iApplication (17)
[DESKTOP] (64)
[DEVELOP] (36)
[FINANCE] (4)
[EPINEPHRINE] (60)
[ILLUST] (52)
[MEDIA] (86)
[NETWORKS] (69)
[OFFICE] (145)
[OPERATING_SYS] (70)
[SECURITY] (16)
[SYSTEM] (108)
[Equipment] (16)
Total
Today
Yesterday

iPhone용 Open Source 모음

2012. 3. 22. 19:57
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.



http://blog.naver.com/kimysaptec/130095894390


다음은 아이폰용 콘텐츠 과금에 관한 프로그램 구현 방법 설명 입니다.

 

제목: 애플사 결제를 통한 콘텐츠 과금하는 방법 In App Purchase

==============================================================

###(중요) 은행계좌가 사전에 등록 필수 --- 없으면 테스트 확인불가

(중요) 아이폰 설정/store의 계정 로그아웃(반드시) ---- 테스트 계정 사용을 위함

(중요) 상품 판매 지역 언어 일치 필수 --- 개발어플과 애플 iTunes Connect 사이트의 Manage Your Applications에서

(중요)애플 결제 얼럿창은 지연시간이 발생하여 느리게 표시 될 수 있음.(이유는 네트워크와 애플 서버의 영향인듯 함).

최대 15초까지 지연 발생 가능 확인 됨.

 

 

1. App ID 등록

가. http://developer.apple.com/ 접속 iOS Dev Center. 클릭

http://developer.apple.com/devcenter/ios/index.action

 

나. 로그인

다. 오른 쪽의  iOS Provisioning Portal  클릭하여 어플 인증파일을 만든다.

- New App ID 버튼 클릭

- 여기서 생성한 bundle ID가 중요하다. 반드시 생성 이름 기억한다.

예) com.testman.inappdemo

틀린예) com.testman.*

 

붙임) Enable In App Purchase는 기본으로 설정 됨<--- 2010년도에 정책이 바뀜

 

 

2. Provisioning Profile 생성

가. 왼쪽 메뉴 중에서 provisioning 선택

나. new Profile 버튼 클릭

-프로파일 이름을 생성하여 다운로드하고 더블클릭하여 Xcode에 등록 한다.

확인방법: Xcode에서 Window > Organizer 선택

provisioning profiles선택

마우스 오른쪽 버튼 클릭 > Reveal in finder

 

3. Xcode setting--개발 어플에서

위에서 작업한 App ID로 설정 함

 

 

4.. iTunes Connect 사이트에 환경 등록

(참고)iTunes Connect Developer Guide.

 

가. Manage Your Applications에서 어플등록

-테스트 동안에는 실행파일은 업로드 하지 않아도 됨

- 단지 Bundle ID는 위에서 생성한 App ID임

예) com.testman.inappdemo

 

나. 판매상품 등록 Manage Your In App Purchases

- 주의할것은 Product ID 임. --- 이 것은 프로그램에서 사용됨.(중요)

예) com.testman.inappdemo.001 또는 com.testman.inappdemo.itemone

단지 app ID + 상품코드 형식으로 해주면 된다.

 

-판매 상품 유형은 아래 3가지 유형중 하나 선택

보충 불가능  응용 프로그램 구입 기능은  번만 구입해야 하고, 동일한 iTunes Store 계정으로 인증된 여러 장비에 전송할 있는 항목입니다

  • 보너스 게임 레벨
  • 도시 안내 지도

보충 가능  응용 프로그램 구입 기능은 매번 구입해야 하고 무료로 다시 다운로드할 없는 항목입니다

  • 추가 체력
  • 추가 경험치

구독 구독 기간이 만료될 경우 다시 구입해야 하는 일회성 서비스입니다

  • 구독
  • 위치 서비스 구독

- Display Detail의 언어 선택과 Display Name 입력항목은 아이폰 결제화면 얼럿 창에 보여지므로

상품명으로 입력함. 그리고 Add This language 버튼을 클릭하여 등록해야 저장 됨

 

다. 상품테스트 유저 등록 Manage Users
-  아이폰에서 결제하는 방식이므로 로그인 이메일 계정으로 임으로 생성 함.

단지, 이미 iTunes 계정으로 등록 된 계정은 생성 하면 안됨.

실제 결제될 수 있음. 

 

 

5. 코딩

참고) In App Purchase Programming Guide  에서 “Adding a Store to Your Application” 내용

 

 

가. Xcode 개발 편집기에서 다음 프레임워크를 개발어플에 추가

StoreKit.framework

 

 

나. 결제 코딩파일에 추가(헤더와 델리게이트) 

#import <StoreKit/StoreKit.h>

 

 

@interface  :   <SKProductsRequestDelegate, SKPaymentTransactionObserver> {

}

 

다. 다음은 애플결제 이용가능 상태를 확인할 때 사용 함

 

if ([SKPaymentQueue canMakePayments])
{
   ... // Display a store to the user.
}
else
{
   ... // Warn the user that purchases are disabled.
}

 

라. 다음은 상품정보 유무확인시 사용함. 예)com.testman.inappdemo.001이 상품코드

 

 

- (void) requestProductData
{
   SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject: @"com.testman.inappdemo.001"]];
   request.delegate = self;
   [request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *myProduct = response.products;
    // populate UI
    [request autorelease];
}

 
마. (중요) 실제 상품결제 진행에 따른 결과 델리게이트 발생 시킴(프로그램 초기화나 로드시, 또는 결제버튼 클릭시 사용가능 함.)
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

 

바. (중요) 실제 상품결제 요청 ----결제 버튼과 연동해도 됨.

SKPayment *payment = [SKPayment paymentWithProductIdentifier:@"com.testman.inappdemo.001"];
[[SKPaymentQueue defaultQueue] addPayment:payment];

사. 다음은 결제 결과에 따른 델리게이트 임.

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
    for (SKPaymentTransaction *transaction in transactions)
    {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                [self failedTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:
                [self restoreTransaction:transaction];
            default:
                break;
        }
    }
}

- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
// Your application should implement these two methods.
   //생략가능 [self recordTransaction: transaction];
   //생략가능 [self provideContent: transaction.payment.productIdentifier];
// Remove the transaction from the payment queue.
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}
- (void) restoreTransaction: (SKPaymentTransaction *)transaction
{
    //생략 가능[self recordTransaction: transaction];
    //생략가능 [self provideContent: transaction.originalTransaction.payment.productIdentifier];
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}
- (void) failedTransaction: (SKPaymentTransaction *)transaction
{
    if (transaction.error.code != SKErrorPaymentCancelled)
    {
        // Optionally, display an error here.
    }
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}

 

 

이상으로 애플결제를 정리 합니다.






'[Apple] > iDev' 카테고리의 다른 글

Paul Hegarty @ iTunesU  (0) 2012.05.14
iPhone용 Open Source 모음  (0) 2012.03.22
Cocoa plotting framework for Mac OS X and iOS  (0) 2012.01.11
아이폰 OS 개발 자료 총정리  (0) 2012.01.09
레이아웃 황금분할?  (0) 2012.01.06
Posted by Julyus
, |
Posted by Julyus
, |
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

레이아웃 황금분할?

2012. 1. 6. 22:33
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.






In Order to Continue the Installation Please Close the Following Application: iTunes

I hit a small road bump while re-installing Xcode 4 after a clean install of Mac OSX Lion:

In order to continue the installation please close the following application: iTunes

I quit the application but the alert box did not go away. To the terminal…

Dauphin:~ james$ ps x | grep iTunes
  237   ??  S      0:00.29 /Applications/iTunes.app/Contents/MacOS/iTunesHelper.app/Contents/MacOS/iTunesHelper -psn_0_86037
13970 s000  S+     0:00.00 grep iTunes

Aha! The iTunes helper application was still running preventing the installation from continuing.

Dapuhin:~ james$ kill 237

Problem solved.

UPDATE:

Apple has released a delta update (4.1.1) to Xcode to fix this problem:

How nice of them.

Categories: Technical Solution.

Tags: 

Comment Feed

Posted by Julyus
, |


http://javastore.tistory.com/126

이런 개인적인 일들에 대해서 잘 포스팅 하지 않는데 저와 같은 문제를 가지고 계신 분들이 계실까봐 포스팅을 한번 해봅니다.

아마 iOS 개발자 등록시에 한방에 되지 않는 분들은 아마 개발자 등록시 입력했던 영문 이름과 카드에 이름이 달라서 Activation Code를 받고도 인증이 안되는 문제가 있었네요.

저역시 이런 문제가 있어서 인터넷에서 많이 본데로 Contect us  에 가서 문의를 남겼습니다. 그럼 이제 되겠지 했는데 왠걸 영어가 잔뜩 써있는 이런 메일이 왔네요.
==============================================
We are currently in the process of reviewing your iOS Developer Program and Safari Developer Program enrollment information and have found that the billing information entered during your iOS Developer Program and Safari Developer Program purchase does not match your enrollment information. Therefore, the activation of your Program has been placed on a temporary hold.
In order for us to verify your identity, please fax the following form along with a notarized copy of your government issued photo identification to us. Developers located in the US and Canada may fax their documentation to 1-877-838-1382. Developers located internationally may fax their documentation to 1-408-974-7683. When faxing this information, please include your Enrollment ID #XXXXXXXXXX.
We cannot activate your program if the verification documentation you provide us is not notarized or solicitor certified.
If you have any questions or need further assistance, please contact us.
Best regards,

Apple Developer Program Support
============================================== 
메일내용인 즉 인증이 되지 않으니 인증 될만한 것들을 요런 양식에 맞게 Fax로 보내라는 것이었습니다. 

 
나중에 알고 봤더니 개발자 등록때 이름과 카드 이름도 다를 뿐더러 온라인 애플스토어에서 iOS Developer Program을 구매할때 한글 이름으로 구매했더니 이렇게 더 복잡하게 됐네요...

즉 개발자 등록 이름 = 카드 이름 = 애플스토어 구매시 구매자 이름

뭐 하라는 데로 팩스를 보내도 되겠지만 엄청 겁나게 귀찮은 관계로 무작정 애플쪽에 전화를 걸었습니다. 애플스토어 고객센터에 가니까 가장 많이 보이는 전화번호 1544-2662 에 전화를 했습니다. 사실 이 전화번호는 기기에 대한 문의를 하는 곳이라고 하네요...;; 근데 걸었습니다.ㅋㅋ 한참 얘기를 들으시던 상담원 분은 이건 이쪽이 아니라고 하시면서 전화번호를 알려 주셨는데 이게 대박입니다.

080-860-9797
 이게 뭔가 봤더니 ios등록에 관한 일들만 하는 번호인것 같습니다. 오잉.. 이런게 있었나 하면서 전화를 거는데 엄청나게 말이 빠른 상담원 분이 받으시더군요.. 다행이 한국말을 하시긴 했지만 "나는 외쿡에 사는 한국 출신이야"라는 느낌을 풍기는 것이 아..이거 외국으로 전화를 걸었구나!! 감이 딱왔습죠~ㅋㅋ

그래서 그쪽에서 아이디 알려달라 해서 알려주니, 온라인 애플스토어에서 한글로 구매를 하셔서 글씨가 다 깨진다고..ㅋㅋ 잠시만 기다리라고 하더니 다 됐다고 하면서 이전에 받았던 Activation Code를 다시 클릭하면 인증이 된다고 ㅋㅋ 오예!!


정말 힘들게 인증 받았네요.... 저와 같은 일을 겪으시면 무조건 저 번호로 걸어보세요~ㅋㅋ 

이상 iOS 개발자 등록 삽질 이야기 였습니다~ㅋㅋ
Posted by Julyus
, |

간단한 초성검색기

2011. 10. 20. 15:25
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

최근에 달린 댓글

최근에 받은 트랙백

글 보관함