83
votes

I have developed a phonegap application which is running absolutely fine on iPhone. Now, I want to submit the app to the appstore. Following is the procedure I am following to submit my app:

  1. Open Xcode and archive the project
  2. Click on validate (which is successful)
  3. Click on Submit to appstore (which is where I am getting the following error)

enter image description here

Until yesterday night, I wasn't even getting this error and today morning, I archive the project and I get this error. Not sure what the issue is.

This is the final stage which is stopping me from submitting the app and is very frustrating, I tried to search for the same error code on the stackoverflow forum and I could not find one single post which is exactly of the same error code as mine, which is very strange.

Please help :)

16
Are you sure, your code signing settings are proper?Anil Varghese
I am not sure about it, how do I check that ? Can you please guid me with that ?Nikhil Rao
Nikhil I am getting the same error too since this morning. I just tried to "validate" an old version of my app that was ALREADY APPROVED AND UPLOADED successfully. Other than the expected errors I'm expecting (version already exists in AppStore, version of my application is closed for modification since it is released, etc.) I keep getting this ITMS-90035. I have also validated that my certificates are not revoked (from Apple's developer center). I will update you upon my findings later on today, and will monitor this post to hear yours. Thanks :)Nili
Same here, yesterday i have submitted many builds without errors. Codes and settings have not changed.VinZen
Nikhil solved by removing .sh file from my target as suggested in below answer.Nili

16 Answers

77
votes

I had the same problem, turns out that one of my libraries installed via bower includes a .sh file, which is not needed. I have just deleted the file and everything has been uploaded successfully.

Seems like that Apple now enforces developers to have .sh files in their apps signed. As Cordova/Phonegap app don't need any of them, you can safely delete them.

9
votes

This happened to me after updating to the latest Xcode (6.3.1). It's not just .sh files, as I was getting these errors about node scripts. It appears that ANY file that starts with #!/usr/bin/env will cause these errors. I was able to cause arbitrary errors by adding a #! to a random file.

Temporarily deleting the #!/usr/bin/env directive from the top of the files will work but you'll want a better long-term solution :)

You'll have to fix it by dealing with each script file case-by-case for what makes sense in your project.

As noted above this could be a temporary problem on Apple's side, not necessarily related to Xcode version.

8
votes

EDIT: I managed to avoid this error by removing my projects .sh files from my target.

So far I'd say that's a bug on Apple's side.

I submitted an app yesterday without any issue, rejected it today to submit a slightly altered binary today, but like you I'm now encountering the same error. I thought it was related to Xcode6.3.1 because I installed it this morning so I installed Xcode 6.3.0 again but the error remained. Then I checking everything thoroughly:

  • Certificates
  • Provisioning Profiles
  • iTunes connect application status

But no success so far.

The fact a "itms-90035" Google search returns only 1 result makes me think that may be some temporary incident.

3
votes

As others have said, the problem appears to be due to including files named "upload-dsym.sh" in the app bundle. Here are the steps I took to get past this error: Went to the project settings in Xcode and selected the "Target" app icon. Selected the Build Phases tab. Clicked on "Copy Bundle Resources" Looked for a file being copied named "upload-dsym.sh". I removed that file and then the upload went fine.

3
votes

It has something to do with included .sh files, not that obvious indeed.


In our case, it was the AudioKit library. README says:

In most cases, when building for iOS or tvOS, regardless of how you install the framework, you will need to add a run phase to your project's target with the following script:

"$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/AudioKit.framework/fix-framework.sh"


Sometimes you don't see them directly in your target's build phases. Some of the 3rd party libraries can cause this error because they are dealing with .sh files as well.

Check your 3rd party libraries/pods README's files for more info.

3
votes

In my case I got this error because the app display name had a special character in it. It escapes me why proper error messages cannot be generated.

2
votes

I have the same issue. Then I delete the .sh file. And I submit my app again. Successful!

2
votes

This issue has been resolved in CrittercismSDK CocoaPods 5.2.0 : https://github.com/CocoaPods/Specs/blob/master/Specs/CrittercismSDK/5.2.0/CrittercismSDK.podspec.json

You may either upgrade to sdk 5.2.0 or delete the file and remove the following lines from the Pods-resources.sh file:

    if [[ "$CONFIGURATION" == "Debug" ]]; then 
install_resource "CrittercismSDK/CrittercismSDK/dsym_upload.sh" 
fi 
if [[ "$CONFIGURATION" == "Release" ]]; then 
install_resource "CrittercismSDK/CrittercismSDK/dsym_upload.sh" 
fi 

Thanks

1
votes

We had a very similar problem today and solved it.

ERROR ITMS-90035: "Invalid Signature. A sealed resource is missing or invalid. The binary at path [MyNiftyApp.app/MyNiftyApp] contains an invalid signature. [...]"

We are using Jenkins-CI for the build process together with the xcode-plugin. When I reviewed the jenkins build log I found this error message:

file added: /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app/MyNiftyApp.app
file modified: /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app/Assets.car
]
Codesign check fails : /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app: a sealed resource is missing or invalid

After searching for that Assets.car I found this post: https://issues.jenkins-ci.org/browse/JENKINS-21253 The User had a similar problem, could solve it by deactivating the following plugin option "XCode -> General Build Settings -> Generate Archive? " (it was true before, now it's false).

At least this solved the problem on our side - maybe it will guide you to the correct direction.

1
votes

I resolved this by simply removing the "binary" file(s) in the error.

For you its www/js/release.sh.

For me it was two redundant bower-files, a .sh-file and a .js-file that was located under a "bin"-folder (maybe thats why it thought it was a binary?).

On a side-note, it seems that you could still continue the upload process by just clicking Send after being presented with the errors in Application Loader.

1
votes

I received this same error when I tried to upload my app using ApplicationLoader 3.0. Upgrading to ApplicationLoader 3.1 (i.e. the latest), fixed the issue for me.

1
votes

In the platforms directory run:

grep -r '#!/usr/' *

This will show you all the files that can be executed. Typically this would include .sh and node files.

From the results find the files that are in your project folder (e.g. my project folder was platforms/ios/www/*) and delete them leave the rest.

1
votes

I had the exact same problem. I was writing a bug on the myApp.app/myApp Decision: Look for files that start with special characters or characters other than English. I found, deleted and everything worked!

0
votes

I had same issue using both xcode 6.3.1 and 6.4 beta. Mine said it was my main.o file. I looked in the copy bundle resources and for some reason my project's main file was there. I removed it and archived it again to send up to itunes connect for testflight and it uploaded fine. Took me 3 hrs to figure out it was that stupid file. Home this helps. Seems you need to really pay attention to what your sending up in that "Copy Bundle Resources" in build phases. Whatever file its telling you is a problem remove taht from this area and give it a try.

0
votes

In my case, I got the error when submitting a re-signed ipa file. Turns out I had looked at the application package in Finder, and it had created a .DS_Store file (this was after re-signing with codesign, which would have complained if the file were present at the time of signing).

After removing the .DS_Store file, the upload succeeded.

0
votes

Run the following command (in mac) : codesign --verify -vvvv <your_application>.app

sample:

codesign --verify -vvvv project.app
project.app: a sealed resource is missing or invalid
file missing: /Users/iHTCboy/workspace/Payload/project.app/.DS_Store

Looks like that have a hidden file .DS_Store inside the assets of my app. Kindly find and remove it and try again.

that is work for me