My company did an app for a customer 10 years ago. The app has in-app purchases (not subscriptions). It is an Objective-C code base. Over the years we've done minor updates to this app in order to keep it in compliance, but no major overhaul.
The app has been pretty reliable in the past, but recently my customer is getting a flood of complaints from users who say their in-app purchases disappear and can't be restored. It's happening too often to just be a case of bad internet connection or similar issue. The only thing that seems to be consistent is that it's never US-based users.
Whenever I test this app using sandbox accounts, I cannot reproduce the problems that are being reported. I'm always able to make purchases and restore them after reinstalling the app, or restore them to a different device. The content associated with the purchases always downloads correctly, even if I intentionally interrupt and restore internet access.
What can I do to figure this out? Should an IAP based app from 2014 be expected to work correctly today? Are there new legal issues with non-US app stores that we need to be aware of?
I realize there isn't a lot to go on here, but I don't have any more information.
Thanks,
Frank
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
If I'm talking to a Bluetooth (BLE) device using the Core Bluetooth functions, and I need to send or receive multiple packets (such as if I need to communicate a large message) is it guaranteed that the packets will arrive in the same order they were sent?
I'm assisting a customer with an iOS app. He has a personal (non-company) Apple Developer account. I know that this kind of account didn't used to support collaborators, but I'm not sure what the current status is.
He was able to add me to his account and give me permissions (Developer, App Manager). However when I run Xcode, his account does not appear in the list of Teams under my Apple ID, which is preventing me from working.
Is this a bug or temporary problem or is the fact that his account is a personal account preventing me from doing this?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Store Connect
Developer Program
Code Signing
I'm setting up Auth0 to work with my app according to their instructions. I need to add an associated domain, but it doesn't work. When I try to use Auth0, it returns a message that says "Application with identifier (my-bundle-id) is not associated with domain (my-auth0-domain)".
In Signing & Capabilities, I have the Associated Domains capability set up with this domain: "webcredentials:(my-auth0-domain)". I also added another version with ?mode=developer on the end of it, but neither works.
I am sure that the domain I'm using is correct because I'm able to use it in Postman to authenticate with Auth0. I checked everything else against their documentation and samples several times.
I need to decode JSON into a class. The JSON has a field called "Type", and I cannot declare a property with that name in my class since Type is a reserved word.
I tried declaring CodingKeys, but that doesn't work unless I declare EVERY property in the CodingKeys. This class has about a hundred properties and I have others like it, I do not want to do this.
Is there a better solution?
My company wants to build two apps for two separate product lines, but we want our users to be able to sign in to both apps with the same credentials, and we want Sign In with Apple to be an option. Is it possible to associate the apps with one another in a way that Sign In with Apple will produce the same token for the same Apple ID in both apps?
Hi,It seems like it's pretty easy to consume HTTP Live Streaming content in an iOS app. Unfortunately, I need to consume media from an RTSP server. It seems to me that this is a very similar thing, and that all of the underpinnings for doing it ought to be present in iOS, but I'm having a devil of a time figuring out how to make it work without doing a lot of programming.For starters, I know that there are web-based services that can consume an RTSP stream and rebroadcast it as an HTTP Live Stream that can be easily consumed by the media players in iOS. This won't work for me because my application needs to function in an environment where there is no internet access (it's on a private Wifi network where the only other thing on the network is the device that is serving the RTSP stream).Having read everything I can get my hands on and exploring third-party and open-source solutions, I've compiled the following list of ideas:1. Using an iOS build of the open-source ffmpeg library, which supports RTSP, I've come up with a test app that can receive the RTSP packets, decode them, create UIImages out of the frames, and display those frames on-screen. This provides a crude player, but performance is poor, most likely because ffmpeg can't take advantage of any hardware acceleration. It also doesn't provide me with any way to integrate the video stream into AVFoundation, so I'm on my own as far as saving the stream to a file, transcoding it, etc.2. I know that the AVURLAsset class doesn't directly support the RTSP scheme. Since I have access to the undecoded RTSP packets via ffmpeg, I've thought it should be possible to implement RTSP support myself via a custom NSURLProtocol, essentially fooling AVFoundation into reading those packets as if they originated in a file. I'm not sure if this would work, since the raw packets coming from the RTSP server might lack the headers that would otherwise be present in data being read from a file. I'm not even sure if AVFoundation would recognize my custom protocol.3. If a protocol doesn't work, I've considered that I might be able to implement my own local HTTP Live Streaming server that converts the RTSP packets into an HTTP stream that the media players can read. This sounds like a terribly convoluted solution to the problem, at best, and very difficult at worst.4. Going back to solution (1), if I could speed up the decoding by using some iOS CoreVideo function instead of ffmpeg, this solution might be okay. However, I can't find any documentation for CoreVideo on iOS (Apple only documents it for OS X).5. I'm certainly willing to license a third-party solution if it works well and provides good performance. Unfortunately, everything I've found so far is pretty crummy and mostly just leverages ffmpeg and/or VLC. What is most disappointing to me is that nobody seems to be able or willing to provide a solution that neatly integrates with AVFoundation. I really want to make my RTSP stream available as an AVAsset so I can use it with AVFoundation players and other classes -- I don't want to build an app that relies on custom third-party code for everything.Any ideas, tips, advice would be greatly appreciated.Thanks,Frank
Hi,I have an app that was approved and is "Pending developer release".While we were waiting to release the app, someone found a bug that we'd like to fix.Unfortunately, I can neither upload a new version of the app, nor create a new version in iTunes Connect (the option to add a new iOS version is disabled).Is there any way to revoke the approved version without releasing it to the app store? I don't mind having to wait for Apple to review the updated version again.Frank
I've seen examples of Swift code with #if DEBUG / #endif, and have even used it myself.I know exactly how preprocessor macros work in c, c++ and Objective-C. In those languages, I know I can say:#ifdef DEBUG ... some code ...#endifAnd I know that if the DEBUG flag is false at build time, the code will not only not run, but it won't even be compiled. This is important to me because the code inside that block contains some sensitive information that must not end up in my compiled code for non-debug builds.In Swift, I'm really not sure what happens. I know the code doesn't execute, but I'm also told that Swift doesn't have a preprocessor. So, what exactly is going on here?Specifically, can I hide sensitive information inside an #if DEBUG block in Swift and be assured that it won't get compiled or in any way be present in the executable when the DEBUG flag is false? Or is #if DEBUG evaluated at runtime in Swift?Thanks,Frank
Xcode won't remember my Git credentials if I close and re-open it. It remembers them while Xcode is running, but always asks me again whenever I shut it down and reopen it.
My Git repository is hosted with Beanstalk, which is not one of the ones listed in the drop-down list in Xcode.
I have saved my credentials with Git on the command line and I'm able to do Git command line operations without re-entering them, but Xcode doesn't seem to recognize this.
I'm really getting tired of retyping my password all the time. What else can I do?
I'm confused about the SF Pro fonts. Can these be used in our apps?
I tried pasting characters from SF Pro into a label, but was unable to get them to display properly. "SF Pro" doesn't appear in the list of available fonts in Xcode.
If these are not intended to be used by app developers, then what is their purpose?
Are "SF Symbols" different that SF Pro? What about the list of icons that appears in the "Symbols Library" in Xcode? There are so many different sources of symbols and icons, it is very confusing.
If any of these sources is OK to use in an iOS app, is it also OK to export them for use in the event that business needs require me to create an alternate version of my app for some hypothentical non-iOS platform?
Thanks,
Frank
Is there any way an account owner can authorize a different user to accept updated license agreements?
I manage multiple apps on behalf of customers, most of whom fail to accept these agreements until the day they need me to publish a new app and I have to hunt them down and ask them to do it. If it were one or two customers it wouldn't be a big deal, but I have nearly 40 of them, and this happens several times per year. It's a major hassle.
I have a new app that needs to be submitted for review this week. When I tried to submit it, I was told I could not do so because "Under the Digital Services Act, you must provide and verify information regarding your account".
I am working on behalf of a large corporate customer. They are telling me that they cannot do anything without consulting their legal team, which is going to take time. In the meantime, they asked me if I could omit the European region from the app's distribution list. I tried this, but it did not work.
I manage about 20 apps for different customers and I have never seen this requirement appear on any other account. Is it new? Does it only apply to certain kinds of accounts, or to new apps, or new accounts publishing their first app?
If this is a European Union requirement, why is it needed if I don't distribute to EU countries?
Thanks,
Frank
I have an extremely straightforward situation where an @IBOutlet in a ViewController is connected to a property in an XIB file. I've been working with iOS apps for more than ten years, and done this about a million times.
For some reason, the property becomes nil at some point after the view is loaded. I can check with the debugger to see that it is not nil at viewDidLoad, and there is nothing in my code that sets it to anything else.
I added a custom setter and getter to the variable so that I could stop in the debugger when it gets set, and the setter only gets called once, with a non-nil value.
I suspect that somehow, a different copy of my ViewController is getting instantiated, but when it does, there are no calls to any of the usual methods like viewDidLoad. In fact there is not even a call to the init method. I don't understand how this is possible.
I was added to a team yesterday as a Developer. I can see this team when I log in to App Store Connect, but it does not appear on the Teams list in Xcode. How do I get Xcode to refresh this list?