반응형

델파이에서 Project - Options - Orientation에서 Enable custom orientation에서 Landscape 를 체크 후

Mac OS 배포 시에 다음과 같은 에러가 난다면

 

ERROR ITMS-90474: "Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,UIInterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. Found 'UIInterfaceOrientationLandscapeRight' in bundle 'com.test.test'."

다음과 같이 해보자

 

Project - Options - Version Info에 들어가서 밑에 영역에서 오른쪽 키 클릭 - Add Key 

 

 

 

 

UIRequiresFullScreen 

 

UIRequiresFullScreen를 넣어 주고 True로 값을 준다

그리고 Save를 눌러 적용 시킨 후 다시 배포를 해보자.

반응형
반응형

IOS InappPurchase in delphi...

 

델파이 환경에서 IOS 비소모성 상품 인앱 결제를 구현해보겠습니다.

 

애플 App Store Connect 에서 앱을 등록 후 

 

앱 내 구입 - 관리에서 상품을 등록해줍니다.

여기서 제품 ID가 중요합니다.

 

테스트 하기 위해선 Sandbox에 등록을 해야 합니다.

이렇게 해야 과금 없이 테스트로 진행할 수 있습니다.

이것 역시 App Store Connet - 사용자 및 액세스 - 메뉴 하단 Sandbox - 테스터

사용자를 등록합니다. 단, 기존에 Apple 에 등록되어 있는 계정과 중복되어선 안됩니다!

 

위와 같이 등록을 해주시고 코드를 이제 살펴보겠습니다.

우선 델파이에서 인앱 컴포넌트를 추가합니다.

검색이 안되는 경우 맨위 상단 uses 절에 FMX.InAppPurchase을 추가합니다.

델파이에서 컴포넌트 추가

procedure TMainForm.iosInAppPurchase(Sender: TObject);
begin
  InAppPurchase1.ProductIDs.Add('Test'); // 등록한 제품 ID
  InAppPurchase1.OnSetupComplete := InAppPurchaseSetupComplete;
  InAppPurchase1.SetupInAppPurchase;
end;

procedure TMainForm.InAppPurchaseSetupComplete(Sender: TObject);
begin
  InAppPurchase1.QueryProducts;
  InAppPurchase1.RestorePurchasedProducts;
end;

저같은 경우 위와 같은 함수를 만들어서 처음 FormCreate 시 실행하게 하였습니다.

여기서 RestorePurchasedProducts을 참고하셔야 합니다.

안드로이드 같은 경우 알아서 재구매를 해주지만 IOS 같은 경우 비소모성 상품인 경우 위와 같이

RestorePurchasedProducts를 호출하여 결제 여부를 확인해줘서 이미 결제했을 경우 결제 처리가 됩니다.

 

{IFDEF IOS}
  try
    if InAppPurchase1.IsSetupComplete then
    begin
      if InAppPurchase1.IsProductPurchased('TEST') then
        begin
          결제 성공 시 이동
        end
      else
        begin
          if InAppPurchase1.CanMakeInAppPurchases then
             begin
                 InAppPurchase1.PurchaseProduct('TEST');
             end;
        end;
    end;
  except
    on e: Exception do
    begin
      ShowMessage(e.Message);
    end;
  end;
{ENDIF}

IsSetupComplete을 통해 Boolen값을 반환 받은 뒤

IsProductPurchased으로 이미 구입이 된 상품이면 다음을 처리하고 그렇지 않은 경우

CanMakeInAppPurchases 처리 후 PurchaseProduct('제품 ID')로 결제 루틴에 들어간다.

 

[참고] http://docwiki.embarcadero.com/RADStudio/XE7/en/Using_the_iOS_In-App_Purchase_Service#Prerequisites

[참고] http://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_the_iOS_In-App_Purchase_Service

반응형
반응형

델파이 환경에서 IOS 연동하여 개발을 할 수 있게 환경을 셋팅해보겠습니다.

우선 같은 네트워크 안에 있는 MacOS와 연결을 해야 합니다.

 

델파이 설치 경로에 있는 PAServer를 MacOS로 옮겨 맥북에서 설치를 하셔야합니다.

저 같은 경우에는 (C:\Program Files (x86)\Embarcadero\Studio\21.0\PAServer)에 PAServer21.0.pkg 파일을

옮겨서 맥북에서 설치를 하였습니다.

 

(※주의 MacOS와 PAServer 간의 버전이 일치하지 않을 시 Mac에서 프로그램이 반응하지 않을 수 있습니다.

이런 경우, 엠바카데로 사이트에가서 버전 호환을 체크해야 합니다.)

 

델파이 상단 메뉴 Tools - Options - Deployment - Connection Profile Manager 로 들어가서 Add를 누릅니다.

 

Add 눌렀을 시 화면

위와 같이 Profile name을 입력해 줍니다.

 

 

해당 MacOS IP번호가 Port번호를 입력 후 Test Connection해서 연결을 확인 합니다.

 

Mac OS와 연결 성공

이렇게 성공이 되면 이제 기기를 연결해서 델파이에서 인식하게 해줘야 합니다.

 

이후에는 애플 개발자 사이트에서 사용자기기 등록 및 인증서 등록을 해줘야 델파이 쪽에서 인식해서 테스트 및 배포가 가능합니다!

 

[환경]

Window 10

Delphi 10.4.2

PAServer 21.0

macOS BigSur 11.2

 

반응형

+ Recent posts