Receipt validation errors on submission to Mac app store - macos

On Mac App Store submission my app get rejected with following explanation:-
"With a valid receipt installed, the app quits on launch. The Console reports the app "Exited with exit code: 173" and the OS states the app "is damaged and can't be opened". This generally indicates that the app is not verifying its receipt correctly."
I do not do any receipt validation in my code at all so what can I do to fix this? It happens only on review, not on my side. This is simple swift ui + Objective-C+ some C++ for logic OS X application. With other app, (Objective-C + CPP) everything was alright.

After all this happened to be bug on the reviewer side. I asked to reexamine my app in Resolution center and it passed the review. Thanks to #Aderstedt I felt more confident that it's not my bug.

Related

Hockeyapp send handled error from os x

I'm using Hockey app for crash reports for my mac osx application (xamarin.mac).
I need to send handled error message (or stacktrace) from the application.
I found solution for android with sending feedback programmatically, but when I look at BITFeedbackActivity.h here is not such possibility
https://github.com/bitstadium/HockeySDK-iOS/blob/develop/Classes/BITFeedbackActivity.h
is there any solution?

Missing "com.apple.security.app-sandbox" while App distribution

I got strange issue with app distribution to Mac App Store.
I got MainApp and HelperApp. http://take.ms/GS3sRn
After being uploaded i receive mail from Apple.
Dear developer,
We have discovered one or more issues with your recent delivery for
"Monosnap". To process your delivery, the following issues must be
corrected:
App sandbox not enabled - The following executables must include the
"com.apple.security.app-sandbox" entitlement with a Boolean value of
true in the entitlements property list. Refer to the App Sandbox page
for more information on sandboxing your app.
Monosnap.app/Contents/Library/LoginItems/MonosnapLauncher.app/Contents/MacOS/MonosnapLauncher
Once these issues have been corrected, go to the Version Details page
and click "Ready to Upload Binary." Continue through the submission
process until the app status is "Waiting for Upload." You can then
deliver the corrected binary.
Regards,
The App Store team
At the project level all items are sandboxed:
1 - http://take.ms/9S9BJ
2 - http://take.ms/nFNY9
Here the result of checking with terminal
.entitlement file has correct info
codesign from terminal gives me this : http://take.ms/j4o2vh
How can i enable sandbox to helperApp?
In Xcode 5, what you only need to do is turning "App Sandbox" on in Capabilities tab for your project target. It'll generate a file named project_name.entitlements for you automatically.
This works for me, and it changed to "Waiting for Review" state now. ;)

Obtaining OS X app store receipts on test builds

Been trying tonight to obtain a receipt for my app. However, I've been unsuccessful. Here's the steps I've done:
Code signed with developer cert
Made sure minimum version in the info.plist is 10.7
Checked for the presence of the receipt file and called exit(173) if not found
Built from XCode 4.2
Added a new version of the app and some in-app metadata in itunesconnect. The app status is now waiting for a new binary.
I've then done clean, build, right clicked on the app in XCode's project view and opened it in finder to launch it, hopefully failing validation and pulling a receipt back from the store.
However, this never seems to happen (don't get asked for any itunes login etc) and the app terminates immediately.
I've also gone through an entire build/archive/create installer type process as well but that didn't pop up the login either.
Am I missing something obvious?
Thanks!
I've finally got it working. In case anyone else has a similar problem, the real help for me was finding out about console.app. In running this I could see my app didn't appear to be signed.
I deleted all the certificates etc and re-installed new ones. Seems it HAS to be the Mac 3rd party developer. Nothing else seemed to work.

Application failed codesign verification

I know that there are many articles all over the Internet about this, but no matter how hard I try, I can't find an answer to this question:
I want to submit my finished app to the iOS App Store. I just archived my iOS application in Xcode 4, and I clicked the "Validate..." button in the Organiser. When the app is validated, Xcode tells me this:
Application failed codesign verification. The signature was invalid, or it was
not signed with an Apple submission certificate.
I have a distribution profile that I used to codesign in the target app.
I am not using Application Loader because it is telling me that
Application Loader is currently unavailable... an error occurred talking to the
iTunes store
But the question is, what is wrong with my app, and how can I fix it.
Thanks in advance.
check 2 things in the build log (detail view), search for "embedded.mobileprovision" to see if it's embedded, and check under "CodeSign" if the certificate is the one that you are using for distribution.

Current receipt invalid or mismatched ds person id

I am trying to test In-App purchases for MacOS. After entering the test user credentials, the App Store complains: "Current receipt invalid or mismatched ds person id." and the purchase fails.
Some of the many things I tried to get around this problem.
Getting App Store Receipts
UPDATE: Here is Rainer Brockerhoff's comment from the bottom that article. Much more elegant solution.
I don't see the need for all those contortions...
To debug my receipt checking code, I just build, then show the product
app in the Finder. Double-click it once and it will exit(173), then
you'll get the receipt into the bundle.
Now go back to Xcode and debug the checker. The receipt will stay
there until you clean; you can do all that again, or copy the receipt
elsewhere and put it back after build - at one point I had the receipt
reinserted by a build script.
If you want to test out the archived app, show the product in the
Finder, then go up a few folder levels to the "Release" folder, and
there'll you see the app - you can double-click it from there.
The long procedure for getting a receipt:
Archive the app
Within Xcode organizer
Select Distribute...
Export as: Mac Installer Package
Finally install it from the commandline like this
sudo installer -store -pkg (path to package including filename) -target /
Now the app should contain a receipt at this path
/Applications/SampleApp.app/Contents/_MASReceipt/receipt
Verification Email
Apple sends an email when you create a Test User within iTunes Connect.
Email subject:
Please verify the contact email address for your Apple ID
My mail ended up in my spam folder, so I never saw it. Thus never got verified the Test User Account.
Check Status
Within iTunes Connect under Manage Your Apps > SampleApp > Manage In-App Purchases
Here the status should say: Ready to Submit
If it doesn't, then you may need to upload a screenshot.
I will answer my own question. I watched the video called "In-App Purchase for iOS and Mac OS X" on http://developer.apple.com/videos/wwdc/2011/.
The key part was regarding downloading the app receipt at launch. The code to include in the App Delegate was something like:
- (void) applicationWillFinishLaunching:(NSNotification *)notification
{
if(![[NSFileManager defaultManager] fileExistsAtPath:[[[NSBundle mainBundle] appStoreReceiptURL] path]]) {
NSLog(#"to get sandbox receipt, the app must be launched from outside xcode");
//exit(173);
}
}
i myself was very much in trouble in order to integrate In-App Purchase in Mac OS X.
I googled a lot but nothing came with the solution. Finally, apple developers came to rescue. the basically told the reason in wwdc 2012 that there was a bug in MAC OS X (version 10.7.2) due to which one was not able to receive the receipt.
This bug has been solved in the latest version ie MAC OS X (version 10.7.4)
i simply upgraded my OS and was able to get the receipt. So friends who so ever get the problem "Current receipt invalid or mismatched ds person id." simply upgrade the OS to 10.7.4 and the apso write down the following code in your app delegate "applicationDidFinishLaunching" method-
if(![[NSFileManager defaultManager] fileExistsAtPath:[[[NSBundle mainBundle] appStoreReceiptURL] path]]) {
NSLog(#"to get sandbox receipt, the app must be launched from outside xcode");
exit(173);
}
and run ur code for first time outside the XCode. then after receiving the recipt u can debug again from the XCode.
Every time you clean the build u have to run ur app outside the XCode.
Is the receipt for the application that you run was also for the same test user as the one that you try to perform In-App purchase for?
If your debug version runs without a proper receipt (from the same test user) I doubt the In-App purchase will work. Don't use the sample receipt when you want to test In-App purchase, use a real one from the same test user as you're going to buy the In-App product.
I have succeeded performing In-App purchase in my own Mac App (though it's still not in the store) so if you have more questions, fire away.

Resources