Forum Xamarin.iOS

ERROR ITMS-90046 when uploading using the Application Loader

As described in my own blog post, I recently had to upload a new version of an application and used the Application Loader to do so. The difference between the previous and new version of the application was that the new one included a Binding Library for Google ChromeCast v3.

When I tried to upload, I got the following error:

ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value 'XXXXXXXXXX.com.company.app' for key 'application-identifier' in 'Payload/application.app/Frameworks/GoogleCast.framework/GoogleCast' is not supported. This value should be a string starting with your TEAMID, followed by a dot '.', followed by the bundle identifier."

I spent days tracking down the issue by both reading the official documentation and forums. By sheer luck, I tried uploading using the Organizer in XCode. To my surprise, the application was successfully uploaded to iTunes Connect and started processing. Although, after some time, I received a mail stating that:

[…] The app’s Info.plist must contain an NSBluetoothPeripheralUsageDescription key with a string value explaining to the user how the app uses this data.

After resolving the issue, I uploaded once more using the Organizer, and to my relief, everything worked out fine.

I was wondering if anyone else has experienced this issue? I consider submitting a bug report to Apple.

Posts

  • KenNickersonKenNickerson USMember ✭✭✭
    edited March 2017

    @DavidLaundav

    Hi David,

    I am having a similar issue. I am using the application loader and getting an ITMS-90046 error. I rebuilt my provisioning profiles a few times and verified I have the associated domains enabled. The entitlements.plist is well formed and contains the bundle identifier prefixed by the team id. I would like to try the approach you took but don't know how proceed. There are no archives listed and I cannot see how to add the ipa file built in Visual Studio Xamarin, although I can see it in the build folder. Any help you can provide is greatly appreciated as I have been on this for over a week and apple support hasn't been much help.

    thanks

    Ken

  • DavidLaundavDavidLaundav DKMember ✭✭

    Hi @KenNickerson,

    I'm sorry to hear you're facing the same issue. We are also unfortunately still facing the issue, and have been given no official explanation. Although, we no longer use our own binding library for ChromeCast for iOS, but use the official NuGet which was made official not long ago. We hope this will solve the issue at hand.

    In regards to your question, and as explained in my original post, we are using the Organiser of XCode to upload to iTunes Connect.

    To upload using the Organiser, you first of all have to build an .xarchive file which should by now, with the introduction of Xamarin 4, be possible in Visual Studio. You can also use the the Archive for Publishing option in the Build menu as mentioned in this guide.

    After creating the .xarchive, which requires some patience, you can find the file at ~/Users/<user>/Library/Developer/Xcode on OS X if needed be. You can also simply open XCode, open the Window menu and select Organiser. The archives located at the previously defined path will be displayed here.

    An .ipa unfortunately won't suffice in this matter. After generating the .xarchive file, simply click Upload to App Store in the Organiser for the given Archive.

    This has, for now, solved the issue we experience when uploading using the Application Loader.

    Please don't hesitate to reach out to me if needed be.

  • DavidLaundavDavidLaundav DKMember ✭✭

    Hi @KenNickerson,

    I apologise, but I just spent a long time writing a detailed explanation, and after editing due to a markdown mistake, my entry was deleted. I hope you received an email which contains my response, but if not, I'll briefly summarise.

    Unfortunately, building an .ipa will not suffice. Instead, you have to build an .xarchive file which should be supported with Xamarin 4 in Visual Studio.

    As mentioned under the headline Archive for Publishing (which I can't link to) in this guide, all you have to do is basically prepare an archive for publishing.

    After doing so, simply open XCode, select Window in the menu and click Organiser. The archives which have been created should be listed. Now simply select the archive you want to publish, click Publish to App Store and follow the process.

    This is at least how we have solved the issue for now.

    Please don't hesitate to reach out to me if needed be.

  • KenNickersonKenNickerson USMember ✭✭✭

    @DavidLaundav

    Thank you for your response. I actually worked through all of the issues I had and did successfully upload an ipa with associated domains entitlement, using application loader. I had various code signing issues. I initially corrected by going through my key chain and removed any duplicate entries and recreated my provisioning profile. My key chain entry for the distribution certificate was still missing the private key so I started over again, from the development certificate, then the distribution and then the provisioning profile. I set my profile in a dummy xcode project with the same bundle id, closed xcode and reopened. Closed VS and reopened it also. When I select the actual team and the actual profile, I was able to upload the ipa, only to get an email from iTunes Connect informing me the binary still had a code signing issue . I can only figure that there was something cached from the original profile and VS wouldn't let it go. So I came across other posts, one in particular from John Miller. He suggested you clear out the codesignprovision key in the xml of the IOS csproj file (I used Notepad++) and then reopened VS. I felt it was a hack but tried it out of desperation. I made sure the team was correct but left the profile to Automatic. Then it worked for me.

  • ShukeriShukeri MYMember

    Thank you. It does work for me.> @DavidLaundav said:

    Hi @KenNickerson,

    I apologise, but I just spent a long time writing a detailed explanation, and after editing due to a markdown mistake, my entry was deleted. I hope you received an email which contains my response, but if not, I'll briefly summarise.

    After doing so, simply open XCode, select Window in the menu and click Organiser. The archives which have been created should be listed. Now simply select the archive you want to publish, click Publish to App Store and follow the process.

    This is at least how we have solved the issue for now.

    Please don't hesitate to reach out to me if needed be.

    It works for me .. thank you for your help

  • DavidHedelinDavidHedelin USMember ✭✭

    Change this in Entitlements.plist

    <key>aps-environment</key> <string>development</string>

    To this:

    <key>aps-environment</key> <string>production</string>

  • DavidHedelinDavidHedelin USMember ✭✭
    edited May 2018

    Change this in Entitlements.plist:

        <key>aps-environment</key>
        <string>development</string>
    

    To this:

    <key>aps-environment</key>
    <string>production</string>
    
  • ltin071ltin071 Member

    My two cents here.

    Just now I stuck in this problem because when I copy my TeamID / Application ID from the apple developer portal which brings a lot of unrelated value to the entitlement.plist. I didn't notice this because I was using Xcode to edit the entitlement.plist and the input box will not display everything after the first new line character.

    I suggest using plain text editor for entitlement.plist for this case.

    Thanks,

    Samuel

  • mrandrewaumrandrewau Member ✭✭

    DavidHedelin said:
    Change this in Entitlements.plist:

        <key>aps-environment</key>
        <string>development</string>
    

    To this:

    <key>aps-environment</key>
    <string>production</string>
    

    THANK YOU! I was stuck on this, and would never have figured it out without your input.

Sign In or Register to comment.