Non-public selectors in App? - ios

I'm trying to submit an app via iTunes Connect. Xcode is throwing the following error:
iTunes Store operation failed.
The app referenced non-public selectors in Payload/Inflation Calculator.app/Inflation Calculator: allocBatch:withEntity:count:,allowWithEntity:, fastIndexForKnownKey:, indexForKey:
I have no idea what "non-public selectors" I would be using, because I stuck pretty close to the book with my code. Anyone have any ideas?
Code for the view controller (only .swift in my app):
https://gist.github.com/Calda/aefc2f19bae5f3cf2e54
EDIT: As a reference for the future, I confirmed with iTunes Connect Support that this was an issue with iTunes Connect and not a problem with my project. For anyone experiencing this same problem, my best advice would be to wait and try again later.

I had the same problem. I could not submit some of my apps because using non-public selectors. I also tried using Application Loader, but still the same error message
To solve the problem I installed Xcode 6.0.1 - it is still available to download here:
https://developer.apple.com/downloads/index.action
Before installing i moved the old Xcode to trash.
I can now submit any app.

I solved this by doing the following:
edit: I don't think the first step is needed
1) Cleaning the build folder (Hold Alt, Click Product -> Clean)
2) Deleting the Derived Data (Organizer -> Projects -> Select your project -> Delete Derived Data

The API differs between iOS 7 and iOS 8.
I got my App validated by switching to Deployment Target "8.0" - built with XCode 6.1.
It might not be the solution to all you guys but you could give it a try.
Might have happened to me because I recently started using UIAlertController -> seems to be an iOS-8-Feature. On iOS 7 this would be UIAlertView. So if you use some nifty new features they might not have been available with previous iOS versions - thus non-public API.

For the same app, I got this error today on XCode 6.1.
I submit the same app (little variation) 2/3 days ago with XCode 6.0.1 without any error!
Just updated XCode 6.1 and trapped with this error.
I switched back to XCode 6.0.1 and it do not have any problem with the submission. No non-public API usage error. I just download the dmg file and rename xcode.app to XCode_6.0.1. So it coexists with XCode 6.1.

I delete all derived data for xcode projects
/Users/{user_home_folder}/Library/Developer/Xcode/DerivedData
And app was submitted without any problem

I was running into the same issue that looked like an issue on Apple's end. I submitted the same app (v 1.0.1) yesterday, then rejected it, then submitted again today with a one-line code difference. Today's submission got rejected for the reason mentioned above.
I was able to solve this, using the latest versions of everything, by changing the version # of my app (e.g. 1.0.1 -> 1.0.2). Think this worked as I had a previous submission sitting in the queue for my older version that I had rejected, YMMV.

Related

Xcode App Store Connect Operation Error: Could not find or load main class 12

I'm trying to upload my build to the App Store using Xcode 12 and I receive the error message:
App Store Connect Operation Error
Could not find or load main class 12
The app is built with SwiftUI. Has anyone faced a similar issue?
Any chance you had renamed the Xcode executable?
I originally experienced the same behavior (I had renamed Xcode.app to XcodeGM.app).
The issue went away after I closed Xcode & renamed the executable back to Xcode.app.
Note that my app is swift + some objc so I don't think that the language is a factor.
I had the same problem... It was because I had several versions of Xcode on my computer.
Make sure the current version of Xcode you are using is titled Xcode and not Xcode-beta, Xcode-2, Xcode 2 or anything other than just Xcode.
You can change the application's title in the Finder (you may need to rename the old version to something else first).
I had the same problem. It was because I download Xcode from browser and did not add Xcode to the applications. I add it and then run xcode from applications, app successfully uploaded.
edited:
I just simply drag Xcode(that I downloaded from browser) to the applications folder

Xcode 9.2 Upload to App Store fails with description length and invalid toolchain errors

I've read through a bunch of forums including here:
https://forums.developer.apple.com/thread/87862
and some Stack Overflow posts.
I have tried modifying my plist using the proposed solution of
find Products/ -name Info.plist -print0 | xargs -0n1 plutil -replace BuildMachineOSBuild -string 16A323
in the archive directory that I'm trying to load, and I'm still receiving the error below. I believe I have valid Xcode and Mac OS versions. I'm running Xcode 9.2 which was released today and High Sierra 10.13.1. Why does my upload fail with these errors and how can I fix it?
The errors in text (to make this post more searchable):
The following issues occurred while distributing your application.
⚠ iTunes Store Operation Failed
description length:2651858
⚠ iTunes Store Operation Failed
ERROR ITMS-90534: "Invalid Toolchain. New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, macOS, and iOS SDK or later. Don't submit apps built with beta software including beta macOS builds."
Right-Click on the archive file (.xcarchive) > Show Package Contents > Products > Applications > Right-Click on the app file > Show Package Contents > Double-Click on Info.plist to edit it
Change value of DTXcodeBuild from 9C40b to 9C40
Re-submit and it will work
Edit/Disclaimer: this is just a trick to bypass the upload process, iTunesConnect still doesn't allow submission with 11.2 so this is not the right solution.
I started with several "iTunes store operation failures". While fixing the other errors, I keep trying to fix this "description length" error too - but it always failed.
So I solved all other errors first and suddenly this error was gone too.
I BELIEVE this error depends on other errors. The last error I fixed was called "Storyboard file not found")
Xcode 9.2
UPDATE:
Although my option may let you upload the package to iTunesConnect successfully, but may fail when you click Submit for Review.
Check this screenshot
Right-Click on the archive file (.xcarchive) > Show Package Contents > Products > Applications > Right-Click on the app file > Show Package Contents > Double-Click on Info.plist to edit it
Change DTXcodeBuild's value from 9C40b to 9C40 and it will work.
There is a discussion on this subject : https://forums.developer.apple.com/thread/93253
They advise to wait for the deployment of the new Xcode version number on the backend or come back to Xcode 9.1, it seems it works.
UPDATE : Change the DTXcodeBuild doesn't work
Hard Clean Product worked for me.
Hard clean the product by Command + Shift + Alt + K, then upload a new build to AppStore.
I hope this will work for you too.
Already Fixed, just try again to submit the app.
This issue was solved for me with installing the latest stable release of Xcode 9.2 (mac OSX Sierra 10.12.6)
I found a workaround it:
Download Xocde 9.1 from https://developer.apple.com/download/more/
Make a fresh archive then upload it. It worked for me.
P.S. I did not send for review but I sent it to internal testers including myself.

