Apple Developer Program

RSS for tag

Create and deliver software for users around the world on Apple platforms using the the tools, resources, and support included with Apple Developer Program membership.

Apple Developer Program Documentation

Posts under Apple Developer Program subtopic

Post

Replies

Boosts

Views

Activity

Apple Development Enrollment Payment
Hi, Yesterday I enrolled in the Apple Developer Program through the app (like the website said) and it seemed to work fine. I went through everything in the app and then I had to pay for the service, so I did. (the invoice says Apple Developer Program (Automatic Renewal): $96.99 + VAT). I can see this transaction on my bank statement as well. After finishing the the Developer app said "Wait for an email" or something similar for a day until now it says "Enrollment through the apple developer app is not available for this apple account". I found this odd so I logged in to my account in a browser (on a PC) to see what's up and there it still says if I click my name "Pending". The weird thing is that there is this banner that says "Purchase your membership." and a link to complete my purchase??? As if I did not purchase it yesterday. So in desperation I decided to see what's up and went through this process on my PC now and it took down my order and I got a prompt in the browser to wait 2 days (48 hours). Will I get charged twice? Also this time it prompted the price: $99.
2
0
329
Feb ’25
Authentication failed because the remote party sent a TLS alert: 'HandshakeFailure'
Around March 25th, the payment function of my app suddenly failed to successfully parse payment information, while the previous functions were normal. The normal logic is that we will send payment information to this address on Apple( https://buy.itunes.apple.com/verifyReceipt )We will receive a parsed file in JSON format. But this time we did get an error, which is as follows 2025-03-26 16:46:58.0064 (HttpHelper.cs:78) Exception ex: System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System. Security.Authentication.AuthenticationException: Authentication failed because the remote party sent a TLS alert: 'HandshakeFailure'. We have tried many solutions and have not received any improvement. I would like to ask if you have recently upgraded something that has caused some old code to become unusable. Hope you can provide us with some solutions, thank you!
2
0
152
Mar ’25
Apple Music Catalog API returns HTTP 500 for all catalog endpoints with valid developer token
I’m calling the Apple Music API server-to-server using a developer token (ES256) created under my Developer account. Storefront probe succeeds: GET /v1/storefronts/us -> HTTP 200 All catalog endpoints return 500 (search, artists, charts) across multiple storefronts: GET /v1/catalog/us/search?term=rema&types=artists&limit=1 -> HTTP 500 GET /v1/catalog/us/artists/1359441424 -> HTTP 500 GET /v1/catalog/us/charts?types=songs&chart=most-played&genre=0&limit=5 -> HTTP 500 GET /v1/catalog/gb/... same results (500) I created the Media Services key ~48–72 hours ago. Media Services is enabled and associated with my Media ID. Developer token uses alg ES256, kid=<KEY_ID>, iss=<TEAM_ID>, exp ~6 months. Clock is NTP-synced. Sample request (curl) and recent response headers: curl -i -H "Authorization: Bearer " "https://api.music.apple.com/v1/catalog/us/search?term=rema&types=artists&limit=1" Response (truncated): HTTP/2 500 x-apple-jingle-correlation-key: NBZFUP7RVJBZOWVPIBVGUFMBLI x-apple-application-site: st x-daiquiri-instance: daiquiri:42282005:st53p00it-... Date: 2025-10-13T16:54:22Z This occurs consistently from different networks and with different storefronts. The same token returns 200 for /v1/storefronts/us. Please advise or route to engineering. Happy to provide full JWT header/payload (minus signature) and full response logs.
2
0
237
4d
Unable to save App ID capabilities in Apple Developer portal
Hello, I’m experiencing an issue in the Apple Developer portal when trying to manage my App ID capabilities. Whenever I try to enable or disable a capability and click Save, the page shows the loading spinner but then nothing is saved. App ID: com.kangarli.lucary Team ID: (my Apple Developer account’s Team ID) Tested on different browsers (Safari, Chrome), cleared cache and cookies The issue affects all capabilities, not just Associated Domains Other sections of the Developer portal work normally Is this a known issue with the Developer portal, or is there any workaround? Thanks in advance.
2
1
381
Sep ’25
IOS Development Certificates are being created under the incorrect Team ID
I am experiencing a critical issue with the IOS Development Portal where certificates are being created under the incorrect Team ID despite being logged into the correct team context. in the Portal also in Xcode. I am logged into the Apple Developer Portal under "Company LLC (Team ID: 12345678)" However, when creating "Apple Development" certificates through the portal, they are being assigned Team ID "987654321" (my personal developer account) This occurs even when explicitly creating certificates from within the Company LLC team context. Also the same if i create the IOS Development in Xcode as well. This is preventing me from Archive my app in Xcode so i can upload the new version in the App Store. Please Help. Thank you in advance.
2
0
135
Oct ’25
Apple pay processing payment fail
Hey, I am trying to implement the apple pay process pay backend service, I have checked everything and somehow it fails. I only have 1 certificate for merchant and 1 for the apple pay process, I have the private keys and try to run this following code that fails - import crypto from 'crypto'; import fs from 'fs'; import forge from 'node-forge'; const MERCHANT_ID_FIELD_OID = '1.2.840.113635.100.6.32'; function decryptedToken() { const token = ""; const ephemeralPublicKey = ""; const encryptedData = ""; //=================================== // Import certs //=================================== const epk = Buffer.from(ephemeralPublicKey, 'base64'); const merchantCert = fs.readFileSync('merchant_full.pem', 'utf8') const paymentProcessorCert = fs.readFileSync("apple_pay_private.pem"); //=================================== let symmetricKey = ''; try { symmetricKey = restoreSymmetricKey(epk, merchantCert, paymentProcessorCert); } catch (err) { throw new Error(`Restore symmetric key failed: ${err.message}`); } try { //----------------------------------- // Use the symmetric key to decrypt the value of the data key //----------------------------------- const decrypted = JSON.parse(decryptCiphertextFunc(symmetricKey, encryptedData)); console.log("Decrypted Token:", decrypted); // const preppedToken = prepTabaPayToken(token, decrypted) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Send decrypted token back to frontend //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // res.send(preppedToken); } catch (err) { throw new Error(`Decrypt cipher data failed: ${err.message}`); } } // extractMerchantID - const extractMerchantID = (merchantCert) => { //=================================== // Extract merchant identification from public key certificate //=================================== try { const info = forge.pki.certificateFromPem(merchantCert); const result = info['extensions'].filter(d => d.id === MERCHANT_ID_FIELD_OID); //----------------------------------- // Return //----------------------------------- return result[0].value.toString().substring(2); } catch (err) { throw new Error(Unable to extract merchant ID from certificate: ${err}); } } // generateSharedSecret - const generateSharedSecret = (merchantPrivateKey, ephemeralPublicKey) => { //=================================== // Use private key from payment processing certificate and the ephemeral public key to generate // the shared secret using Elliptic Curve Diffie*Hellman (ECDH) //=================================== const privateKey = crypto.createPrivateKey({ key: merchantPrivateKey, format: "pem", type: "sec1", // because it's "EC PRIVATE KEY" }); const publicKey = crypto.createPublicKey({ key: ephemeralPublicKey, format: 'der', type: 'spki' }); //----------------------------------- // Return //----------------------------------- return crypto.diffieHellman({privateKey,publicKey: publicKey,}); //----------------------------------- } // getSymmetricKey - const getSymmetricKey = (merchantId, sharedSecret) => { //=================================== // Get KDF_Info as defined from Apple Pay documentation //=================================== const KDF_ALGORITHM = '\x0didaes256GCM'; const KDF_PARTY_V = Buffer.from(merchantId, 'hex').toString('binary'); const KDF_PARTY_U = 'Apple'; const KDF_INFO = KDF_ALGORITHM + KDF_PARTY_U + KDF_PARTY_V; //----------------------------------- // Create hash //----------------------------------- const hash = crypto.createHash('sha256'); hash.update(Buffer.from('000000', 'hex')); hash.update(Buffer.from('01', 'hex')); hash.update(Buffer.from(sharedSecret, 'hex')); hash.update(KDF_INFO, 'binary'); //----------------------------------- // Return //----------------------------------- return hash.digest('hex'); //----------------------------------- } // restoreSymmetricKey - const restoreSymmetricKey = (ephemeralPublicKey, merchantCert, paymentProcessorCert) => { //=================================== // 3.a Use the payment processor private key and the ephemeral public key, to generate the shared secret //=================================== const sharedSecret = generateSharedSecret(paymentProcessorCert, ephemeralPublicKey); //----------------------------------- // 3.b Use the merchant identifier of the public key certificate and the shared secret, to derive the symmetric key //----------------------------------- const merchantId = extractMerchantID(merchantCert); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Return //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ console.log("Merchant ID:", merchantId); console.log("Shared Secret (hex):", sharedSecret); return getSymmetricKey(merchantId, sharedSecret); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } // decryptCiphertextFunc - const decryptCiphertextFunc = (symmetricKey, encryptedData) => { console.log("🔑 Decrypting Ciphertext with Symmetric Key:", symmetricKey); //=================================== // Get symmetric key and initialization vector //=================================== const buf = Buffer.from(encryptedData, 'base64'); const SYMMETRIC_KEY = Buffer.from(symmetricKey, 'hex'); const IV = Buffer.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); // Initialization vector of 16 null bytes const CIPHERTEXT = buf.slice(0, -16); //----------------------------------- // Create and return a Decipher object that uses the given algorithm and password (key) //----------------------------------- const decipher = crypto.createDecipheriv("aes-256-gcm", SYMMETRIC_KEY, IV); const tag = buf.slice(-16, buf.length); decipher.setAuthTag(tag); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Load encrypted token into Decipher object //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ let decrypted = decipher.update(CIPHERTEXT); console.log("🔑 Decrypted Data"); decrypted += decipher.final(); //::::::::::::::::::::::::::::::::::: // Return //::::::::::::::::::::::::::::::::::: return decrypted; //::::::::::::::::::::::::::::::::::: } decryptedToken();
2
0
105
Sep ’25
Changing Developer Account type from Organization (Business) to Individual
I have just started the process of closing down my limited company and would like to change my Apple Developer ID account type from Business (Organization) to Individual to release my apps under my own name. I was planning on releasing software in the App Store under my limited company, but I encountered an issue (https://developer.apple.com/forums/thread/759605) that has blocked the development for almost a year and Apple has never bothered to fix the issue. This has forced me to close down the company. I have decided I will be releasing the software as an open source project. All I want now is to be able to sign the software using my regular, personal Apple Account ID. However, my Apple Account is currently tied to my company's Organization Developer Account. It is registered as a business with business accounts, the App Store Connect agreements are signed by my company, and everything else on my Developer profile is tied to that company. I do not see the option to close down the company/business account. The only relevant post I found online was here: https://developer.apple.com/forums/thread/702447 Unfortunately, people mention in the comments that the workaround does not actually work. I have tried reaching Developer Support but had no response via email, and I cannot schedule a call back via the Support page because I cannot verify my overseas phone number. Seems like I have a really tough luck with Apple Developer ecosystem... Has anyone ever managed to do this? Any help much appreciated!
2
0
328
Feb ’25
Payment problems
I've been contacting Apple Developer support since last Friday because I am trying to open an individual apple developer account. I have opened 2 or 3 tickets and tried paying the $99 fee 2 times, 2 times I wasn't charged at all. I haven't got any reply to the support tickets and I don't know what to do... my request id 102537013023
2
1
262
Feb ’25
Can't renew, can't update contact info
I originally created my Apple Developer account when I was living in Canada (years ago). Now that I live in the U.S. I want to renew it, but I can't - because it thinks I'm still in Canada. When I go to change my contact information, I get a screen that says: "Unauthorized Your account can’t access this page. There may be certain requirements to view this content. If you’re a member of a developer program, make sure your Account Holder has agreed the latest license agreement." What do I do?
2
3
696
Dec ’25