Laerdal / Xamarin.AzureCommunicationCalling

Xamarin iOS and Android binding libraries for Microsofts Azure Communication Services
MIT License
36 stars 11 forks source link

Upload binaries to Apple with info.plist OS version set to 13 only. Anything less causes errors #7

Closed bigbbri closed 3 years ago

bigbbri commented 3 years ago

Hi, we wanted to create a release for TestFlight and review but to our surprise we were rejected on upload. If we set the info.plist to os 11 or 12 it fails with the error:

ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

The apple upload only accepts our build if our release build is set to iOS 13 but for us, this is not acceptable. We need to offer this build to 12 for sure.
We are using the NuGet package version of Xamarin.AzureCommunicationCalling.iOS version 1.0.0-beta.4.3

Is there a Swift dependency that only binds to iOS 13 in this package?

Thanks for your help. We are comfortable with Xamarin but our weakness is the native side and linkages on the native side.

Thank you, Brian Adams

tompi commented 3 years ago

Hey, my knowledge about this is a bit shaky, but the way I understood it is that as Swift ABI stability was reached with iOS 12.2, we no longer needed to bundle swift deps with the IPA. I think you have two options, either set minimum iOS version to 12.2 or use a swift bundler. I think swift bundling happens automatically when building with xcode, but for xamarin, the easiest way is to use e.g. Xamarin.Swift.

Try to install 1.0.6 of this nuget: https://www.nuget.org/packages/Xamarin.Swift/ and see if it helps. (I actually had a dep on this for my nuget, but it seemingly broke the build for xamarin.ios 14.1 so I removed it, but it seems 1.0.6 fixed this: https://github.com/Flash3001/Xamarin.Swift/issues/49 so I will reintroduce the dep)

Im not sure about the minimum 12.2 approach, but please let me know if you go that route and it works, because it should result in a much smaller IPA file I think

tompi commented 3 years ago

@bigbbri Try version 1.0.0-beta.4.4, it should automatically install Xamarin.Swift in your project which takes care of swift bundling

axelasarmiento commented 3 years ago

Hi,

We were able to send the build using iOS 12.4, we are on 1.0.0-beta.4.4 and we added Xamarin.Swift as well.

We can go live with this but it would be better if we can bring this down to all of 12 or 11

Thanks!

bigbbri commented 3 years ago

Hi, Let me clarify a little more. We are using Xamarin.Swift and the Nuget Beta-4.4 package but anything below 12.2 still fails with the same error. What do you think we are missing? Maybe we can invite you to our repo…. It’s a small app…

Thanks,

Brian Adams President, Ameliom IT LLC A 30985 Oakview Rd Bulverde, TX 78163 M 210-452-1639 W www.ameliom.com

From: axelasarmiento notifications@github.com Reply-To: "Laerdal/Xamarin.AzureCommunicationCalling" reply@reply.github.com Date: Monday, November 16, 2020 at 11:22 AM To: "Laerdal/Xamarin.AzureCommunicationCalling" Xamarin.AzureCommunicationCalling@noreply.github.com Cc: bigbbri brian@ameliom.com, Mention mention@noreply.github.com Subject: Re: [Laerdal/Xamarin.AzureCommunicationCalling] Upload binaries to Apple with info.plist OS version set to 13 only. Anything less causes errors (#7)

Hi,

We were able to send the build using iOS 12.4, we are on 1.0.0-beta.4.4 and we added Xamarin.Swift as well.

We can go live with this but it would be better if we can bring this down to all of 12 or 11

Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/Laerdal/Xamarin.AzureCommunicationCalling/issues/7#issuecomment-728206422, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJOCMXPDENQAPSTJLTEBGVDSQFNWLANCNFSM4TWANZMA.

bigbbri commented 3 years ago

Can we keep this open? We pulled Beta 4.4 and we have been using Xamarin.Swift but it won't let anything lower that 12.4. This is not a good long term solution for an app. We want to support iOS 11 and up.

Thanks, brian

tompi commented 3 years ago

@bigbbri and @axelasarmiento Sure, Ill reopen it. Lets try to publish for iOS 12.0. This is stated as minimum SDK version for ACS: https://github.com/Azure/Communication/releases/tag/v1.0.0-beta.2

So you will NOT be able to do iOS 11 in any case.

Anyway, could you try setting iOS 12.0 as minimum sdk, then build it and attach both the build log(Im especially interested in output from the build step introduced by Xamarin.Swift) together with the rejection email from Apple?

axelasarmiento commented 3 years ago

Hi,

this is the build log using iOS 12.0 and the latest Xamarin.AzureCommunicationCalling nuget beta version

this is the rejection message from Apple:

ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

and the build log:

Build _log_AFWC.txt

Thanks!

tompi commented 3 years ago

@axelasarmiento Sorry I took a while to look into this, but today I uploaded my own app, which uses the same nuget, and has minimum version=12.0, and it worked fine... Also, from the logs, I see your swift bundling is happening, are you sure this log was from the same IPA that was rejected for missing swift deps? Do you do some further post-processing of the IPA after that log you posted?

Here is the start of your relevant log:

    Including Swift dylibs because you are targeting an OS version that doesnt include it.
     Installed: 5.3.1
     AzureCore Framework: 5.3
     AzureCommunication Framework: 5.3

Etc etc, and mine:

2020-11-19T15:27:01.4503180Z   Including Swift dylibs because you are targeting an OS version that doesnt include it.
 2020-11-19T15:27:01.4512190Z   Installed: 5.2.4
 2020-11-19T15:27:01.4512600Z   AzureCore Framework: 5.3

And both goes on to include libswiftCore.dylib etc etc. To be sure, maybe you could check the IPA file, if you download and unzip, you should see "libswiftCore.dylib" and lots of others under frameworks somewhere inside.

One thing Im wondering about is if you installed the correct Xamarin.Swift nuget, could you try once more upgrading to latest, I see 1.0.7 is out yesterday, so MIGHT be something there. (I couldnt see nuget installs in your logs, so im guessing its from a local build?)

tompi commented 3 years ago

Closing after missing feedback