iOS Builds: This build is invalid in iTunes connect

I recently uploaded an app to the app store and its been processing for a few days now. I went in this morning to check everything out, and on the top bar of iTunes connect, i clicked on iOS builds to see how everything was going and I got a red circle with an exclamation point in it. When I clicked on it, it says "This build is invalid". Does anyone know the cause of this?
Check your email, it tells you exactly what is wrong. In itunes connect it simply says "This build is invalid" which is kind of useless. If you check your email it will most likely be a testflight issue as you included the sdk in your build and its integrated into itunes connect now:
"TestFlight SDK - TestFlight no longer requires an SDK to enable beta testing, crash reporting and analytics. To continue using TestFlight, set up Beta Testing in iTunes Connect and remove references to the SDK from the following executables:"
I was facing the same problem. I solved it by good luck after couple of hours of struggle. This issue was due to cocoa pods. Actually I installed "Alamofire" through cocoapods versions "0.38". I updated the pods for Alamofire 3.1.2. This build successfully got uploaded to the itunes connect but was declared as invalid in itunesConnect.
This reason was Alomofire 3.1.2 required cocoapods version 0.39. But I updated it using 0.38. So it was the issue.
Fix: Normal updating cocoapods by using the cpmmand $ gem install cocoapods, and then updating alamofire would not fix the problem. You will have to :
1. Update cocoapods using $ gem install cocoapods.
2. Delete the existing pod references from your project.
3. Reinstall pods using pod install command.
4. Done
You could validate the app archive trough Xcode and get details of what is the problem. The archives are currently found under Window->Organizer. To validate it you can click the "Validate..." button under the "Upload to App Store..." button. This may help you if you didn't get an email with details for the problem as was my case.
I got the same problem too. and It turns out that I archive the build with Reveal framework reference. I think that's the problem.
In the pass, I made the same mistake and Xcode shows detail error info during uploading. Now it seems not.
I got the same problem too. I write a App with Objective-C and use ios-charts(is swift),and I need to support iOS7,so it is troublesome... and when I upload app to AppStore I get the problem. I submit it again ,but still the problem. then I despair to clean the project and reset the codesiganature,what... that work! I just hehele ... enter image description here
In my case I just Drag and Drop The SDK In folder include info.plist file which is not in use. That's create the issue for me. So find the unused info.plist file and delete it from the Source code. Clean the project folder and Re upload.
Recently I faced the same issue on iTunes Connect and I received an email from apple regarding to TestFlight SDK that I forgot to remove from my project bundle. It says 'TestFlight no longer requires an SDK to enable beta testing' so after removing SDK clean the code, make archive again and upload. That't it!

