Hello, I'm using the App Store Connect API to check and modify subscription prices. I know there can be only 1 outstanding future price change for subscription pricing, so I check for any scheduled future price changes (after today's date) and then delete them before setting new ones.
This works 95% of the time -- except in the last little bit before the date changes. For example, if it is 1 hour before midnight and tomorrow's date is when the scheduled price change goes into effect, when I try to delete, I'll get something like this:
The request failed with response code 409 ENTITY_ERROR.
There is a problem with the request entity. Cannot delete Subscription Price with id . Only future price changes can be deleted.
If I look at the same subscription in App Store Connect, it will still show it as a future price change, and won't show the usual buttons to modify or delete it. However, in App Store Connect, I can still hit the "+" button to create a new price change and it will successfully delete and replace the pending price change, which will then appear with the usual Delete and Edit buttons.
My first thought was that maybe it was a timezone issue, but if I go to put the new pricing into effect, that request fails with an error like this:
"errors" : [ {
"id" : "5a51c570-1f38-4fa0-b490-9fa979f4aecf",
"status" : "409",
"code" : "STATE_ERROR",
"title" : "The request cannot be fulfilled because of the state of another resource.",
"detail" : "Must delete future price change before creating a new price change."
} ]
So... my questions are:
Is this expected behavior?
How can App Store Connect replace the pending price change in the final hours but I can't do it with the API?
As a workaround, is there a set amount of time before the price change goes into effect where the prices should no longer be editable?
Thanks!
Post
Replies
Boosts
Views
Activity
Hello all,
In the App Store Connect API:
Apps have /v1/appPriceSchedules/{id}/baseTerritory.
IAPs have /v1/inAppPurchasePriceSchedules/{id}/baseTerritory.
...but:
Auto-renewing subscriptions don't have a corresponding endpoint for getting the base territory
However, the App Store Connect website does indeed require you to set a base territory when creating new auto-renewable subscriptions.
Why's that?
More importantly, what's the best way of determining what to use for a base territory?
Thank you!!
Hello!
I'm using the App Store Connect API to get some pricing information for my apps and in-app purchases. If I'm understand correctly, I first need to get the base territory and then get pricing schedules for that territory, and the process looks to be the same across both App information and In-App Purchase information, even though those each use different API endpoints.
My question is about Base Territory. I thought that was a thing that's the same across an entire App Store Connect team, but I see these two APIs:
(1) Read the base territory for an app's price schedule
and
(2) Read the selected base territory for an in-app purchase price schedule
The fact that both of these exist implies that IAPs can have a different base territory than the app itself, and that different apps can have different base territories, or even that different IAPs in the same app could have different base territories. Is that actually true?
Or, do both APIs exist for convenience - so that if you're dealing with an IAP you can use that API instead of the app API, for example?
The reason I'm asking is that I'd like to be as efficient as possible with API calls.
Right now, in order to get prices for all apps in my account and all IAPs, I believe I need to call:
To fetch all pricing information:
/v1/apps - Get list of all apps
For each app:
/v1/appPriceSchedules/{appId}/baseTerritory - Get base territory
/v1/appPriceSchedules/{appId}/manualPrices?filter[territory]={territoryId} - Get prices for base territory
/v1/apps/{appId}/inAppPurchasesV2?include=iapPriceSchedule - Get IAPs
/v1/apps/{appId}/subscriptionGroups?include=subscriptions - Get auto-renewable subscriptions
For each IAP:
If type is NOT non-renewing subscription:
/v1/inAppPurchasePriceSchedules/{iapId}/baseTerritory - Get base territory
/v1/inAppPurchasePriceSchedules/{iapId}/manualPrices?filter[territory]={territoryId} - Get prices
If type IS non-renewing subscription OR auto-renewable subscription:
/v1/subscriptions/{iapId}/prices?filter[territory]={territoryId} - Get subscription prices
This is getting what we want, but hat's a LOT of API calls. Are there steps here we can shortcut or cut out? I'm looking for the current, manually-set prices for everything.
Thanks very much!
Hello!
I'm using the App Store Connect API and am trying to find out if there is a way to get historical pricing for apps, in-app purchases, and/or subscriptions? I see https://developer.apple.com/documentation/appstoreconnectapi/get-v1-apppriceschedules-_id_, as well as similar APIs for in-app purchases and subscriptions, but those don't appear to return (or give a way to return) anything historical.
Thanks!
Hello!
I'm running Xcode 16 and can't find the "Continue building after errors" setting anymore. Anybody know where to find it?
The documentation says it's in the General tab of Xcode preferences, so that seems out of date.
Thanks!
Hello,
I'm seeing many errors like this in the Xcode debug console when I build and run my app:
ERROR: Unrecognized attribute string flag '?' in attribute string "T@"NSString",?,R,C" for property debugDescription
The app project makes heavy use of Logger(), and I suspect it is related to that logging in some way, but I haven't been able to narrow down the issue to specific log calls.
I have Category, Subsystem and Timestamp enabled in the Xcode console, but none of those are displayed for this output.
What causes this? Or how can I better narrow down the source?
Okay, so I created a new Xcode project using SwiftData, and ticked the box for iCloud integration. I added a container on the web dashboard. Then I added “ = Date()” to the definition of Item.timestamp so that it has a default value. I added the container to my Xcode project..
Then I added this “let config” and “let container” and changed the “.modelContainer” like this:
This will successfully add stuff to core data, which also appears in iCloud dashboard.
BUT, if I delete the app and re-launch, I don’t see the existing iCloud data until the SECOND launch, even though the Xcode runtime log shows it fetched it.
Do I need to do some magic to get it to refresh? Is the CloudKit subscription managed by SwiftData or do I need to do something for that?
thanks!
I was just watching the Enhance voice communication with Push To Talk WWDC22 session video and was wondering (a few questions) --
(1) (when) will you be making the demo app available that was shown at the beginning of the video?
(2) There was some detail given regarding the new APNs push type ("pushtotalk"), but it was unclear to me if that's something I need to handle manually, or if those will be sent automatically when I do channelManager.requestBeginTransmitting?
(3) How does the audio data itself get routed around? Is that handled by the system between the requestBeginTransmitting and stopTransmitting calls? Or somehow part of the APNs payload? Or something we must handle?
Thank you!
thanks!!
Hello!
I'm working on a new app, and DYLD_PRINT_STATISTICS=1 is not working - i.e., not producing any output.
Build platform:
MacBook Pro (15-inch, 2018)
macOS Monterey, 12.0 beta 6 (21A5506j)
Xcode 13.0 beta 5 (13A5212g)
Test device:
iPad 8th generation
iPadOS 15.0 beta 8 (19A5340a)
I'm setting it as usual in Product -> Scheme -> Edit Scheme, then going to "Run" tab on the left and choosing "Arguments" on the top. In that screen I enter "DYLD_PRINT_STATISTICS" for Name and "YES" for Value. Nothing prints.
I also tried:
Using "1" for Value instead of "YES"
Entering "DYLD_PRINT_STATISTICS=YES" as Name and leaving Value blank
Entering "DYLD_PRINT_STATISTICS=1" as Name and leaving Value blank
Every combination of the above, but as command-line arguments instead of environment variables.
Also, I tried "DYLD_PRINT_APIS" as Name and "YES" as Value, and that works normally.
What's going on here?
Is it something with the all-SwiftUI lifecycle?
An issue with the beta macOS/Xcode/iPadOS?
Thanks!
I'm seeing an error trying to test out async let. It seems like this should work, based on the async/let and structured concurrency session videos.
Here's the code:
func doIt() async -> String {
let t = TimeInterval.random(in: 0.25 ... 2.0)
Thread.sleep(forTimeInterval: t)
return String("\(Double.random(in: 0...1000))")
}
async {
async let a = doIt()
async let b = doIt()
async let c = doIt()
async let d = doIt()
let results = await [a, b, c, d]
for result in results {
print(" \(result)")
}
}
But, I get this error for every "async let" statement:
error: AsyncLetSwift55WWDC21.playground:12:15: error: expression is 'async' but is not marked with 'await'
async let a = doIt()
^
await
Am I missing something key, or is this a bug?
I'm running this in the Xcode 13.0 beta, in a Playground.
Thanks!!
I've got a project repo that includes some submodules. In one of my submodules, I checked out a different commit. Neither the original repo nor the submodule have any changes.
Once you get in this situation, you cannot change branches.
For example, I am in "develop" branch, and I want to switch to "main".
In Xcode, I control-click the "main" branch and choose "Check-out". This fails with an error that says, "The working copy has conflicting, uncommitted changes. Commit or discard the changes and try again."
However, if I go to the Source Control menu and choose "Discard All Changes...", I get an error, "Cannot Discard Changes. There are no uncommitted changes in the working copies for this project."
The Source Control Navigator, under Changes, under Local Changes, shows the submodule with a "?" as the status.
It looks to me that Xcode 13 is confused by the submodule -- in one spot setting that changes exist, in another, acting as if there are no changes.
Am I missing something?
The Xcode 13 part of the SOTU video and the https://developer.apple.com/xcode/ page mention "Team Comments" -- this seems really cool. But... how do you get the comments? And can you ADD or EDIT comments within Xcode? Or just see them?
I've tried with a github repo and a bitbucket one but don't see those.
Thanks!
Suddenly today I'm getting this error when I click "Distribute App" in Xcode 12.5:
No App Store Connect account:
No accounts with App Store Connect access have been found for the team "XXXXXXXXXXXX". App Store Connect access is required for App Store Connect distribution.
Then it lists my several accounts below, and next to each, under "Issue", it says "Unable to authenticate with App Store Connect".
I can login to AppStoreConnect via the website, with no issues, and my account is the account owner.
There are no updated terms or developer agreements etc to accept and no banking or tax info to update.
I tried deleting the account from Xcode and re-adding it. It adds without trouble, but then fails at this point.
Ideas?
I'm trying to update to the macOS Big Sur beta (day 1!) but the installation keeps failing with a timeout.
I get a popup that says:
An error occurred installing macOS.
The request timed out.
If I go into /var/log/install.log, there's some detail here, showing that bridgeOS timed out.
What's the fix for this?
Here are the last lines of the install.log file:
2020-06-22 23:46:18-05 Andrews-MacBook-Pro-4 osinstallersetupd[384]: Started downloading package com.apple.pkg.BridgeOSBrain (http://swcdn.apple.com/content/downloads/04/28/001-18400-A_9PR1LXEKFC/czmgv59ffn8j0u96xf2tu7tiu2ykcp3izt/BridgeOSBrain.pkg)
2020-06-22 23:46:18-05 Andrews-MacBook-Pro-4 osinstallersetupd[384]: Retrieved package com.apple.pkg.BridgeOSBrain (http://swcdn.apple.com/content/downloads/04/28/001-18400-A_9PR1LXEKFC/czmgv59ffn8j0u96xf2tu7tiu2ykcp3izt/BridgeOSBrain.pkg)
2020-06-22 23:46:18-05 Andrews-MacBook-Pro-4 osinstallersetupd[384]: Starting bridgeOS update prepare
2020-06-22 23:56:18-05 Andrews-MacBook-Pro-4 osinstallersetupd[384]: bridgeOS update prepare timed out!
2020-06-22 23:56:18-05 Andrews-MacBook-Pro-4 osinstallersetupd[384]: Operation queue failed with error: Error Domain=com.apple.OSInstallerSetup.error Code=601 "An error occurred installing macOS." UserInfo={NSLocalizedDescription=An error occurred installing macOS., NSLocalizedRecoverySuggestion=The request timed out.}
2020-06-22 23:56:18-05 Andrews-MacBook-Pro-4 InstallAssistant[375]: Stopped operation queue with Error Domain=com.apple.OSInstallerSetup.error Code=601 "An error occurred installing macOS." UserInfo={NSLocalizedDescription=An error occurred installing macOS., NSLocalizedRecoverySuggestion=The request timed out.}
Any ideas?
Since updating to Xcode 11.2, I am unable to run any projects on iOS device at all.In each case, after the project builds, I get a popup that says "Unable to install "EDC_Manager"" (EDC_Manager is my app name.). If you click details, you see this text:DetailsUnable to install "EDC_Manager"Domain: com.apple.dtdevicekitCode: -402620394--The executable was signed with invalid entitlements.Domain: com.apple.dtdevicekitCode: -402620394Failure Reason: The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).User Info: { DVTRadarComponentKey = 487927; "com.apple.dtdevicekit.stacktrace" = ( 0 DTDeviceKitBase 0x000000011f0e46e7 DTDKCreateNSError + 109 1 DTDeviceKitBase 0x000000011f0e4de9 DTDK_AMDErrorToNSError + 792 2 DTDeviceKitBase 0x000000011f12456a __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 164 3 DVTFoundation 0x0000000105db9156 DVTInvokeWithStrongOwnership + 73 4 DTDeviceKitBase 0x000000011f124301 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1589 5 IDEiOSSupportCore 0x000000011efaca25 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.352 + 4523 6 DVTFoundation 0x0000000105eea3ba __DVT_CALLING_CLIENT_BLOCK__ + 7 7 DVTFoundation 0x0000000105eeba92 __DVTDispatchAsync_block_invoke + 809 8 libdispatch.dylib 0x00007fff6431a583 _dispatch_call_block_and_release + 12 9 libdispatch.dylib 0x00007fff6431b50e _dispatch_client_callout + 8 10 libdispatch.dylib 0x00007fff64320ace _dispatch_lane_serial_drain + 597 11 libdispatch.dylib 0x00007fff64321452 _dispatch_lane_invoke + 363 12 libdispatch.dylib 0x00007fff6432aa9e _dispatch_workloop_worker_thread + 598 13 libsystem_pthread.dylib 0x00007fff6457471b _pthread_wqthread + 290 14 libsystem_pthread.dylib 0x00007fff6457457b start_wqthread + 15);}--I thought it was a problem with my project, so I completed a completely new project in Xcode and built that, but it gets the same error.The problem occurs in Xcode 11.2.And it occurs in the 11.2.1 (11B53) GM Seed.If I revert to Xcode 11.1, everything works normally.The mac is a 2018 MBP running Catalina 10.15.1, and the iOS device is an 11 Pro Max running iOS 13.2.I tried other iOS devices also, including one running iOS 12, but the problem persists.I was hoping this was something fleeting on Apple's side, but it seems to be persisting as an issue.Thanks for any help or ideas!Andrew