I have tried the passbook tutorial:
http://www.raywenderlich.com/20734/beginning-passbook-part-1
which was recommended in some other SO thread a while ago.
Everything went smoothly, except:
I put the .pkpass file on a local web server, I tried clicking a direct link to the file, hoping it would open on my iOS sim/device, but all I got is "safari was unable to download the file". This also happened with the official iOS pass samples on the Passbook Programming Guide. While on the simulator, no errors come up on the console log.
I tried putting the pkpass in an email, open it from a real device, it comes up ok, but when I click "add", the coupon is not added to passbook. No errors come up either.
I tried creating a pass with passsource.com. If I use their "on the fly" method, I get a good coupon, and I am able to save it. If I choose "download pkpass file" and then use it as described above in #1/#2 - same errors.
The coupon is signed correctly, using correct team id and type id.
My JSON is (I garbled the team/type ids):
{
"formatVersion" : 1,
"passTypeIdentifier" : "pass.com.xxx.xx.xxx",
"serialNumber" : "123",
"teamIdentifier" : "XXXXXXXX",
"organizationName" : "my brand",
"description" : "my coupon",
"logoText" : "logo text",
"foregroundColor" : "rgb(255, 255, 255)",
"backgroundColor" : "rgb(135, 129, 189)",
"labelColor" : "rgb(45, 54, 129)",
"barcode" : {
"message" : "650438-5103453453",
"format" : "PKBarcodeFormatPDF417",
"messageEncoding" : "iso-8859-1"
},
"coupon" : {
"primaryFields" : [
{
"key" : "offer",
"label" : "for you",
"value" : "Free hug"
}
]
}
}
I tested the json with the online validation tool, it's valid.
any ideas why the coupon is not saved/downloaded?
tnx
I just found the cause of the issue. Seem that the Simulator supports drag-drop of a pkpass from Finder on the Sim. If I do that, I DO see a detailed error message in the system log (I am using the Console app), so I found the problem:
1. My json was changed after I created its sig in manifest.json, so I updated the sig
2. If I want the pkpass file to be served as a pass from a web server, it's not enough to provide a direct link to it, I also need to change the content type to application/vnd.apple.pkpass
After I handled both of these issues, I was able to serve the pkpass file from my web server.
Related
Usually the App Store lists specific items that need fixing. However this error does not give any actions and there appears to be no way to remove this specific version.
I have screenshots, text fields, etc. required. There are no sections highlighted in red (like there usually are) and only the screenshots and (simple) whats new text has been changed since the last update, which went through to review fine.
No warnings or errors when uploading the binary in Xcode and the binary and screenshots have been uploaded multiple times with the same outcome.
Screenshot attached:
It turns out our issue was with a "appEncryptionDeclarations" key.
The error was returned from the API call to:
https://appstoreconnect.apple.com/iris/v1/reviewSubmissionItems
(Returned a 409 response code)
Response json:
{
"errors" : [ {
"id" : "...",
"status" : "409",
"code" : "STATE_ERROR.ENTITY_STATE_INVALID",
"title" : "appStoreVersions with id '...' is not in valid state.",
"detail" : "This resource cannot be reviewed, please check associated errors to see why.",
"meta" : {
"associatedErrors" : {
"/v1/appEncryptionDeclarations/" : [ {
"id" : "...",
"status" : "404",
"code" : "NOT_FOUND",
"title" : "The specified resource does not exist",
"detail" : "There is no resource of type 'appEncryptionDeclarations' with id 'null'"
} ]
}
}
} ]
}
The App Store UI was not showing the error or giving any detail to us.
We resolved by deleting the key ITSEncryptionExportComplianceCode and ITSAppUsesNonExemptEncryption from the info plist file. Uploading a new binary (it confirmed the keys were missing). Add back in with the same values as before and re-upload the binary.
Then into the review queue without problem. Hope this helps someone else.
When i try to create a test user in my iTunes connect account I am getting an error like "There are one or more validation errors below.". I have filled all fields and there is no errors shown in the fields.
Safari's web inspector is your friend here. Go to Develop->Show Web Inspector, then select the Network tab. Attempt to set up your new sandbox user. You should see a call highlighted in red - this is the HTTP resource that's hit during the attempted account creation. Click on that, and you should see the server response content, which should contain some more helpful details as a JSON payload – something like:
{
"errors" : [ {
"id" : "afafaf-1334-49ae-aaaa-19303ab5b2c8",
"status" : "409",
"code" : "ENTITY_ERROR.ATTRIBUTE.INVALID",
"title" : "The provided entity includes an attribute with an invalid value",
"detail" : "This email address is not available for use as an Apple ID. You may already have an Apple ID associated with this address. Please try again or sign in using your existing Apple ID.",
"source" : {
"pointer" : "/data/attributes/password"
}
} ]
}
I'm using the titanium module inAppBilling 3.0.1 For Android subscriptions and the app is in alpha testing, but I'm not getting the parameter called "autoRenewing".
The response I'm getting
{ "orderId" : "",
"packageName" : "com.dumy.in",
"productId" : "subscribed',
"purchaseTime" : 2016-17-2,
"purchaseState" : 0,
"purchaseToken" : dhbvhjbGHGHvdjksdkjsnkjvdj38365358njkxjsfjfsfHJGHJ,
}
and the response i want :
{ "orderId" : "",
"packageName" : "com.dumy.in",
"productId" : "subscribed',
"purchaseTime" : 2016-17-2,
"purchaseState" : 0,
"purchaseToken" : dhbvhjbGHGHvdjksdkjsnkjvdj38365358njkxjsfjfsfHJGHJ,
"autoRenewing" : true,
}
You're probably using your Google account as tester - check it in Google Play dashboard.
Make sure on the device you are testing there is only one Google account which is not a tester (I created a new account). It works for me.
To test that this step is working try buying a consumable product you
should see a Google dialog with a message saying this is a test
purchase (or text similar). Once you delete the test account and log
in with new one it should work.
I want to create an extension for Google Chrome, and it will be real simple.
I will have a database on my website's server, it will check if a URL is in the "blacklist" table, and warn the user if it is.
But I don't know where to start. I tried putting all the files on my web server, and changin the manifest.json file as such:
(changed the "default_popup" line)
{
"manifest_version": 2,
"name": "My Extension",
"description": "This extension warns you if you are trying to open a blacklisted URL",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "http://www.mysite.com/my_extension/popup.html"
},
"permissions": [
"https://secure.flickr.com/"
]
}
Note : this file resides on my computer, I load it from the "Extensions" menu of Chrome.
but when I tried to install this extension, I got the error :
This web page could not be found:chrome-extension://hgfdjnsakhkijfmdnadmlacgjggggkpf/http://www.mysite.com/my_extension/popup.html
Instead of trying to hard code it in the manifest file, try putting something like this in a background page:
chrome.browserAction.setPopup({popup: "http://www.mysite.com/my_extension/popup.html"});
However, it may not be possible to specify an external popup page at all.
Nevertheless, it would be better to include the popup in the extension files and then get just the data from your server.
http://i.stack.imgur.com/K81uU.png
you can see the pic,there is a open button,the pic is passbook pass,i do not find any api or pass attribute to finish it. at the pass.json
"backFields" : [
{
"key" : "extras",
"label" : "Discount",
"value" : "Your friends receive 50% off price"
},
{
"key" : "phone",
"label" : "Phone",
"value" : "800-1234567890"
},
{
"key" : "date",
"label" : "Valid time:",
"dateStyle" : "PKDateStyleMedium",
"timeStyle" : "PKDateStyleNone",
"value" : "2013-01-03T00:00Z"
},
{
"key" : "terms",
"label" : "TERMS AND CONDITIONS",
"value" : "Lessons must be used between 1/1/2013 and 3/1/2013. Appointments for lessons must be made no less than 48 hours in advance. Customer must be able to swim."
}
]
i am not find other key or label to finish it. can you help me
If you want to add link to your application, I believe you should use the associatedStoreIdentifiers top-level key.
Optional. A list of iTunes Store item identifiers (also known as Adam IDs) for the associated apps.
Only one item in the list is used—the first item identifier for an app compatible with the current device. If the app is not installed, the link opens the App Store and shows the app. If the app is already installed, the link launches the app.
http://developer.apple.com/library/ios/#documentation/userexperience/Reference/PassKit_Bundle/Chapters/TopLevel.html