Invalid Swift Support - The SwiftSupport folder is missing - swift

I have updated a currently submitted Titanium app and added a watch extension using swift.
Everything works fine if I build and test on sim and build directly to device. I only get an issue when I submit the app to the Apple app store (via XCode Organizer).
The binary submits, passing validation but I get am email from iTunes Connect as follows:
Dear developer,
We have discovered one or more issues with your recent delivery for "xxxxxxxxxxx". To process your delivery, the following issues must be corrected:
Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.
Once these issues have been corrected, you can then redeliver the corrected binary.
It seems as though it may be related to a build setting: Embedded Content Contains Swift Code.
It looks like this needs to be set to Yes if the Titanium project contains embedded Swift.
As of now I am stuck as I cannot submit the app. Is this a Ti problem or is there another step I should follow?
XCode: 7.3, SDK: 5.2.2.GA - Project created and built using only the Ti CLI.

First you should check your .ipa file by
unzip yourapp.ipa
If the only Payload exists, the Apple reject your app.
You should create SwiftSupport/iphoneos directory and put the appropriate
swift library files.
You can know which libraries are necessary by checking Payload/yourapp.app/Framesworks. But this library files can not be used as SwiftSupport/iphoneos.
You must copy the appropriate libraries from your mac's /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos directory. The file names are same as the above Payload/yourapp.app/Frameworks but the contents are different.
After you get the Payload and SwiftSupport directory, do package these directories by
$ zip -r yournewapp.ipa Payload SwiftSupport
(Remark: remove all .DS_Store files if exist)
Then Apple accespt yournewapp.ipa.

For future reference: I had to Archive the Titanium project through Xcode because one of my third-party libraries requested to execute a script in the Build phases.
Received the same message from Apple and fortunately fixed it just changing the Embedded Content Contains Swift Code to No.

You should choose "Save for iOS App Store Deployment" option at the time of exporting ipa file.

This issue has now be resolved, there is a new version of the Titanium SDK, 6.0.1.GA that specifically has a fix in for this issue. I have now created, submitted and have a Titanium app with associated watch app now published in the app store.

Related

XCode - ITMS-90426: Invalid Swift Support

I receive the following mail after the upload of my app form xCode to the Apple Connect platform.
Dear Developer,
We identified one or more issues with a recent delivery for your app, <APPNAME> 0.23.0 (10). Please correct the following issues, then upload again.
ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.
Best regards,
The App Store Team
Before uploading, I correctly validate the version, and xcode gives me the validation.
Do someone know how resolve this issue?
I have tried to follow some other Stakoverflow answers:
Go to Targets > YourApp > Build Settings
Defines Module: No
Always Embed Swift Standard Libraries: Yes
With no results
I'm running MacOS Ventura 13.1 and Xcode 14.2

Strong password suggestion stopped working for registration in iOS14? [duplicate]

This is the full error-message:
Cannot show Automatic Strong Passwords for app bundleID: com.ckbusiness.Wishlists due to error: Cannot identify the calling
app's process. Check teamID and bundleID in your app's
application-identifier entitlement
What am I missing here??
We have the same issue with Xcode 12.2 and iOS 14.2 and applied more details on the Apple Developer forum.
Can this be related? The documentation of the Associated Domain File shows a new section at the bottom about macOS 11 and iOS 14:
Starting with macOS 11 and iOS 14, apps no longer send requests for apple-app-site-association files directly to your web server. Instead, they send these requests to an Apple-managed content delivery network (CDN) dedicated to associated domains.
Update - December 3:
We checked many things:
Code signing
Our target is set to "Automatically managing signing".
In App Store connect we looked up the the entitlement:
Select app
Select "Activity"
Select a Build
Scroll down to "Store Information", the right column shows the Entitlements.
The com.apple.developer.team-identifier matches the prefix in the application-identifier. The latter matches exactly with the value in the apps array in the apple-app-site-association file on our website.
However, when performing Build & Run with Xcode on device, the debug app is signed with a different Signing Identity:
Apple Development: (other ID than com.apple.developer.team-identifier)
An estimated guess is that this would create a mismatch with the apple-app-site-association file. Hence we added this new id to the existing apple-app-site-association file and uploaded on our server:
{
"webcredentials": {
"apps": ["ABCDEF1234.com.domain.appName", // Release ID from App Store
"1234ABCDEF.com.domain.appName"] // Debug ID from Xcode
}
}
Tried again, still the same error.
Also performed the usual stuff like:
Uninstall app from iPhone and reboot iPhone
Clean Build Folder in Xcode
Delete Xcode folder DerivedData from /Users/xxx/Library/Developer/Xcode and rebooted MacBook
Availability of apple-app-site-association file
While updating this file on our server, we found a docu update. In June 2019 (when we launched this particular app) it mentions to place the file in 2 folders:
https://<fully qualified domain>/apple-app-site-association
https://<fully qualified domain>/.well-known/apple-app-site-association
Note: Currently only the later .well-known directory is mentioned.
It appeared that our file was only in the first folder. So we duplicated it and checked again, but still the error is shown.
To rule out that it takes time for iOS 14 to update changes of the apple-app-site-association file based on the new Apple-managed content delivery network (CDN), we even used the mode option in the entitlements file:
While you’re developing your app, if your web server is unreachable from the public internet, you can use the alternate mode feature to bypass the CDN and connect directly to your private domain.
You enable an alternate mode by adding a query string to your associated domain’s entitlement as follows:
webcredentials:doamin.com?mode=developer
Again, no luck.
TestFlight version
To avoid using Xcode debugger and it's debug signing, archived the Xcode 12.2 build and submitted it to App Store. Verified the entitlements from the build in App Store Connect as described above. They match the apple-app-site-association file.
Released for internal TestFlight testing and tested on device. Tapping the first password text field does not show the password suggestion.
Conclusion
Although we seem out of options, hopefully any of these exercises can inspire others to identify a solution. Or it's just a massive Apple bug and we need to wait for a fix from them.
Work again in Version 13.0 beta (13A5155e) !

Invalid Swift Support when submitting App

A while back I was trying to submit an App using Xcode version 11.1 (11A1027) but I received an email from Apple with the following message:
ITMS-90424: Invalid Swift Support - The SwiftSupport folder is empty. Rebuild your app using the current public (GM) version of Xcode and resubmit it.
From what I know, 11A1027 is already a released version and so I am not very sure why there is a need to use the GM version of Xcode. Does anyone have any idea?
I tried some of the methods suggested in other posts but somehow could not resolve it.
Is this a bug in Xcode?
Solved for me in June 2020.
MacOS Catalina 10.15.5
Xcode Version 11.5 (11E608c)
Check that Command line tools(Xcode->Preferences->Locations) have this value
Configure PROJECT in project settings
Click to you project in Xcode.
Select project name
Set filter to Basic and Levels
Find Always Embed Swift Standard Libraries field (if not found - play with filters)
Set YES to this field for PROJECT(debug and release)
Configure TAGET in target settings
Click to you project in Xcode.
Select target name
Set filter to Basic and Levels
Find Always Embed Swift Standard Libraries field (if not found - play with filters)
Set YES to this field for PROJECT(debug and release) and set NO to this field for TARGET(debug and release)
see example
Clean project and create archive(Product->Archive)
In the dialog window right click to the created archive name -> Show in Finder
Right click to the archive name in Finder -> Show Package Contents
Delete SwiftSupport folder here
After that upload your build using AppStore Connect in Xcode with default settings.
I received this same email after uploading an .ipa file to App Store Connect through the Transporter app. The following is where I went wrong: I distributed the app using ad hoc.
The following steps are the solution for my error:
Archive app
Distribute on TestFlight and the App Store
Export
Open ExportOptions.plist in the newly created folder from the export.
Make sure the method property has the value app-store if you are uploading to App Store Connect/TestFlight like me.
Drag and drop the exported .ipa file to Transporter.
Deliver your app to upload it.
And that's it!
Original answer here: https://stackoverflow.com/a/62568526/10374366
I don’t think it’s a bug. But the best thing you can do is to just reinstall Xcode from the AppStore.
The solution here was in this "Invalid Swift Support - The SwiftSupport folder is missing" with Xcode 7.3.1. We needed to use the new -exportOptionsPlist flag with xcodebuild instead of the older -exportFormat and -exportWithOriginalSigningIdentity flags. The plist just needs to have the method key set to app-store.
Try upgrading to swift 5.0 and going to workspace settings, build system and set it to New Build System. This solved it for me in a React Native project using native iOS views. As far as I know swift 5 makes doesn't use the swift support folder any more.

avoid SwiftSupport folder in .ipa

In latest Xcode 7.1.1, ipa created has SwiftSupport folder. It increased ipa size around 20MB.
Old Xcode not added SwiftSupport folder inside ipa
How to avoid SwiftSupport folder in ipa ?
Disable "Embedded Content Contains Swift Code" in your application build settings.
As #Rob Napier mentioned, but you can also set this flag to NO if you have a swift code project. The flag only means if you have an ObjC project which includes Swift code via a framework to indicate that you need swift support.
HOWEVER, it does not matter how big your IPA file is (if that's your concern) because Apple removes the folders on processing via iTunes connect As stated by an Apple Developer in the forums: https://forums.developer.apple.com/thread/16339
In addition to the other explanations I would also recommend to upgrade to Xcode 7.2. According to my research, there is no "SwiftSupport" folder included when building the ipa file when using Xcode 7.2. (As indicated by other answers, it is assumed you are not using Swift in the project.)
Disable "Embedded Content Contains Swift Code" in your application build settings.
This of course assumes that you don't have any Swift code in your project. If you do, then you need to include the Swift standard libraries, which are contained in that folder.
The default for this setting is "No" so it's likely that something you're importing (CocoaPods?) is setting it. Or that something you're importing actually has Swift code in it....

iPhone submission - The binary you uploaded was invalid

Having gone through all the steps of submitting my app to the iStore by the book (and other manuals around), I get a 'not so funny' response after uploading my binary:
'The binary you uploaded was invalid. Fat binaries require a MinimumOSVersion of at least 3.0'
Now, I set the device deplyment to be 2.2.1 and the Base SDK the same. My build SDK is 3.0 and I'm pretty sure I do not use anything which is in 3.0 but not in the 2.2.1 API (I built and ran on both and tested).
It might be nothing, or not - I do use XML parsing and some XML files in my application, again, I'm not even sure that it is connected ot the problem.
If you have any experience with that or have a clue it's be great,
Check the Info.plist of the binary that is produced. The file should have the following setting somewhere in it:
MinimumOSVersion XYZ
...where XYZ is the Deployment Target OS version you are trying to build for.
I have noticed in my own binaries that this line does not exist for binaries built for the iPhone Simulator. Given that, my suspicion is that you are trying to upload a binary built for the simulator instead of the device. Try changing the Active SDK to "iPhone Device 2.2.1" and submitting that binary to the App Store.
I had a similar issue and it was due to me zipping the file up (or trying to upload it) from a PC. I used 'compress' on the mac and uploaded using firefox for mac os and it worked fine.
This window becomes visible upon clicking on the root project name in the Xcode directory /groups tree, where you can change the:
! Deployment Target OS 8.1 and SDK declarations
Also, under the General tab is the Asset Catalog where the Icon migration and Launch screen file conversion takes place.