首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Cocos2d-x iOS 內購/登入接入流程:Apple 開發者後台配置與 SDK 整合

     編輯:程式設計綜合問答

Cocos2d-x (C++) 專案接入 Apple 正式環境內購 (IAP) 與 Game Center/登入,需完成Apple 開發者後台配置、Xcode 專案權限設定、C++/Objective-C++ 橋接層實作三大階段。

階段一:Apple 開發者後台

  1. App ID:啟用 In-App Purchase、Game Center 勾選。
  2. 內購產品:App Store Connect → 功能 → 內購項目 → 新增 (消耗型/非消耗型/訂閱),填寫產品 ID (如 com.game.coins100)、價格、截圖、審核資訊。
  3. 沙箱測試帳號:Users and Access → Sandbox Testers → 新增測試 Apple ID。
  4. 簽名憑證/描述檔:開發/發佈憑證、Provisioning Profile (含 IAP 權利)。

階段二:Xcode 專案配置

  • Targets → Signing & Capabilities → + Capability → In-App Purchase、Game Center。
  • Bundle Identifier 與 App ID 一致。
  • Info.plist 加入 NSAppStoreReceiptValidationURL (可選,自有伺服器驗證用)。
  • 階段三:C++/ObjC++ 橋接實作

    建立 IAPManager.mm (Objective-C++):

    #import 
    #import 
    
    class IAPManager : public SKProductsRequestDelegate, SKPaymentTransactionObserver {
    public:
        static IAPManager* getInstance();
        void requestProducts(const std::vector& productIds);
        void purchase(const std::string& productId);
        void restorePurchases();
        // 回呼介面
        std::function onPurchaseResult;
        
    private:
        SKProductsRequest* _request;
        // 實作 SKProductsRequestDelegate, SKPaymentTransactionObserver 方法
        // productsRequest:didReceiveResponse -> 解析 SKProduct 價格/描述回傳 C++ 層
        // paymentQueue:updatedTransactions -> 處理購買/恢復/失敗狀態,驗證憑證 (本地/伺服器)
    };
    

    C++ 層呼叫:

    IAPManager::getInstance()->requestProducts({"com.game.coins100", "com.game.gems50"});
    IAPManager::getInstance()->onPurchaseResult = [](bool ok, const std::string& msg) {
        // UI 顯示結果
    };
    

    關鍵注意事項

    • 憑證驗證:生產環境必須在自有伺服器端用 Apple 共用密鑰驗證 Receipt,防止本地破解。
    • 交易完成:[[SKPaymentQueue defaultQueue] finishTransaction:transaction] 必須在驗證成功後調用,否則交易卡在隊列導致重複提示。
    • 測試流程:真機登入沙箱帳號 → 下載 App → 測試購買/恢復 → 檢查伺服器收到 Receipt。
    • Game Center 登入:[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:...,成功後取得 playerID、alias 供遊戲邏輯使用。
    • 參考資源

      完整走一遍「後台配置 → Xcode 權限 → 橋接層 → 伺服器驗證」流程,即可穩健上線內購功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved