# iOS: setCallback \> ExecutionEngineException: Attempting to JIT compile method

**URL:** <https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366>\
**Category:** Unity\
**Created:** [March 9, 2016, 6:18pm UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366 "2016-03-09T18:18:03Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![AndrewUNIT9](https://avatars.discourse-cdn.com/v4/letter/a/cc9497/32.png) [@AndrewUNIT9](https://qa.fmod.com/u/AndrewUNIT9)\
**Post date:** [March 9, 2016, 6:18pm UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/1 "2016-03-09T18:18:03Z")

</div>

Hi, I’m am using the newly released Unity FMOD integration (1.08.00), and I am trying to replicate the callback for getting Markers and beats from an event instance, as shown in the documentation below.

[http://www.fmod.org/documentation/#content/generated/engine\_new\_unity/script\_example\_timeline.html](http://www.fmod.org/documentation/#content/generated/engine_new_unity/script_example_timeline.html)

This works fine in the editor and on android, however on iOS, I am getting Just In Time errors when I try to set the callback. Unfortunately the problem seems to be in your dll. Do you know of any work around?

> ExecutionEngineException: Attempting to JIT compile method ‘(wrapper  
> native-to-managed) MainTrackController:BeatEventCallback  
> (FMOD.Studio.EVENT\_CALLBACK\_TYPE,intptr,intptr)’ while running with  
> –aot-only.
> 
> at (wrapper managed-to-native)  
> FMOD.Studio.EventInstance:FMOD\_Studio\_EventInstance\_SetCallback  
> (intptr,FMOD.Studio.EVENT\_CALLBACK,FMOD.Studio.EVENT\_CALLBACK\_TYPE)  
> at FMOD.Studio.EventInstance.setCallback (FMOD.Studio.EVENT\_CALLBACK  
> callback, EVENT\_CALLBACK\_TYPE callbackmask) [0x00000] in :0 at MainTrackController.Play () [0x00000] in :0 at GarageGameController.Begin () [0x00000] in :0

---

<div class="post-metadata">

**Author:** ![nick1](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@nick1](https://qa.fmod.com/u/nick1)\
**Post date:** [March 9, 2016, 10:48pm UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/2 "2016-03-09T22:48:11Z")

</div>

Use IL2CPP for your iOS builds instead of Mono (done on the the Unity Player Settings).

You can’t submit Mono builds to the store anyway because it doesn’t support 64bit apps.

---

<div class="post-metadata">

**Author:** ![AndrewUNIT9](https://avatars.discourse-cdn.com/v4/letter/a/cc9497/32.png) [@AndrewUNIT9](https://qa.fmod.com/u/AndrewUNIT9)\
**Post date:** [March 10, 2016, 11:25am UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/3 "2016-03-10T11:25:32Z")

</div>

> [@](#):
>
> Use IL2CPP for your iOS builds instead of Mono (done on the the Unity Player Settings).
> 
> You can’t submit Mono builds to the store anyway because it doesn’t support 64bit apps.

Hi Nicholas, completely forgot about that!

I rebuilt it using IL2CPP, but I now I am getting a MonoPInvokeCallback error.  
I’ve looked at Unity specific examples of implemented MonoPInvokeCallback, but I’m unsure how to apply it to your plugin.

NotSupportedException: To marshal a manged method, please add an attribute named ‘MonoPInvokeCallback’ to the method definition.  
at FMOD.Studio.EventInstance.FMOD\_Studio\_EventInstance\_SetCallback (IntPtr \_event, FMOD.Studio.EVENT\_CALLBACK callback, EVENT\_CALLBACK\_TYPE callbackmask) [0x00000] in :0  
at FMOD.Studio.EventInstance.setCallback (FMOD.Studio.EVENT\_CALLBACK callback, EVENT\_CALLBACK\_TYPE callbackmask) [0x00000] in :0  
at MainTrackController.Play () [0x00000] in :0  
at GarageGameController.Begin () [0x00000] in :0

(Filename: currently not available on il2cpp Line: -1)

---

<div class="post-metadata">

**Author:** ![nick1](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@nick1](https://qa.fmod.com/u/nick1)\
**Post date:** [March 11, 2016, 1:39am UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/4 "2016-03-11T01:39:12Z")

</div>

You need to add [MonoPInvokeCallback] above your method. It shouldn’t require any changes to our plugin.

---

<div class="post-metadata">

**Author:** ![jimwww](https://avatars.discourse-cdn.com/v4/letter/j/df788c/32.png) [@jimwww](https://qa.fmod.com/u/jimwww)\
**Post date:** [March 14, 2016, 10:25pm UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/5 "2016-03-14T22:25:43Z")

</div>

MonoPInvokeCallback needs a type specified, at least it does for me… using AOT; What should be used?

---

<div class="post-metadata">

**Author:** ![AndrewUNIT9](https://avatars.discourse-cdn.com/v4/letter/a/cc9497/32.png) [@AndrewUNIT9](https://qa.fmod.com/u/AndrewUNIT9)\
**Post date:** [March 16, 2016, 3:54pm UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/6 "2016-03-16T15:54:54Z")

</div>

I have the same issue still. A type needs to be specified.  
Could you provide an example piece of code?

---

<div class="post-metadata">

**Author:** ![nick1](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@nick1](https://qa.fmod.com/u/nick1)\
**Post date:** [March 23, 2016, 11:22pm UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/7 "2016-03-23T23:22:08Z")

</div>

[MonoPInvokeCallback (typeof (FMOD.Studio.EVENT\_CALLBACK))]

---

<div class="post-metadata">

**Author:** ![stephen\_radial](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@stephen\_radial](https://qa.fmod.com/u/stephen_radial)\
**Post date:** [June 6, 2017, 8:42pm UTC](https://qa.fmod.com/t/ios-setcallback-executionengineexception-attempting-to-jit-compile-method/12366/8 "2017-06-06T20:42:07Z")

</div>

Side note: this solution also works for getting the FMOD callbacks working on PS4.
