Announcement

Collapse
No announcement yet.

Application crashes when Activating IAP

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Application crashes when Activating IAP

    Hello All

    I'm trying to develop a menu that will support the In-App Purchases. I have followed Davision's example in creating the classes that will support the transaction. The problem is that the game crashes when i'm using these classes.

    I get this error message: [0035.41] Log: Game is crashing: UE3SYS:CRASH: appSigHandlerSimple

    I have done some reach and it turns out that this is caused by the low memory. however, this is how my scene looks right now, which is strange to say that i don't have enough memory.

    Click image for larger version

Name:	Scene_iap.jpg
Views:	1
Size:	28.1 KB
ID:	3253397

    I'm providing all necessary files below:

    Launch Log

    Code:
    [0011.50] Log: Log file open, 
    [0011.50] Log: No hashes are active, not initializing the SHA Verification system
    [0011.50] Init: BSD Sockets initialized
    [0011.50] Init: Language extension: INT
    [0011.50] Init: Version: 10900
    [0011.50] Init: Epic Internal: 0
    [0011.50] Init: Compiled (32-bit): Feb 18 2013 19:30:54
    [0011.50] Init: Changelist: 1537896
    [0011.50] Init: Command line: UEDIOSiap_teszt?quickstart=1?numplay=1
    [0011.50] Init: Base directory: 
    [0011.50] Log: This device has 1 core(s)
    [0011.50] Init: Presizing for 45000 objects not considered by GC, pre-allocating 5500000 bytes.
    [0011.50] Init: Object subsystem initialized
    [0011.50] Log: SystemSettings based on: SystemSettingsMobile
    [0011.50] Log: SystemSettings based on: SystemSettings
    [0011.50] Log: Shader platform (RHI): PC-D3D-SM3
    [0011.50] Log: iCloud disabled!
    [0011.50] DevHttpRequest: Creating FHttpRequestIPhoneImplContainer: 0x71f43c0
    [0011.50] Log: Creating FHttpResponseIPhoneImplContainer
    [0011.50] Log: This device has 314572800 max memory
    [0011.50] Log: High resolution timing is Disabled
    [0011.50] Log: MSAA is disabled, by choice
    [0011.50] Log: Setting contentScaleFactor to 2.0000 (optimal = 2.0000)
    [0011.51] Log: IPhone Back Buffer Size: 0 MB
    [0011.51] Log: Kicking off PhoneHome request in UE3InitializationComplete
    [0011.76] DevShaders: ... Loaded 531 shaders (7 legacy, 0 redundant)
    [0011.80] Init: Waited 0.015 sec for async package '..\..\UDKGame\CookedIPhone\Core.xxx' to complete caching.
    [0012.00] Init: Waited 0.052 sec for async package '..\..\UDKGame\CookedIPhone\Engine.xxx' to complete caching.
    [0014.24] DevOnline: Player testsandmad logged in, unique ID is G:1724652624
    [0014.24] DevShaders: ... Loaded 1003 shaders (192 legacy, 0 redundant)
    [0014.25] DevShaders: Shader cache for Engine contains 3 materials (0 redundant)
    [0015.37] DevShaders: ... Loaded 2 shaders (0 legacy, 0 redundant)
    [0015.37] DevShaders: Shader cache for UDKBase contains 1 materials (0 redundant)
    [0015.65] DevShaders: ... Loaded 218 shaders (0 legacy, 106 redundant)
    [0015.66] DevShaders: Shader cache for startup contains 8 materials (0 redundant)
    [0015.75] Init: Finished loading startup packages in 3.97 seconds
    [0015.81] Log: 45207 objects as part of root set at end of initial load.
    [0015.81] Log: 4989056 out of 5500000 bytes used by permanent object pool.
    [0015.82] Log: Initializing Engine...
    [0015.84] Warning: StaticLoadObject for SoundNodeWave EngineSounds WhiteNoise couldn't find object in memory!
    [0015.94] DevHttpRequest: Destroying FHttpRequestIPhoneImplContainer with Request NSObject = 0x1fbe530: 0x71f43c0
    [0015.94] DevHttpRequest: FHttpRequestIPhone::dealloc
    [0015.94] DevHttpRequest: Creating FHttpRequestIPhoneImplContainer: 0x71f43c0
    [0015.94] Log: Destroying FHttpResponseIPhoneImplContainer
    [0015.94] Log: Creating FHttpResponseIPhoneImplContainer
    [0015.98] Init: UEngine initialized
    [0016.25] Init: CoreAudioAudioDevice: Allocated 32 sources
    [0016.32] Init: AudioDeviceIPhone initialized.
    [0016.32] Init: Client initialized
    [0016.32] Log: FES2Viewport::FES2Viewport InWindowHandle is 1fcca60
    [0016.33] Log: Vendor: Imagination Technologies
    [0016.33] Log: Renderer: PowerVR SGX 535
    [0016.33] Log: Supports Shader Discard: TRUE
    [0016.33] Log: Supports Shader Bump Offset: TRUE
    [0016.33] Log: ES2 Texture Support [ - PVRTC - - ]
    [0016.33] Log: Driver Compiler? ... yes, Num Binary Formats = 0
    [0016.33] Log: Extensions: GL_OES_depth_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_half_float GL_OES_vertex_array_object GL_EXT_blend_minmax GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_map_buffer_range GL_EXT_read_format_bgra GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_texture_lod GL_EXT_texture_filter_anisotropic GL_EXT_texture_storage GL_APPLE_copy_texture_levels GL_APPLE_framebuffer_multisample GL_APPLE_rgb_422 GL_APPLE_sync GL_APPLE_texture_format_BGRA8888 GL_APPLE_texture_max_level GL_IMG_read_format GL_IMG_texture_compression_pvrtc 
    [0016.34] Log: GL_MAX_VERTEX_UNIFORM_VECTORS = 128
    [0016.34] Log: GL_MAX_VARYING_VECTORS = 8
    [0016.34] Log: GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 8
    [0016.34] Log: GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0
    [0016.34] Log: GL_MAX_TEXTURE_IMAGE_UNITS = 8
    [0016.34] Log: GL_MAX_FRAGMENT_UNIFORM_VECTORS = 64
    [0016.34] Log: GL_MAX_TEXTURE_SIZE = 2048
    [0016.34] Log: GL_MAX_VIEWPORT_DIMS = 2048
    [0016.34] Log: GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 2
    [0016.34] Log: GL_SUBPIXEL_BITS = 4
    [0016.34] Log: GL_MAX_VERTEX_ATTRIBS = 16
    [0016.34] Log: iOS device: iPhone4, OS version: 6.10
    [0016.34] Log: Mobile settings: SystemSettingsIPhone4
    [0016.34] Log: Viewport resolution: [960x640]
    [0016.53] Log: StartCompilingShaderGroup: StartupPackages
    [0016.53] Log: Compiled 36 Shaders in group StartupPackages
    [0016.53] Log: StartCompilingShaderGroup: UnGrouped
    [0016.53] Log: Compiled 73 Shaders in group UnGrouped
    [0016.53] DevOnline: Created named interface (RecentPlayersList) of type (Engine.OnlineRecentPlayersList)
    [0016.53] DevOnline: Created named interface (SuppliedUI) of type (OnlineSubsystemGameCenter.OnlineSuppliedUIGameCenter)
    [0016.53] ScriptLog: Loading McpServerBase McpConfigClass:IpDrv.McpServiceConfig
    [0016.54] ScriptLog: Loading McpServerBase McpConfigClass:IpDrv.McpServiceConfig
    [0017.74] Log: WarmShaderCache
    [0017.82] Log: WarmShaderCache:ShadersWarmed 7
    [0019.15] Log: WarmShaderCache
    [0019.60] Log: WarmShaderCache:ShadersWarmed 31
    [0019.62] Warning: StaticLoadObject for Class UTGame UTUIDataStore_StringAliasMap couldn't find object in memory!
    [0019.62] Warning: Failed to load GlobalDataStoreClass 'UTGame.UTUIDataStore_StringAliasMap'
    [0019.62] Warning: StaticLoadObject for Class UTGame UTUIDataStore_StringList couldn't find object in memory!
    [0019.62] Warning: Failed to load GlobalDataStoreClass 'UTGame.UTUIDataStore_StringList'
    [0019.62] Warning: StaticLoadObject for Class UTGame UTUIDataStore_Options couldn't find object in memory!
    [0019.62] Warning: Failed to load GlobalDataStoreClass 'UTGame.UTUIDataStore_Options'
    [0019.62] Warning: StaticLoadObject for Class UTGame UTUIDataStore_MenuItems couldn't find object in memory!
    [0019.62] Warning: Failed to load GlobalDataStoreClass 'UTGame.UTUIDataStore_MenuItems'
    [0019.62] Warning: StaticLoadObject for Class UTGame UTDataStore_GameSettingsDM couldn't find object in memory!
    [0019.62] Warning: Failed to load GlobalDataStoreClass 'UTGame.UTDataStore_GameSettingsDM'
    [0019.62] Warning: StaticLoadObject for Class UTGame UTDataStore_GameSearchDM couldn't find object in memory!
    [0019.62] Warning: Failed to load GlobalDataStoreClass 'UTGame.UTDataStore_GameSearchDM'
    [0019.62] Warning: StaticLoadObject for Class UTGame UTUIDataStore_StringAliasBindingsMap couldn't find object in memory!
    [0019.62] Warning: Failed to load player data store class 'UTGame.UTUIDataStore_StringAliasBindingsMap'
    [0019.62] PlayerManagement: Creating new player with ControllerId 0 (0 existing players)
    [0019.63] PlayerManagement: Successfully created new player with ControllerId 0: LocalPlayer_0 - inserted into GamePlayers array at index 0 (1 existing players)
    [0019.63] DevGFxUI: UGFxInteraction::Send - CALLBACK_ViewportResized
    [0019.63] Warning: StaticLoadObject for Class IPhoneDrv FlurryAnalyticsIPhone couldn't find object in memory!
    [0019.63] Warning: StaticLoadObject for Class IPhoneDrv FlurryAnalyticsIPhone couldn't find object in memory!
    [0019.63] Warning: StaticLoadObject for Class IPhoneDrv CloudStorageIPhone couldn't find object in memory!
    [0019.63] Warning: StaticLoadObject for Class IPhoneDrv CloudStorageIPhone couldn't find object in memory!
    [0019.63] DevConfig: GConfig::Find has loaded file:  SAVE\CloudStorage.ini
    [0019.64] DevNet: Browse: UEDIOSiap_teszt?Name=Player?Team=255?quickstart=1?numplay=1
    [0019.64] Log: LoadMap: UEDIOSiap_teszt?Name=Player?Team=255?quickstart=1?numplay=1
    [0019.64] DevGarbage: Collecting garbage
    [0019.65] DevGarbage: 18.247709 ms for realtime GC
    [0019.66] DevGarbage: 0.271250 ms for unhashing unreachable objects
    [0019.67] DevGarbage: GC purged 13 objects (1743 -> 1730)
    [0019.75] DevShaders: ... Loaded 137 shaders (0 legacy, 27 redundant)
    [0019.76] DevShaders: Shader cache for uediosiap_teszt contains 4 materials (0 redundant)
    [0019.97] Log: Game class is 'iAPGameInfo'
    [0019.99] Log: Primary PhysX scene will be in software.
    [0019.99] Log: Creating Primary PhysX Scene.
    [0020.02] Log: WARNING: Cooking Convex For uediosiap_teszt.TheWorld:PersistentLevel.StaticMeshActor_1.StaticMeshComponent_3 AdvIsl_assets.Meshes.Barrel (Scale: 1.000000 1.000000 1.000000) Please go and set PreCachedPhysScale on the mesh to have this scale for RunTime spawned objects.
    [0020.04] Log: WARNING: Cooking Convex For uediosiap_teszt.TheWorld:PersistentLevel.StaticMeshCollectionActor_0.StaticMeshActor_SMC_3 MapTemplates.SM_Template_Map_Floor (Scale: 1.000000 1.000000 1.000000) Please go and set PreCachedPhysScale on the mesh to have this scale for RunTime spawned objects.
    [0020.04] Log: Bringing World uediosiap_teszt.TheWorld up for play (0) at 2013.05.04-15.54.27
    [0020.10] Log: Bringing up level for play took: 0.137827
    [0020.15] DevDataStore: >> (iap2_0) PlayerController::PlayerWaiting:RegisterCustomPlayerDataStores (Player) LP:LocalPlayer_0
    [0020.15] ScriptWarning: Accessed None 'Profile'
    	UIDataStore_OnlinePlayerData Transient.DataStoreClient_0:UIDataStore_OnlinePlayerData_0
    	Function Engine.UIDataStore_OnlinePlayerData:OnLoginChange:0134
    [0020.15] ScriptWarning: Accessed None 'Profile'
    	UIDataStore_OnlinePlayerData Transient.DataStoreClient_0:UIDataStore_OnlinePlayerData_0
    	Function Engine.UIDataStore_OnlinePlayerData:OnLoginChange:0168
    [0020.16] DevDataStore: << (iap2_0) PlayerController::PlayerWaiting:RegisterCustomPlayerDataStores (Player)
    [0020.16] DevDataStore: >> (iap2_0) PlayerController::PlayerWaiting:RegisterStandardPlayerDataStores (Player)
    [0020.16] DevDataStore: 'OnlinePlayerData' data store already registered for player: iap2_0 (Player)
    [0020.16] DevOnline: Tried to start voice chat without a match in progress
    [0020.16] Log: ########### Finished loading level: 0.521200 seconds
    [0020.16] DevUI: Received map loaded notification.  Reinitializing widget input aliases.
    [0020.16] Init: Game engine initialized
    [0020.16] Log: Initializing Engine Completed
    [0028.96] Log: >>>>>>>>>>>>>> Initial startup: 28.96s <<<<<<<<<<<<<<<
    [0028.96] Log: -----------------
    [0028.96] Log: Total network file manager time: Copy: 0.00s, FileTime: 0.00s, FindFiles: 0.00s
    [0028.96] Log: -----------------
    [0028.99] DevGFxUI: UGFxInteraction::Send - CALLBACK_PreViewportResized
    [0028.99] Log: StartCompilingShaderGroup: StartupPackages
    [0028.99] Log: Compiled 0 Shaders in group StartupPackages
    [0028.99] Log: StartCompilingShaderGroup: UnGrouped
    [0028.99] Log: Compiled 0 Shaders in group UnGrouped
    [0028.99] DevGFxUI: UGFxInteraction::Send - CALLBACK_ViewportResized
    [0028.99] DevOnline: Game Center local user is now authenticated and online
    [0028.99] DevOnline: Reading achievements
    [0029.18] Log: WarmShaderCache
    [0029.18] Log: WarmShaderCache:ShadersWarmed 0
    [0029.18] Log: WarmShaderCache
    [0029.18] Log: WarmShaderCache:ShadersWarmed 0
    [0029.18] Log: Requesting product id ro.madeyes.FinalDefenceLine.GoPro
    [0029.19] Log: Requesting product id ro.madeyes.FinalDefenceLine.buyFunds
    [0029.19] Log: is product request in flight? 1
    [0029.19] Log: avail products.num() 0
    [0029.26] DevAudio: New interior setting!
    [0029.28] DevAudio: UAudioDevice::ApplySoundMode(): Default
    [0032.79] ScriptLog: Purchase 0:
    [0032.79] ScriptLog:    -  /  - 
    [0035.41] Log: Game is crashing: UE3SYS:CRASH: appSigHandlerSimple
    UE3SYS:GAME: UDK
    UE3SYS:ENGINEVERSION: 10900
    UE3SYS:CHANGELIST: 1537896
    UE3SYS:CONFIGURATION: Release
    CallStack:
    	0   UDKGame                             0x01195288 _ZN12TSparseArrayIN4TSetIN8TMapBaseIm15FES2FrameBufferLj0E20FDefaultSetAllocatorE5FPairENS4_8KeyFuncsES3_E8FElementE21TSparseArrayAllocatorI17FDefaultAllocator25FDefaultBitArrayAllocatorEE5EmptyEi + 43988
    	1   UDKGame                             0x011c55c4 _ZN19UInAppMessageIPhoneD2Ev + 1804
    	2   libsystem_c.dylib                   0x3a428e8b

    GameInfo Class
    that drags the iap Class

    Code:
    class iAPGameInfo extends FrameworkGame;
    
    defaultproperties
    
    {
    PlayerControllerClass=Class'TTSGame.iap2';
    }

    IAP Class


    Code:
    /**
     * Copyright 1998-2012 Epic Games, Inc. All Rights Reserved.
     */
    class iap extends SimplePC;
    
    var SimplePC PC;
    var MicroTransactionBase MicroTrans;
    
    
    
    exec function startiap()
    	{
    		MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransactionInterface();
    	MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    
    
    	}
    
    exec function Product1buy()
    	{
    
    		MicroTrans.ClearDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    
    	MicroTrans.ClearDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
    	MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransactionInterface();
    	MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    	MicroTrans.AddDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
    		MicroTrans.BeginPurchase(0);
    		//CauseEvent('startbuy');
    	}
    	
    exec function Product2buy()
    	{
    
    		MicroTrans.ClearDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    
    	MicroTrans.ClearDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
    						MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransactionInterface();
    	MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    	MicroTrans.AddDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
    		MicroTrans.BeginPurchase(1);
    				//CauseEvent('startbuy');
    	}
    
    
    	
    
    exec function endit() 
    {
    		MicroTrans.ClearDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    	MicroTrans.ClearDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
    
    }
    
    
    function OnProductQueryComplete(const out PlatformInterfaceDelegateResult Result)
    {
    	local int Index;
    	local PurchaseInfo Info;
    	for (Index = 0; Index < MicroTrans.AvailableProducts.length; Index++)
    	{
    		Info = MicroTrans.AvailableProducts[Index];
    
    
    		`log("Purchase " $ Index $ ":");
    		`log("  " $ Info.Identifier $ " - " $ Info.DisplayName $ " / " $ Info.DisplayPrice $ " - " $ Info.DisplayDescription);
    	}
    			CauseEvent('ready');
    }
    
    function OnProductPurchaseComplete(const out PlatformInterfaceDelegateResult Result)
    {
    	local int Index;
    
    	`log("Purchase complete:");
    	`log("  Product = " $ Result.Data.StringValue);	
    	`log("  bSuccess = " $ Result.bSuccessful);	
    	`log("  Result = " $ Result.Data.IntValue);	
    
    	if (Result.Data.IntValue == MTR_Failed)
    	{
    	CauseEvent('failure');
    		`log("  Error: " $ MicroTrans.LastError);
    		`log("  Solution: " $ MicroTrans.LastErrorSolution);
    	}
    	else if (Result.Data.IntValue == MTR_Canceled)
    	{
    	CauseEvent('cancel');
    		`log("  Error: " $ MicroTrans.LastError);
    		`log("  Solution: " $ MicroTrans.LastErrorSolution);
    	}	
    	
    	else
    	{
    		if (Result.bSuccessful)
    
           {
    			if (Result.Data.StringValue == "ro.madeyes.FinalDefenceLine.GoPro")
    			{
    			CauseEvent('Product1');
    			}
    			if (Result.Data.StringValue == "ro.madeyes.FinalDefenceLine.buyFunds")
    			{
    			CauseEvent('Product2');
    			}
    
    			
    			//CauseEvent('succes');
    	
    		}	
    	
    	
    
    
    	}
    
    }
    
    function end()
    	{
    
    
    	}
    
    defaultproperties
    {
    
    }

    Code:
    class SeqAct_MicroTrans extends SequenceAction;
    var string Price;
    var bool IAPdata;
    var string Price1;
    var string Price2;
    var string Price3;
    var MicroTransactionBase MicroTrans;
    var int IsHidden[2];
    
    
    
    event Activated()
    {
    
    	OnInit();
    
    
    
    	if (InputLinks[0].bHasImpulse) // Refresh
    	{
    
    		MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransactionInterface();
    		MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    
    
    		MicroTrans.QueryForAvailablePurchases();
    
    
    	}
    	if (InputLinks[1].bHasImpulse) // clear
    	{
    
    		MicroTrans.ClearDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
    
    	}
    
    	
    
    
    	
    	
    }
    
    function OnInit()
    {
    
    }
    
    
    
    function OnProductQueryComplete(const out PlatformInterfaceDelegateResult Result)
    {
    	local int Index;
    	local PurchaseInfo Info;
    	for (Index = 0; Index < MicroTrans.AvailableProducts.length; Index++)
    	{
    	
    		`log("Purchase " $ Index $ ":");
    		`log("  " $ Info.Identifier $ " - " $ Info.DisplayName $ " / " $ Info.DisplayPrice $ " - " $ Info.DisplayDescription);
    		
    		Info = MicroTrans.AvailableProducts[Index];
    		
    		
    
    			if (Index == 0)
    		{
    			Price1 = Info.DisplayPrice;
    			
    		}
    			else if (Index == 1)
    		{
    			Price2 = Info.DisplayPrice;
    			
    		}
    
    		`log("Purchase " $ Index $ ":");
    		`log("  " $ Info.Identifier $ " - " $ Info.DisplayName $ " / " $ Info.DisplayPrice $ " - " $ Info.DisplayDescription);
    		
    
    
    
    
    	}
    		Price = "dummy";
    		IAPdata = true;
    
    
    }
    
    
    
    defaultproperties
    {
    	ObjName="In App Purchases"
    	ObjCategory="Madee"
    
    	VariableLinks.Empty
    	VariableLinks(0)=(ExpectedType=class'SeqVar_String',LinkDesc="Price",bWriteable=true,PropertyName=Price)
    	VariableLinks(1)=(ExpectedType=class'SeqVar_String',LinkDesc="Price1",bWriteable=true,PropertyName=Price1)
    	VariableLinks(2)=(ExpectedType=class'SeqVar_String',LinkDesc="Price2",bWriteable=true,PropertyName=Price2)
    	VariableLinks(3)=(ExpectedType=class'SeqVar_String',LinkDesc="Price3",bWriteable=true,PropertyName=Price3)
    	VariableLinks(4)=(ExpectedType=class'SeqVar_Bool',LinkDesc="IAPdata",bWriteable=true,PropertyName=IAPdata)
    
    	
    	InputLinks(0)=(LinkDesc="Refresh")
    	InputLinks(1)=(LinkDesc="clear")
    
    
    
    	
    }
    Kismet Setup

    Click image for larger version

