Search Unity

  1. Going to #UniteBerlin? Bring a buddy & get 25% off the 2nd ticket! More info here.
    Dismiss Notice
  2. Famed game designer and creator of The Sims, SimCIty, and Spore is looking for a 3D artist to join their team. Join the challenge.
    Dismiss Notice
  3. Unity 2017.4 has arrived! Read about it here.
    Dismiss Notice
  4. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  5. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  6. We've opened a new World Building sub-forum to faciltate all your world building discussions! Drop in and ask any ProBuilder, ProGrids, or PolyBrush questions.
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

IOS/Xcode error when using System.net.mail

Discussion in 'iOS and tvOS' started by Axcell_Hunt, Jun 20, 2015.

  1. Axcell_Hunt

    Axcell_Hunt

    Joined:
    Jun 23, 2014
    Posts:
    5
    Hey all, I've stumbled upon an issue with sending smtp mail via my apps. The Android and desktop versions work fine however IOS does not. It also doesn't crash, it simply does nothing. So I debugged it in Xcode and found it outputting the following error report. I have no idea why this is and what it means.
    Has anyone else encountered anything like this and know what may be causing it? Any help/ advice would be a huge help as I really don't know what to do next. I can provide more information if required. Thanks in advance

    (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 65)



    MissingMethodException: Method not found: 'Default constructor not found...ctor() of System.Net.Configuration.MailSettingsSectionGroup'.

    at Mono.Security.Uri.HexEscape (Char character) [0x00000] in <filename unknown>:0

    at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0

    at System.Configuration.ConfigInfo.CreateInstance () [0x00000] in <filename unknown>:0

    at iTween.easeInOutElastic (Single start, Single end, Single value) [0x00000] in <filename unknown>:0

    at System.Configuration.Configuration.GetSectionGroupInstance (System.Configuration.SectionGroupInfo group) [0x00000] in <filename unknown>:0

    at System.Configuration.ConfigurationSectionGroupCollection.get_Item (System.String name) [0x00000] in <filename unknown>:0

    at System.Configuration.Configuration.GetSection (System.String path) [0x00000] in <filename unknown>:0

    at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0

    at System.MonoInternalNoteAttribute..ctor (System.String comment) [0x00000] in <filename unknown>:0

    at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0

    at System.Net.Mail.SmtpClient..ctor (System.String host, Int32 port) [0x00000] in <filename unknown>:0

    at System.Net.Mail.SmtpClient..ctor (System.String host) [0x00000] in <filename unknown>:0

    at mono_gmail.SendCableDesignMail (System.String email, System.String cableLength, System.String colorCode) [0x00000] in <filename unknown>:0

    at PostSubmissionData+<TrySubmitCableDelayed>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0

    at System.Collections.Generic.Dictionary`2+Transform`1[System.Int32,UnityEngine.EventSystems.PointerEventData,System.Collections.Generic.KeyValuePair`2[System.Int32,UnityEngine.EventSystems.PointerEventData]].EndInvoke (IAsyncResult result) [0x00000] in <filename unknown>:0

    System.Collections.Generic.Transform`1:EndInvoke(IAsyncResult)


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

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    3,026
    @Axcell_Hunt

    My suspicion is that the constructor for the System.Net.Configuration.MailSettingsSectionGroup is being stripped out, since it is accessed via reflection. With the IL2CPP scripting backend, stripping is always enabled, so this might happen.

    You can attempt to require this type to not be stripped by using a link.xml file, as described here:

    http://docs.unity3d.com/Manual/iphone-playerSizeOptimization.html
     
  3. danieltranca

    danieltranca

    Joined:
    Jan 9, 2015
    Posts:
    10
    I get the same error when trying to send an email from iOS(works great on Android and Unity Editor).

    I tried Josh's solution but it's not working. Have you solved this problems somehow? Thanks!
     
  4. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    3,026
    @danieltranca

    You might be experiencing this bug:

    http://issuetracker.unity3d.com/issues/il2cpp-crashes-when-using-smtpclient

    Note that we do have a more complex work around than I one I suggested earlier on this thread. You can use this link.xml file:

    <linker>
    <assembly fullname="System">
    <type fullname="System.Net.Configuration.MailSettingsSectionGroup" preserve="all"/>
    <type fullname="System.Net.Configuration.SmtpSection" preserve="all"/>
    <type fullname="System.Net.Configuration.SmtpNetworkElement" preserve="all"/>
    </assembly>
    </linker>

    Once we correct this issue, you won't need this link.xml file, but we've not been able to complete the fix yet.
     
    coeing likes this.
  5. coeing

    coeing

    Joined:
    Mar 17, 2011
    Posts:
    177
    Quick addition for devs getting here via search: In newer versions of Unity you have to add an additional line to link.xml: