Binary Rejection - Invalid Watchkit Support - ios

We develop Watchkit app about 1.5 month, and we used Xcode 6.2 beta2,beta4, Xcode 6.3 beta to develop before and now use Xcode 6.2 (6c131e) to develop
We use Xcode 6.2 (6c131e) to archive our project , and use Application loader to submit our app.
And then we received the rejection:
"The bundle contains an invalid implementation of WatchKit. The app
may have been build or signed with non-compliant or pre-release tools.
Visit developer.apple.com for more information. "
anyone help me , thx.

Apple Watch apps are now accepted into the App Store as of Tues. March 31.
However, for folks using the old submission workflow of submitting a zipped .app will hit this error because zipped apps are no longer supported for apps that contain a watch extension. Follow these steps to generate a submittable .ipa file instead.
Supporting Raw Zip Watch App Submissions
App Store import validation ensures that watch app submissions include additional files alongside the submitted bundle that are generated by Xcode. This prevents you from using the old submission workflow of submitting a zipped app file using Application Loader.
However, if you have a build process which currently prevents submitting the watch app using Xcode, you may use the following process to generate the necessary .ipa file to be submitted using Application Loader:
Create a directory named WatchKitSupport as a sibling to Payload
Copy a binary named "WK" from the iOS 8.2 SDK in Xcode to your new WatchKitSupport directory. This binary can be found at: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/
Do not touch or re-sign the WK binary in any way
Compress everything into a zip and rename the file extension to .ipa
Note: You may compare your .ipa with one generated by Xcode by exporting an .ipa from an archive of a new Xcode project template for which you have added a watch target.
The format of the resulting IPA should contain (at least):
myApp.ipa
|________Payload/
|________Symbols/
|________WatchKitSupport/
|_____WK
Edit: The .dSYM corresponding to the built .app goes in Symbols/. You can always find it alongside the .app in the built products folder, or in dSYMs of an .xcarchive.

While uploading apple watch app, it need to have apple watch extension into embedded binary of iOS app. But if you are habbitat to delete derived data then xcode6 will delete that target. and when you submit it to apple it will only get ios app not apple watch app.enter image description here
Adding Embedded Binaries fails in Xcode Xcode won't link framework form separate project App crashes on device because of missing framework, works in simulator Overview
After deleting the "DerivedData" folder (or performing a "Product > Clean") in xcode6, I cannot add CocoaTouch frameworks from another project to the "Embedded Binary" section (under General tab).
Or, Xcode hits a linker error because it cannot find a framework that if previously could.
Other symptoms
Clicking on the + under "Embedded Binaries" shows the Framework selector but selecting a framework in different project in the workspace does nothing.

As #bobjt stated above, the old way up uploading a .zip file via the Application Loader is no longer valid for apps that contain a WatchKit app/extension.
I was able to upload a valid binary by building my app and then going to Product>Archive>Submit to App Store.

You can't submit WatchKit apps at the moment. Please wait for an official Apple announcement.

I had the same issue. I solved it by putting the correct image assets to the App Icon & uploaded the app through Xcode not the Application Loader. I archived the app from Xcode & validated it. After that I submitted it through Xcode.

Related

Watchkit app showing error during installation - The WatchKit app has an invalid stub executable

I have an app that supports Watchkit. When I run the application onto the iPhone, it builds fine but displays an alert in Xcode "The WatchKit app has an invalid stub executable". I have used the bundle identifier properly and installed the provisioning profiles and certificates properly as well. Any clue on this, please?
Pls note that I am building this project in Xcode 10.3 as the included frameworks are still in Swift 4.2 and couldn't be upgraded to Swift 5.
This was a known issue in Xcode 10 beta where the proposed solution was to clean the build folder and run again. I imagine you've tried that of course, but I have to mention it.
Also ensure you have selected to "Trust this computer" on the Apple Watch. If you haven't done that, then with Xcode open;
a) Connect the iPhone that you have your watch paired to the computer via cable.
b) Restart Apple Watch
c) Accept Trust This Computer when prompted on Apple Watch.
This error is more related to ipa making process than any project settings..
Avoid using older xcodes just to make ipa from the archive created using latest xcode as sometimes we don't have permission to export build.
You can use xcodebuild command to create ipa from archive and resolve this error, but can't make it to appstore as xocdebuild also come with a bug that it doesn't create support directories for watchapp (WatchKitSupport) and swift (SwiftSupport). However with this ipa, application will get installed on Apple Watch without any errors.
Also you may find a valid command which would make valid ipa but other options also have the same issues. Eg xcrun
Solution to this is make this folder structure by yourself and create ipa.
Related links:
1- Binary Rejection - Invalid Watchkit Support
2- How to generate .ipa file from command line with watchkit app
3- Getting error in watch app installation

Can I use Transporter to upload Flutter iOS apps to App Store console?

I got into mobile development through Flutter, so all my contact with native platforms and techs comes from that.
So far I've been distributing my Flutter apps as the doc says, opening the build/ios/archive/Runner.xcarchive package with Xcode and validating/distributing it.
I found fastlane, but before getting into it, is there a way to use Transporter to upload iOS apps to Apple Store console? It does not recognize the .xcarchive file with it, I suspect I have to do something else before but I could not find what
Thank you!
Archive app with XCode.
Go to "Distribute" and choose "Export".
You will have .ipa exported with provisioning profile, and just add it to Transporter app.
Yes, I just did since brilliant xCode got stuck consistently while trying to upload the app, I switched to Transporter:
Run "flutter build ios --release"
Copy the generate /build/ios/iphoneos/YourApp.app file to a newly created folder named "Payload"
Compress the folder (right click - compress)
rename the compressed file to have a ".ipa" instead of a ".zip"
upload it using transporter