xcode sumbission the application you have selected does not exist

Has anyone seen such an error ? What does it mean ?
It was an update of already existed app.
Xcode automatically manage provisioning profiles.
Xcode 6.3.2
OS X Yosemite 10.10.3
try to use Application Loader (https://itunesconnect.apple.com/apploader/ApplicationLoader_3.0.dmg)
Had the same problem with Xcode 6.4, but went thru using Application Loader
Or you can open it from Xcode -> Open Developer Tools -> Application Loader
I finally got my binary uploaded to iTunesConnect.
Archive your app in Xcode as normal. (I'm still using 6.2)
In Organizer, select the archive, Export, select Ad Hoc or App Store. This saves an .ipa file.
Open AppLoader, select "Deliver Your App", click "Choose", select the .ipa file from step 2. Follow the prompts.
Notes
Going this route, you won't need to recreate the In-App-Purchase that AppLoader expects when you start from scratch.
I got a warning that the API analysis file being too large, but I think that can be safely ignored.
The uploaded binary has a warning that the entitlement for TestFlight Beta testing is missing, but I don't use that, and it can also be ignored.
If you have xcode < 7.x then you are going to face this problem..What fixed for me was building the project from xcode 6.x(mine 6.4) and then opening xcode > 7.x (mine 7.0) and then uploading app from there...
Note:You dont need to build app from xcode 7.x . Just open the xcode
and select window organizer...select the build and upload...
In my case firstly I installed last Xcode version 7.1
In my application I used GoogleMaps.framework, I opened it's bundle and removed "Executable file" and "CFSupportedPlatforms" from Info.plist, then I did the same to all my added frameworks
Finally fixed this problem, first you need to upload it with Application loader. Cause when the error happen, you can have more detail about it.
This is the Issues I got, and I found that the version numbers are the same as those library in cocoapod or other library. To solve this. Go thought all the info.plist. And change the Bundle versions string, short, and Bundle version to higher value, in my cause version number > 1.3.5.
hope this can help :D
Im stuck with the same issued, solved by download xcode 7 and submit app with it, error gone!. Hope it help everyone!.
I was using atool from a shell script to verify and upload builds to TestFlight, then I found this thread and decided to follow #bwang's advice to use the Application Loader, and it worked!
I didn't have to download ApplicationLoader because it already comes bundled with Xcode 6.4, I just opened Xcode, then from the Dock I right clicked the Xcode icon, and then I selected "Open Developer Tools > Application Loader".
I hope Apple fixes this issue soon, because its breaking many CI tools like jenkins when using it to upload builds using atool.
Encountered the same issue, tried all the options mentioned but no luck, Finally could solve the issue by modifying 3rd parties info.plist
Search all info.plist files in your project and see where each and every plist has "Bundle Identifier". If not add it and submit via application loader.
When Xcode submission isn't working, upload using Application Loader instead:
Archive from Xcode.
Save the resulting .IPA file.
Upload with Application Loader.
That solves this issue and many other times when Xcode upload isn't working. Additionally, if it still fails, it will often give you a more detailed error message output.

iTunes Connect CFBundleShortVersionShort must contain a higher version

Today Xcode is giving me problems when attempting to upload a build to iTunes connect. It's giving me the following errors:
What's very strange is my application's CFBundleVersionShortVersionString is 2.0.0. I uploaded a build to TestFlight yesterday and it worked just fine. Then I did a search for CFBundleVersionShortVersionString, and I found a 1.0.0 and 0.5.1, but they were in the info.plist in the Pods. Why is this error all of a sudden appearing? I know I'm not supposed to change anything in the Pods. Has anyone come across this issue and if so how can you fix this?
It looks like there was an issue created for this same issue in CocoaPods - https://github.com/CocoaPods/CocoaPods/issues/4421
blixt mentions...
I think it's the iTunes Connect servers entirely, and not Xcode 7.0
nor Xcode 7.1. This issue appears to have started around 10 am PDT. It
is definitely a bug, and we fixed it by bumping our dependency's
Info.plist CFBundleShortVersionString up to the same version as our
app, and voila – iTunes Connect accepted the bundle.
This is an annoying fix but it seems like fixing the individual Info.plist files short version (that your dependencies may have) up to your app version should get you passed this error for now. This is definitely not a long term solution though.

Resources