すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:SDK の使用

最終更新日:Feb 04, 2026

MSS SDK を追加した後、SDK を使用する前にプロジェクトの構成が必要です。

説明

2020 年 6 月 28 日以降、mPaaS は 10.1.32 ベースラインのメンテナンスを終了しました。10.1.68 または 10.1.60 ベースラインシリーズをご利用ください。ベースラインをスペックアップするには、「mPaaS 10.1.68 Upgrade Guide」または「mPaaS 10.1.60 Upgrade Guide」をご参照ください。

前提条件

SDK バージョン 10.1.32 以降を使用していることを確認してください。

説明

現在の SDK バージョンは、mpaas_sdk.config ファイルで確認できます。

iOS查看SDK版本

プロジェクトの構成

プロジェクト内に meta.config ファイルが存在することを確認してください。このファイルには、Sync サービスのエンドポイントやポートなどの構成情報が含まれています。

  • 最新のプラグインを使用して Sync SDK を追加した場合、このファイルは自動的に生成されます。

  • プロジェクト内に meta.config ファイルが存在しない場合、

    コンソール > コード管理 > コード構成 ページにアクセスし、.config 構成ファイルをダウンロードします。その後、ファイル名を meta.config に変更し、プロジェクトに追加してください。

    meta_config

旧バージョンからのスペックアップに関する注意事項

10.1.32 より後のバージョンでは、DTSyncInterface クラスに対して Category ファイルが不要になりました。代わりに、中間レイヤーが meta.config ファイルから構成を読み取ります。スペックアップ後は、プロジェクト内のレガシーな構成を確認し、削除してください。

配置工程

コード例

同期イベントをリッスンするには、クラスを作成します。RAM 常駐型サービスが、Sync メッセージを継続的にリッスンするのに最適です。以下の例では、同期イベントをリッスンするために MySyncService クラスを作成しています。

同期イベントをリッスンする前に、ビジネス ID 名を定義します。この名前は、データ同期コンソール内の同期構成 ID に対応します。このパラメーターにより、クライアントがサービスに対して識別されます。以下の例では、ビジネス ID 名は SYNC-TRADE-DATA です。

#import <MPMssAdapter/MPSyncInterface.h>
#define SYNC_BIZ_NAME @"SYNC-TRADE-DATA"

@implementation MySyncService
+ (instancetype)sharedInstance
{
    static MySyncService *bizService;

    static dispatch_once_t llSOnceToken;

    dispatch_once(&llSOnceToken, ^{

        bizService = [[self alloc] init];
    });
    return bizService;
}

-(instancetype)init
{
    self = [super init];
    if (self) {
        [MPSyncInterface initSync];
        BOOL registerSingleDeviceSync = [MPSyncInterface registerSyncBizWithName:SYNC_BIZ_NAME syncObserver:self selector:@selector(revSyncBizNotification:)];
        [MPSyncInterface bindUserWithSessionId:@"SESSION_DEMO"]; // User はコンソールからコマンドを送信する際に必要な userId に対応し、MPaaSInterface の userId 関数の値と一致する必要があります。sessionId はクライアントの権限付与トークンです。userId および sessionId はユーザーのログイン時に返されます。いずれかの値が変更された場合は、この関数を再度呼び出して持続的接続を再確立してください。
    }
    return self;
}

-(void)revSyncBizNotification:(NSNotification*)notify
{
    NSDictionary *userInfo = notify.userInfo;
    dispatch_async(dispatch_get_main_queue(), ^{
        // ビジネスデータを処理します
        [MySyncService handleSyncData:userInfo];
        // ビジネスデータの処理が完了したことを Sync SDK に通知するためのコールバックを行います。
        [MPSyncInterface responseMessageNotify:userInfo];
    });
}

+(void)handleSyncData:(NSDictionary *)userInfo
{
    NSString * stringOp = userInfo[@"op"];
    NSArray *op = [NSJSONSerialization JSONObjectWithData:[stringOp dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil];
    if([op isKindOfClass:[NSArray class]]){
        [op enumerateObjectsUsingBlock:^(NSDictionary * item, NSUInteger idx, BOOL *stop) {
            if([item isKindOfClass:[NSDictionary class]]){
                NSString * plString = item[@"pl"];// ビジネスデータペイロード
                if(item[@"isB"]){
                    NSData *dataPl = [[NSData alloc] initWithBase64EncodedString:plString options:kNilOptions];
                    NSString *pl = [[NSString alloc] initWithData:dataPl encoding:NSUTF8StringEncoding];
                    NSLog(@"biz payload data:%@,string:%@",dataPl,pl);
                }else{
                     NSLog(@"biz payload:%@",plString);
                }
            }
        }];
    }
}

-(void)dealloc
{
    BOOL unRegisterSingleDeviceSync = [MPSyncInterface unRegisterSyncBizWithName:SYNC_BIZ_NAME syncObserver:[MySyncService sharedInstance]];
    [MPSyncInterface removeSyncNotificationObserver:self];
}
@end