Post

Replies

Boosts

Views

Activity

Convert stereo to mono dynamically using AVAudioEngine
I am using AVAudioEngine, I have a stereo wav file that I want to use with an AVAudioEnvironmentNode but it requires the input source is mono otherwise it will not spatialize the sounds. Is there some way I can convert the stereo input to mono dynamically, maybe using an avaudiomixernode or something else? It looks like maybe I can use AVAudioConverter to convert the original buffer, but I want to be able to just add a node in the AVAudioEngine graph that can convert it to mono if that is possible, rather than having to convert the input buffer explicitly. So something like: WAV -> AVAudioPlayerNode -> Stereo to mono node -> AVAudioEnvironmentNode
0
0
1.5k
Dec ’22
Crash inside SceneKit [SCNPhysicsField _removeOwner]
I'm seeing a decent number of crash reports from our app where SceneKit is crashing internally relating to SCNPhysicsField. The stack looks like: objc_msgSend -[SCNPhysicsField _removeOwner] -[SCNNode dealloc] AutoreleasePoolPage::releaseUntil(objc_object**) -[UIApplication _run] UIApplicationMain main start It must be that I am removing a node that has a physics field on it and it randomly crashes. Probably threading related? Anyone know if there is a workaround, maybe setting physicsField to nil first before trying to remove the node? Thanks
2
0
1.4k
Oct ’22
WeatherKit available to iOS users in China?
Does WeatherKit work for users in China? Some of our APIs to fetch weather data from other sources have been blocked in China, we are hoping WeatherKit will work as a replacement for them (we are using the Swift APIs to integrate with WeatherKit). Hopefully calling WeatherKit using the Swift APIs inside China from an iOS device will return data successfully and not fail. Thanks.
2
0
847
Sep ’22
WeatherKit REST API attribution logo when not using the Swift wrappers
If you use the iOS16 Swift WeatherKit API you can get the weather data attribution logo doing something like: // Skipping full syntax for example let attribution = WeatherService.shared.attribution // A URL to an image you can show along with the weather data attribution.combinedMarkLightURL What about if you are not using the iOS16 WeatherKit wrappers e.g. you are using the REST API on your own server to return data. The API docs show a providerLogo/providerName parameter in the metadata returned from the service, but they don't seem to be populated right now. Is it ok just to use a unicode Apple logo to make a string instead like:  Weather Also in the API there is a metadata object returned in each dataset e.g. current, daily, hourly which each has an attributionURL field, will all those values always be the same or we might have to display multiple URLs for data sources, the Swift example seems to just have one attribution object.
2
1
1.8k
Jun ’22
WeatherKit REST API production rate limiting
The documentation lists the number of calls per month you can make for the different pricing tiers here: https://developer.apple.com/weatherkit/get-started/ but are there going to be any per second/minute/hour rate limits on calls to the API like with other weather service APIs. For example maybe you get 1,000,000 calls per month but there is some limit like 5 calls per second or 10,000 calls per hour imposed by the APIs? Also what happens if you go over your allowed call limit for the month, will the API just return an error like HTTP 402 or you will get a warning for a period of time? Would you be able to buy extra calls for the month without having to upgrade to a new tier, assuming maybe you are experiencing a temporary increase in traffic.
0
2
1.2k
Jun ’22
Blank scene with xcode connected and "Metal -> API Validation" turned off.
I'm not sure which combination of iOS/XCode/Mac OS is causing this issue, but all of a sudden when I try to run our SceneKit app and the "Scheme -> Diagnostics -> Metal -> API Validation" setting is turned off the scene won't render and the console is just full of the following errors: Execution of the command buffer was aborted due to an error during execution. Invalid Resource (00000009:kIOGPUCommandBufferCallbackErrorInvalidResource) [SceneKit] Error: Main command buffer execution failed with status 5, error: Error Domain=MTLCommandBufferErrorDomain Code=9 "Invalid Resource (00000009:kIOGPUCommandBufferCallbackErrorInvalidResource)"  ) If you run the app outside of xcode it's fine, also enabling the "API Validation" option stops the issue. One of my schemes has this option disabled since the project began and never had an issue before. Just throwing this out there incase someone else has spent hours of their life trying to figure out why this is not working for them. Also you can just create a new SceneKit project and turn that diagnostic option off and the app won't render anything.
2
0
1.7k
Apr ’22
Subscription in iOS subscription list showing productId not localized name
Hi - I have an auto-renew subscription, for some reason when the user looks at their subscriptions in the iOS subscription list the subscription shows the productId as the name e.g. com.company.app.subscriptonName not the localized string e.g. "Foo Monthly Subscription". I have other subscriptions and they all works as expected and show the localized name. The one that is showing the productId is configured the same as the others as far as I can tell, any reason why this is happening and how to fix it? Thanks.
0
0
794
May ’21
Can't test subscription upgrade/downgrade. iOS doesn't use the sandbox account
Hi, I am trying to test my subscription upgrade/downgrade path on a device. I added a test user to the sandbox section of Settings - App Store and can purchase subscriptions using that test user no problem in my app. However, if I click on "Manage" on the sandbox user to see the list of subscriptions, when I try to upgrade/downgrade the purchase UI that iOS shows tries to use my actual personal account instead of the sandbox user, so I can't complete the transaction. Looks like a bug in the sandbox testing flow in iOS, but any way around it? Right now I just simulate updates from apple on my backend to make sure my app behaves as expected, but I would like to actually get some "real" data from Apple.
4
0
2k
Feb ’21
StoreKit resending all purchased events if the user tries to buy the same active subscription [sandbox]
I'm testing an auto renew subscription in the sandbox, one scenario I am testing is to make sure I can handle if I accidentally show the user the purchase button for a subscription they already purchased. In the sandbox when the user clicks buy iOS pops up an alert saying the user already has the subscription, which is good, and doesn't charge again but then I receive one event for every subscription renewal the user has ever had, basically all their previous purchase history via: func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) Is this expected behaviour in production, or just a sandbox quirk? Thanks.
0
0
631
Dec ’20
getTimeline being called even when the phone is locked
I added some logging to my widget and in console.app I can see that the widget getTimeline method is being called even when the users phone is locked. It's been over an hour with my phone locked and the widgets getTimeline method is still being called when the timeline expires. I want the widget to refresh as little as possible when not visible because every call to our API costs money, I don't want widgets just sitting there hitting our server even if someone isn't looking at it. Is there any way to disable this functionality and reduce the number of getTimeline calls when the widget is not visible or the phone is locked? NOTE: I'm not running the app via xcode just incase that triggers some more frequent update path.
0
0
743
Sep ’20
Intent maximum/minimum values not respected in UI
I added an intent definition to my widget, it has a type of "duration" and I set the minimum and maximum values to a range e.g. 1 -> 60. When I edit my widget on the homescreen the intent is shown in the edit menu but I am able to enter numbers outside of the minimum and maximum values, I would expect the UI should prevent this. Is there some extra code I need to add to get the UI to respect the minimum/maximum values I specified in the .intentdefinition file or is this a bug? Running ios:beta7, xcode: beta6 Thanks.
0
0
432
Sep ’20