Name:	scene_kis_iap.jpg
Views:	1
Size:	62.8 KB
ID:	3253398


    Can you please help me ?

    Please let me know if you need any other files.

    #2
    bump, doesn't anyone know? what is UE3SYS:CRASH: appSigHandlerSimple ?! what should i look for to fix this. ?

    sorry but i'm in a very big rush..

    Comment


      #3
      Ran into similar issue myself while trying to solve my own set of issues such as the OnProductQueryComplete function not running after running QueryForAvailablePurchases...

      As for fixing your issue, it could be because you are adding the delegates again in your kismet when they have already been created in your iAp class.

      Little new too the iAP myself so i might be wrong, but As I said, had a similar issue myself with accidently adding the delegates twice.

      EDIT
      Just a quick thought, if you want to refresh delegates you could add the clear delegates prior to adding.
      to test it quickly to see if this is the problem, run a link into your clear input first and then into refresh.

      Comment


        #4
        hello Mr Random,

        i have added the following:

        exec function startiap()
        {

        MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransa ctionInterface();
        MicroTrans.ClearDelegate(MTD_PurchaseQueryComplete , OnProductQueryComplete);
        MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);

        }

        as i give the start command, the game crashes with the error: Log: Game is crashing: UE3SYS:CRASH: appSigHandlerSimple


        I guess this is not the case, anything else in mind ?

        Comment


          #5
          Check if microtrans is not none before doing anything
          Change microtrans to a local variable
          Does the same happen with other platform interface objects e.g push notifications

          Comment


            #6
            thanks Zeqzy, do i check it in the script ? or through kismet node ?

            still new to scripting, but i added this, should it work ? is this what you wee referring ?:
            Code:
            var local MicroTransactionBase MicroTrans;
            
            
            exec function startiap()
            	{
            	
            	if (MicroTrans =! none)
            	{
            	MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransactionInterface();
            	MicroTrans.ClearDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
            	MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
            	}
            	
            
            
            
            
            	}
            
            exec function Product1buy()
            	{
            
            		if (MicroTrans =! none)
            	{
            	
                MicroTrans.ClearDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
            	MicroTrans.ClearDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
            	MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransactionInterface();
            	MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete);
            	MicroTrans.AddDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
            		MicroTrans.BeginPurchase(0);
            		//CauseEvent('startbuy');
            	}
            }

            Comment


              #7
              Yes but the variable is still global
              Before the If add local mocrotransactionbase microtrans; to each function that uses microtrans

              Comment


                #8
                hi Zeqzy

                thanks for this, now there is no more crash and apparently the purchase now works ok thank you again, i'm in your debt !

                Comment

                Working...
                X