Updating Settings at Runtime

(Optional) To update application settings, for both the client and the SAP Mobile Platform Server, use OData SDK.

Updating the Application Settings

(Optional) Get and update the application settings using the following code:
//////Get settings
SMPAppSettings  *l_appsettingsObj = [SMPAppSettings initializeWithConnection:l_clientconn userName:UserName password:Password];
    NSDictionary *dct=[l_appsettingsObj getConfigPropertyMapWithError:&error];
NSLog(@"Properties - %@",dct);

//Update settings

 SMPAppSettings  *l_appsettingsObj = [SMPAppSettings initializeWithConnection:l_clientconn userName:rrUserName password:rrUserName];
    NSMutableDictionary *dct=[NSMutableDictionary dictionary];
    ////////SET APNS device token/////////
    NSString *token;
    if (deviceToken1 != nil) {
        token = [NSString stringWithFormat:@"%@",deviceToken1];
        token = [token stringByReplacingOccurrencesOfString:@"<"
                                                 withString:@""];
        token = [token stringByReplacingOccurrencesOfString:@">"
                                                 withString:@""];
    }else token = @"";
    
    
    [dct setValue:token forKey:@"d:ApnsDeviceToken"];
   
    [dct setValue:@"1.0" forKey:@"d:ApplicationVersion"];
    [dct setValue:@"true" forKey:@"d:CapabilitiesPasswordPolicy"];
        
    [dct setValue:@"Custom 1" forKey:@"d:CustomCustom1"];
    [dct setValue:@"Custom 2" forKey:@"d:CustomCustom2"];
    [dct setValue:@"Custom 3" forKey:@"d:CustomCustom3"];
    [dct setValue:@"Custom 5" forKey:@"d:CustomCustom4"];

    [dct setValue:@"9876512345abcdefgh" forKey:@"d:DeviceIMSI"];
    [dct setValue:@"5" forKey:@"d:DeviceModel"];
    [dct setValue:@"100" forKey:@"d:DevicePhoneNumber"];
    [dct setValue:@"6.1" forKey:@"d:DeviceSubType"];
    
    [dct setValue:@"iPhone" forKey:@"d:DeviceType"];
    // [dct setValue:@"" forKey:@""];
    NSError *error;
    BOOL setPropError=[l_appsettingsObj setConfigProperty:dct error:&error];
    if(setPropError){
        NSLog(@"Set User Property failed with error message - %@. \n Following are the properties values sent to the server:- \n %@", error, dct);
    }else{
        NSLog(@"Set User Property completed without any error. \n Following are the properties values sent to the server:- \n %@", dct);

Downloading Customization Resource Bundles

(Optional) Download customization resource bundles as defined in SAP Mobile Platform Serverusing the following example code:

NSError* _errorWhileFetchingID = nil;
SMPAppSettings *appSettings = [SMPAppSettings initializeWithConnection:l_clientconn userName:UserName password:Password];
NSString *bundleId = [appSettings getConfigProperty:@"d:CustomizationBundleId"
error:&_errorWhileFetchingID];
if (!_errorWhileFetchingID)
{          
 NSError* _errorWhileFetchingBundle=nil;
 NSData* bundle = [appSettings getCustomizationResourceBundleWithCustomizationResource:bundleId
 error:&_errorWhileFetchingBundle];
 } 
//bundleId can be set to bundle name (fetches the specified bundle) or nil (fetches the default bundle selected)

Getting the Push Endpoint

(Optional) Retrieve the push endpoint URL to register for push notification using the following example code:
NSString* pushEndpoint = [appSettings getPushEndpointWithError:nil];