Skip to content

iOS Release build crashing. #101988

Description

@danlfarnell

Description

Hi,

I have an app that works perfectly fine on an iOS device while debugging but if I create and use a release ad hoc build or test flight build the app crashes while completing a 2nd payment transaction. This crash was not encountered during the Dev/Qa cycle. The only thing that has really changed is that the device is currently running on the latest iOS version (17.4.1).

I can get the release build to work by removing UseInterpreter from the project file. However the app needs this turned on for certain clients because we have code that uses reflection.

Unfortunately I can't provide a repo and this wouldn't reproducible without a payment terminal connected via bluetooth.

The application itself does not log any exceptions but if I use the console app on a mac when this occurs I can see the following.

MONO interpreter: NIY encountered in method CreateReceipt
error: * Assertion: should not be reached at /Users/runner/work/1/s/src/mono/mono/mini/interp/interp.c:3850

Below is a sample of my project file and a list of workloads i have installed. Also please note that I have Xcode 15.2 installed. Any thoughts? Please let me know if there is anything else I can provide to assist. Thanks for your help in advance.

<PropertyGroup Condition="$(TargetFramework.Contains('-ios')) and '$(Configuration)' == 'Release'">
	  <CodesignProvision>MyApp(Ad-Hoc)</CodesignProvision>
	  <CodesignKey>Apple Distribution: My Company Inc. (8T6334H3XB)</CodesignKey>
	  <ArchiveOnBuild>true</ArchiveOnBuild>
	  <UseInterpreter>true</UseInterpreter>
	  <MtouchLink>None</MtouchLink>
</PropertyGroup>
Installed Workload Id      Manifest Version      Installation Source
--------------------------------------------------------------------
maui-ios                        8.0.7/8.0.100              SDK 8.0.200        
maui-android                8.0.7/8.0.100              SDK 8.0.200        
maui-mobile                 8.0.7/8.0.100               SDK 8.0.200        
maui                              8.0.7/8.0.100               SDK 8.0.200    

Steps to Reproduce

  1. Build from terminal on mac with "dotnet publish -f net8.0-ios"
  2. Install through testflight or Xcode if using an ad hoc build.
  3. Run a payment transaction on external payment terminal. First transaction will complete without issues.
  4. Run a 2nd payment transaction on external payment terminal. App crashes.

Link to public reproduction project repository

No response

Version with bug

8.0.7 SR2

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

Unknown/Other

Affected platforms

iOS

Affected platform versions

ios 17.4.1

Did you find any workaround?

Removing UseInterpreter from the project file allows payments to process without crash however we need this turned on because other clients code uses reflection.

Relevant log output

Note: Error was captured from the console app on a mac.

MONO interpreter: NIY encountered in method CreateReceipt
error: * Assertion: should not be reached at /Users/runner/work/1/s/src/mono/mono/mini/interp/interp.c:3850

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions