Test User creation in iTunes connect - ios

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"
}
} ]
}

Related

Is there a way to submit an iOS app to the App Store when you get "The resource can not be found" error but no details?

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.

API key no longer working, but don't know what account it is aligned with

When calling the YouTube API, we've started getting error responses with the following message:
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Project 418176253215 has been scheduled for deletion and cannot be used for API calls. Visit https://console.developers.google.com/iam-admin/projects?pendingDeletion=true to undelete the project.",
"reason" : "accessNotConfigured",
"extendedHelp" : "https://console.developers.google.com/iam-admin/projects?pendingDeletion=true"
} ],
"message" : "Project 418176253215 has been scheduled for deletion and cannot be used for API calls. Visit https://console.developers.google.com/iam-admin/projects?pendingDeletion=true to undelete the project."
}
However, I cannot use the link provided because I can't find what account was used to create the key for the API (I've inherited the code).
Is there a way to discover what account aligns with a YouTube API key?
There is no documentation in Youtube API which states how to do this because if you own the API key, logging in the Google Dev Console under the given project name should easily display all the API keys being used.

Microsoft Graph - Retrieving invalid contact email address

If an Office 365 contact's email address is invalid (ex: user#example?com), how do I retrieve the the email address with Microsoft Graph?
I've tried /contacts and /contacts/{id}. The first returns an empty address:
"emailAddresses": [
{
"name": "name",
"address": ""
}
]
and the second simply omits it:
"emailAddresses": [
{
"name": "name"
}
]
Edit: By "contact" I mean Outlook contacts accessible in the Office 365 People app, not regular Office 365 users. Sorry if my question was unclear.
I'm not sure if this would work, but perhaps give it a try.
string email = await graphClient.Users[your_users_id].Request().Select("Mail").GetAsync().Mail;
To get the answer above, I used this Get User documentation which briefly talks about Select statements. And this documentation has a list of the properties which are available to the Select statement.
Found an issue on Github that solved my problem.
Turns out an Exchange contact's (first) EmailAddress has an hidden PidLidEmail1OriginalDisplayName in addition to its address.
When you set the email address to an invalid one, the invalid address is stored in the OriginalDisplayName and its address is cleared, which is the reason the contact's email address is (Empty) in Office 365 People's contact list but the invalid address seems to still be there when you edit the contact.
PidLidEmail1OriginalDisplayName is an MAPI property. In order to obtain it, we need to use extended properties. The request should look like below but with the spaces URL-encoded to %20:
GET /me/contacts/{id}?$expand=singleValueExtendedProperties($filter=id eq 'String {00062004-0000-0000-C000-000000000046} Id 0x8084')
The response should include an additional field containing the invalid address:
"singleValueExtendedProperties": [
{
"id": "String {00062004-0000-0000-c000-000000000046} Id 0x8084",
"value": "user#example?com"
}
If the contact has multiple email addresses, use PidLidEmail2OriginalDisplayName/PidLidEmail3OriginalDisplayName for the contact's second or third email address.

Which Messages are supported for subscriptions in commercetools

I'm currently playing with and validating commercetools api.
I want to subscribe to a certain SQS queue, in order to push messages to this queue.
However if im trying to add a subscription for a certain message type, the api returns:
{"statusCode":400,"message":"The TypeId 'DeliveryAdded' is unknown or not supported by subscriptions.","errors":[{"code":"InvalidInput","message":"The TypeId 'DeliveryAdded' is unknown or not supported by subscriptions."}]}] with root cause
For resourceTypeId, I use the above mentioned names (e.g. DeliveryAdded)
The request itself is fine.
I tried some different types, always with the same result. Is there any MessageType, which is actually supported for subscriptions ?
Edit:
POST https://api.sphere.io/some-project/subscriptions HTTP/1.1
{
"destination" : {
"type" : "SQS",
"accessKey" : "XXXXXXXX",
"accessSecret" : "XXXXXXXX",
"region" : "EU",
"queueUrl" : "https://sqs.eu-central-1.amazonaws.com/XXXXXX/YYYYYYYY"
},
"messages" : [ {
"resourceTypeId" : "CustomerCreated"
} ]
for the CustomerCreated Message the resourceTypeId should be customer
please find a list of supported resource type ids on:
http://dev.commercetools.com/http-api-projects-subscriptions.html#changesubscription
you can subscribe to the messages that are documented in the persistent Message API: http://dev.commercetools.com/http-api-projects-messages.html
So "DeliveryAdded" is a message. It could be that you have put the Message type as resourceTypeId (which is "order" in the case of the "DeliveryAdded" message since it's a message related to a change on the order resource).
Can you post your request JSON?
PS: you don't have to have the persistent Messages activated to subscribe to messages.

passbook not saving coupons

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.

Resources