"Invalid Swift Support - The SwiftSupport folder is missing" with Xcode 7.3.1

After submitting an app update using Application Loader, I got this email from Apple:
We have discovered one or more issues with your recent delivery for
"[App Name]". 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.
I have confirmed that this binary was built with the latest Xcode GM (7.3.1), so that is not the issue. I have seen a wide variety of potential fixes for this problem online but was hoping that by giving further details somebody might be able to help me figure out the specific solution.
Submitted an IPA file using Application Loader 3.5 with no problems.
The previous version of the app does not use Swift, but this update does.
The "Embedded Content Contains Swift Code" build setting is set to NO. My understanding is that this should only be YES if we have a pure Objective-C target that depends on a Swift or mixed target.
The project uses CocoaPods, but nothing has changed in our pods for this update.
The previous version of the app included a WatchKit app and extension, but this update does not.
Inside an xcarchive generated with the same build, the SwiftSupport folder is there. It contains a subfolder called iphoneos which contains several Apple Swift libraries like libswiftFoundation.dylib.
If I rename the .ipa file to .zip and unarchive it, its app package does not contain a SwiftSupport folder, but does contain a Frameworks folder with the same Swift dylibs.
The solution here was in this answer. 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.
The root cause of this is that the provisioning profile is ad-hoc and it doesn't create SwiftSupport directory in the ipa. The folder is created using app-store as the export method, so it worked for me when I updated my provisioning profile to app-store.
Reference
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
In my case, I just added redundant swift file to the project and it solved the problem.
You should choose "Save for iOS App Store Deployment" instead of "Save for Ad Hoc Deployment" option at the time of creating ipa file.
EXPO users.
I had this problem with expo build:ios it got me stumped for days.
The build from the expo server was about 39mbs which was far smaller than previos versions.
To fix it I had to use
expo build:ios -c
This resets all the credentials (I said yes to all questions) then rebuilds the app. The resuling ipa file was 250mbs and everything is now working preperly.
Use this https://github.com/ndpiparava/Swift_StripArm64e script file remove arm64e from .app file
..Nitin
For our case we use app center for preparing android and ios builds.
For production branch we use release provisioning profile and for normal branches we use normal provisioning profile, and we instead of picking the production build, used normal branch build, which caused this issue.

How will I able to upload *.app to Appstore not via Xcode?

I have application for iOS created on Go language, I compiled it to .app file. Can anyone tell me what should I do to:
Load application to my iPhone
Load application to iTunes connect (I loaded another via Xcode, but there are no objective c or swift code here to do so)
PS: I have valid developer account, able to create any certificates that will need. Versions: XCode 7.2, iOS 9.2
Thanks a lot for your help.
For submission part there is Apple tool called Application Loader. It is a part of Xcode, but I think can still be downloaded separately. It can deliver app to App Store without having to use Xcode Organiser interface.
You need to deliver your app as .ipa file. If your .app is properly signed and contains a valid .mobileprovision (which is a different question), all you need to do is to create a new folder named "Payload", put copy your .app into ito it. Then you can rename the .zip file to .ipa and upload it using Application loader.

Error uploading to iOS App Store: ERROR ITMS-9000 "This bundle is invalid"

When we try to upload a new version of our app to Apple's App Store we get the following error in Application Loader:
ERROR ITMS-9000: "This bundle is invalid. New apps and app updates submitted to the App Store
must be built with public (GM) versions of Xcode 5 and iOS 7 SDK. Do not submit apps built with
beta software." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
We are already building with the latest available version of Xcode, 5.1.1 (downloaded from the Mac App Store) and v7.1 of the iOS SDK (which came with Xcode 5.1.1).
Our app is built with Marmalade 7.2.1. We've tried rebuilding all of the EDK extensions and static libraries that our app uses.
What could be going wrong? Is there anything more anyone else can tell us about the error to help us track it down?
Starting May 15, 2014, new apps and app updates submitted to the App Store must be built with Xcode 5.1.1
You have to update your xcode.
Just clean all the things.
Check the developer/distribution certificate and mobile provision profile properly created, if not then revoke them from developer account and create all new one.
Remove all profiles from /Users/yourSystemName/Library/MobileDevice/Provisioning Profiles
Now, Export all certificates and keys from your keychain and Save them as backup for using them again.
Now install your developer/Distribution certificate first and install provisioning profile. And upload your application. This is tested way and should resolve your issue. Thanks.
When Xcode creates an .ipa package, it adds a number of elements to your project's Info.plist.
As our package is created with Marmalade's deployment tool, these elements need to be manually included in an Info.plist that is copied directly (with a much smaller amount of pre-processing) into the final .ipa.
Marmalade includes a standard Info.plist file within its installation for this purpose. However, you can override this, and we had done so by making a copy of their file, and updating it with changes we needed to make.
A later version of Marmalade made some changes to this file, and we hadn't copied these over into our file, and the difference is apparently what was causing the App Store to think that the App was built with an earlier version of Xcode than the version actually used.
The values which differed were DTSDKName, DTSDKBuild, DTXCode, DTXcodeBuild, DTPlatformBuild, and DTCompiler.

Resources