Post

Replies

Boosts

Views

Activity

Where can I get used Offer Codes from?
I would like to programmatically keep track of offer codes that have been used. I just configured a Test Offer Code (Reference name), which contains 500 codes (Offer Codes) to buy a 1-month subscription for 0,49€. I was able to redeem the code and everything works, but I was expecting to receive the used code. Instead I received the Reference name in the payload from the App Store Server Notification in the field offer_code_ref_name="Test Offer Code". (expected was sth like offer_code_ref_name="JFFDS61SBJDBJ5BXJS4BX") I would be able to identify the Reference name by the code, if it was provided, because I have the following table in my app's backend: reference_name | code | url | expires_at | used | reserved Test Offer Code | xadz | zzz | 31-07-2022 | t | f Test Offer Code | asdf | xxx | 31-07-2022 | f | f The used code doesn't seem to be included in the latest receipt. How can I obtain it? Can I somehow call App Store Connect API? Thanks
5
0
3k
Apr ’24
Present Offer Code Price Programmatically
Hi, I have a 12 months subscription which I generated some offer codes for. I generated 25000 of them manually in App Store Connect (One-Time Use Codes). I want to send those codes to users by push notifications and I need to show the final price when the code will be applied. The problem is that I use the native sheet, which only shows the price after the user entered the code. Is there an API that I can hook into to retrieve that price? Otherwise, the best I could do would be to calculate ActualPrice * Discount (because I know the discount since I created the codes), but I am afraid it will not be accurate enough, because it is not possible to select price for offer codes with that precision.
0
0
774
Apr ’24
Offer Codes cannot be redeemed
I have been using the Offer Codes that can be generated in App Store Connect (up to 25k per quarter). They had worked before, but at some point of time they just stopped working. My production device (iPhone 13 Pro) doesn't even render the redemption screen properly and says the code expired, even if it didn't. (already submitted a bug report, sadly without answer till this day: https://feedbackassistant.apple.com/feedback/12261784) Apart from that, I asked some friends to try to redeem a test offer code for me and surprisingly, the native redemption screen is rendered properly, but the code cannot be redeemed. (Clicking "Redeem" doesn't show the payment sheet) Any idea what the cause can be and how to fix it? To me it looks like it is a problem with StoreKit API, because I followed the documentation on how to use the native iOS offer code redemption sheet and I don't even receive an app store notification. Looks like there is a problem between the device and Apple's API.
5
1
2.3k
Dec ’23
Automatically add device frames to screenshots
I need to add frames to auto-generated screenshots for multiple devices and multiple languages so that I can display these on my app's landing page. I guess it must be quite a standard task so my question is: Is there anything that can be reused to get this job done? All screenshot file names contain: language device name generation I would prefer not to have to manually add frames to 10 screenshots * number_of_devices * number_of_languages. Right now I actually only need iPhone Pro (not Max) and iPad Pro 12.9 (newest gen), but in the future I might need it for other devices too.
4
0
8.6k
Mar ’23
Apple Email Relay
Hi, I am receiving some bug reports from the users of my app and I would like to either thank you or ask for details via email. The use the "hide my email" option, which makes it harder for me to just directly write them an email. I have configured SendGrid to support Apple Email Relay when sending emails programmatically, but I'd like to have a quick and easy way to just write a single email or two sometimes. What would be the easiest way to be able to send an email from Gmail to someone using Apple Email Relay? Thank you!
0
0
1.1k
Dec ’22
Introductory offer - Trial + Reduced Price
Hi, I would like to create an introductory offer that includes a 1-week trial period and a reduced price for the initial period. But it seems that with the Introductory offers it is either or. Apple's documentation says that I should be using "Introductory offers to attract new customers" so I don't want to use Promotional offers for that. Also, I'd like to have the benefit of Introductory offers, which allows them to be claimed only once and not be available after that anymore. Any advice how I can implement this? Thanks
1
0
2.9k
Apr ’22
Custom fonts & support for many languages
My language learning app needs to support a lot of languages and text paragraphs containing 2 different languages are not uncommon. (e.g. German grammar explained in Arabic) Now, I want to integrate a custom font to make the design unique and consistent across multiple platforms (iOS, Android, Web), but there is basically no single Font that supports all languages. The question is: What is the recommended way of implementing that on the code level in SwiftUI? If I just hardcode: .font(Font.custom("myFont", size: 16)) then I guess it is not gonna work if the text contains a language not supported by my custom font. The Apple's default font seems to handle all languages perfectly, even if they are mixed together and I'd like to have something like that, but with a custom font. Specifically, I'd like to integrate FF Din font: https://www.myfonts.com/fonts/fontfont/ff-din/ with supported Languages: Western Europe, Vietnamese, Central/Eastern Europe, Baltic, Turkish, Romanian, Cyrillic, Greek So I am wondering what I would do about Chinese, Arabic, etc. Thanks
0
1
1.9k
Feb ’22
Provisional Notifications - no device token
I have been following the official Apple documentation on how to set up notifications in my app: https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications I noticed there is this option .provisional, which doesn't ask the user for authorization, but instead it is granted right away and then notifications are delivered quietly to the notification center's history. So far so good, but once I am granted authorization for sending .provisional notifications, the callback with the DeviceToken does not fire. I have this method in my AppDelegate:    func application(     _ application: UIApplication,     didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data   ) {     let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) }     let token = tokenParts.joined()     ManagementService.sharedInstance().storeDeviceToken(token: token)   } And it fires when authorization for normal notifications is granted, but it doesn't for the provisional notifications. So the question is—how can I deliver the provisional notifications if I don't have the device token? My plan was to do the following: ask for authorization to send provisional notifications on first app launch and send the device token to my server ask for authorization to send normal notifications some time later (let's say after a week or after completing some action in the app) EDIT: Found the problem—I was calling the same method to register for remote notification after being granted authorization for both provisional and normal notifications:    func getNotificationSettings() {    UNUserNotificationCenter.current().getNotificationSettings { settings in      guard settings.authorizationStatus == .authorized else { return }             DispatchQueue.main.async {       UIApplication.shared.registerForRemoteNotifications()      }           }   } In this case settings.authorizationStatus == .authorized is false for provisional notifications (even though they are always authorized...). So I just omitted checking of settings.authorizationStatus for provisional notifications and the device token is there.
2
0
1.6k
Jan ’22
SwiftUI - geometry inconsistent on iPad simulator and real device
After running automated UI tests it turned out that my app looks quite different on iPad simulator than on real iPad. I have my iPad Pro 12,9" right next to me and the app looks completely fine, but on Simulator (same device model on Simulator) the geometry is simply wrong. I use SwiftUI's GeometryReader to properly place elements, add horizontal padding if the screen width is wide and in landscape orientation. It is not the worst case, because on real device everything looks fine, but I wanted to use screenshots generated by these tests and the ones taken on iPad Simulators are simply useless. iPhone Simulator is totally fine. Am I doing something wrong? Has anybody encountered this? I run the tests in the following way: projectName="./MyProject.xcodeproj" schemeName="MyProject" simulators=( ...    "iPhone 12 Pro Max" ...    "iPad Pro (12.9-inch) (5th generation)" ... ) languages=(   "en" ... ) appearances=(   "light"   "dark" ) xcrun simctl boot "$simulator" xcrun simctl ui "$simulator" appearance $appearance xcodebuild -testLanguage $language -scheme $schemeName -project $projectName -derivedDataPath '/tmp/MyProjectDerivedData/' -destination "platform=iOS
1
0
2k
Dec ’21
What are the results of changing the deployment target?
Hi, I have launched an app built with SwiftUI for iOS 14+. It turned out that SwiftUI for iOS 15+ introduced some quite important changes for my app (most of all better support for NavigationLinks and managing keyboard with FocusState). From now on, I'd like to only release updates for iOS 15+, but I don't want to lose any users and any ratings/reviews on the App Store. Could someone please let me know what the exact outcomes of setting the deployment target to a newer iOS are? Is it that the users with iOS older than iOS 15, will simply not see/receive updates? Will all the ratings and reviews be intact? Thank you
0
0
955
Nov ’21
Are Introductory Offer Dates Inclusive?
Let's say I want to create an introductory offer starting from the 1st of November till the end of the year. (it should begin at 01-11-2021 00:00:00 and expire at 31-12-2021 23:59:59) Which of the options below is correct in that case? Option 1 Start date: 1 November End Date: 31 December Option 2 Start date: 1 November End Date: 1st of January
1
0
1.3k
Nov ’21
Where can I get used Offer Codes from?
I would like to programmatically keep track of offer codes that have been used. I just configured a Test Offer Code (Reference name), which contains 500 codes (Offer Codes) to buy a 1-month subscription for 0,49€. I was able to redeem the code and everything works, but I was expecting to receive the used code. Instead I received the Reference name in the payload from the App Store Server Notification in the field offer_code_ref_name="Test Offer Code". (expected was sth like offer_code_ref_name="JFFDS61SBJDBJ5BXJS4BX") I would be able to identify the Reference name by the code, if it was provided, because I have the following table in my app's backend: reference_name | code | url | expires_at | used | reserved Test Offer Code | xadz | zzz | 31-07-2022 | t | f Test Offer Code | asdf | xxx | 31-07-2022 | f | f The used code doesn't seem to be included in the latest receipt. How can I obtain it? Can I somehow call App Store Connect API? Thanks
Replies
5
Boosts
0
Views
3k
Activity
Apr ’24
Present Offer Code Price Programmatically
Hi, I have a 12 months subscription which I generated some offer codes for. I generated 25000 of them manually in App Store Connect (One-Time Use Codes). I want to send those codes to users by push notifications and I need to show the final price when the code will be applied. The problem is that I use the native sheet, which only shows the price after the user entered the code. Is there an API that I can hook into to retrieve that price? Otherwise, the best I could do would be to calculate ActualPrice * Discount (because I know the discount since I created the codes), but I am afraid it will not be accurate enough, because it is not possible to select price for offer codes with that precision.
Replies
0
Boosts
0
Views
774
Activity
Apr ’24
Offer Codes cannot be redeemed
I have been using the Offer Codes that can be generated in App Store Connect (up to 25k per quarter). They had worked before, but at some point of time they just stopped working. My production device (iPhone 13 Pro) doesn't even render the redemption screen properly and says the code expired, even if it didn't. (already submitted a bug report, sadly without answer till this day: https://feedbackassistant.apple.com/feedback/12261784) Apart from that, I asked some friends to try to redeem a test offer code for me and surprisingly, the native redemption screen is rendered properly, but the code cannot be redeemed. (Clicking "Redeem" doesn't show the payment sheet) Any idea what the cause can be and how to fix it? To me it looks like it is a problem with StoreKit API, because I followed the documentation on how to use the native iOS offer code redemption sheet and I don't even receive an app store notification. Looks like there is a problem between the device and Apple's API.
Replies
5
Boosts
1
Views
2.3k
Activity
Dec ’23
Automatically add device frames to screenshots
I need to add frames to auto-generated screenshots for multiple devices and multiple languages so that I can display these on my app's landing page. I guess it must be quite a standard task so my question is: Is there anything that can be reused to get this job done? All screenshot file names contain: language device name generation I would prefer not to have to manually add frames to 10 screenshots * number_of_devices * number_of_languages. Right now I actually only need iPhone Pro (not Max) and iPad Pro 12.9 (newest gen), but in the future I might need it for other devices too.
Replies
4
Boosts
0
Views
8.6k
Activity
Mar ’23
Apple Email Relay
Hi, I am receiving some bug reports from the users of my app and I would like to either thank you or ask for details via email. The use the "hide my email" option, which makes it harder for me to just directly write them an email. I have configured SendGrid to support Apple Email Relay when sending emails programmatically, but I'd like to have a quick and easy way to just write a single email or two sometimes. What would be the easiest way to be able to send an email from Gmail to someone using Apple Email Relay? Thank you!
Replies
0
Boosts
0
Views
1.1k
Activity
Dec ’22
Introductory offer - Trial + Reduced Price
Hi, I would like to create an introductory offer that includes a 1-week trial period and a reduced price for the initial period. But it seems that with the Introductory offers it is either or. Apple's documentation says that I should be using "Introductory offers to attract new customers" so I don't want to use Promotional offers for that. Also, I'd like to have the benefit of Introductory offers, which allows them to be claimed only once and not be available after that anymore. Any advice how I can implement this? Thanks
Replies
1
Boosts
0
Views
2.9k
Activity
Apr ’22
Custom fonts & support for many languages
My language learning app needs to support a lot of languages and text paragraphs containing 2 different languages are not uncommon. (e.g. German grammar explained in Arabic) Now, I want to integrate a custom font to make the design unique and consistent across multiple platforms (iOS, Android, Web), but there is basically no single Font that supports all languages. The question is: What is the recommended way of implementing that on the code level in SwiftUI? If I just hardcode: .font(Font.custom("myFont", size: 16)) then I guess it is not gonna work if the text contains a language not supported by my custom font. The Apple's default font seems to handle all languages perfectly, even if they are mixed together and I'd like to have something like that, but with a custom font. Specifically, I'd like to integrate FF Din font: https://www.myfonts.com/fonts/fontfont/ff-din/ with supported Languages: Western Europe, Vietnamese, Central/Eastern Europe, Baltic, Turkish, Romanian, Cyrillic, Greek So I am wondering what I would do about Chinese, Arabic, etc. Thanks
Replies
0
Boosts
1
Views
1.9k
Activity
Feb ’22
Provisional Notifications - no device token
I have been following the official Apple documentation on how to set up notifications in my app: https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications I noticed there is this option .provisional, which doesn't ask the user for authorization, but instead it is granted right away and then notifications are delivered quietly to the notification center's history. So far so good, but once I am granted authorization for sending .provisional notifications, the callback with the DeviceToken does not fire. I have this method in my AppDelegate:    func application(     _ application: UIApplication,     didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data   ) {     let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) }     let token = tokenParts.joined()     ManagementService.sharedInstance().storeDeviceToken(token: token)   } And it fires when authorization for normal notifications is granted, but it doesn't for the provisional notifications. So the question is—how can I deliver the provisional notifications if I don't have the device token? My plan was to do the following: ask for authorization to send provisional notifications on first app launch and send the device token to my server ask for authorization to send normal notifications some time later (let's say after a week or after completing some action in the app) EDIT: Found the problem—I was calling the same method to register for remote notification after being granted authorization for both provisional and normal notifications:    func getNotificationSettings() {    UNUserNotificationCenter.current().getNotificationSettings { settings in      guard settings.authorizationStatus == .authorized else { return }             DispatchQueue.main.async {       UIApplication.shared.registerForRemoteNotifications()      }           }   } In this case settings.authorizationStatus == .authorized is false for provisional notifications (even though they are always authorized...). So I just omitted checking of settings.authorizationStatus for provisional notifications and the device token is there.
Replies
2
Boosts
0
Views
1.6k
Activity
Jan ’22
SwiftUI - geometry inconsistent on iPad simulator and real device
After running automated UI tests it turned out that my app looks quite different on iPad simulator than on real iPad. I have my iPad Pro 12,9" right next to me and the app looks completely fine, but on Simulator (same device model on Simulator) the geometry is simply wrong. I use SwiftUI's GeometryReader to properly place elements, add horizontal padding if the screen width is wide and in landscape orientation. It is not the worst case, because on real device everything looks fine, but I wanted to use screenshots generated by these tests and the ones taken on iPad Simulators are simply useless. iPhone Simulator is totally fine. Am I doing something wrong? Has anybody encountered this? I run the tests in the following way: projectName="./MyProject.xcodeproj" schemeName="MyProject" simulators=( ...    "iPhone 12 Pro Max" ...    "iPad Pro (12.9-inch) (5th generation)" ... ) languages=(   "en" ... ) appearances=(   "light"   "dark" ) xcrun simctl boot "$simulator" xcrun simctl ui "$simulator" appearance $appearance xcodebuild -testLanguage $language -scheme $schemeName -project $projectName -derivedDataPath '/tmp/MyProjectDerivedData/' -destination "platform=iOS
Replies
1
Boosts
0
Views
2k
Activity
Dec ’21
What are the results of changing the deployment target?
Hi, I have launched an app built with SwiftUI for iOS 14+. It turned out that SwiftUI for iOS 15+ introduced some quite important changes for my app (most of all better support for NavigationLinks and managing keyboard with FocusState). From now on, I'd like to only release updates for iOS 15+, but I don't want to lose any users and any ratings/reviews on the App Store. Could someone please let me know what the exact outcomes of setting the deployment target to a newer iOS are? Is it that the users with iOS older than iOS 15, will simply not see/receive updates? Will all the ratings and reviews be intact? Thank you
Replies
0
Boosts
0
Views
955
Activity
Nov ’21
Are Introductory Offer Dates Inclusive?
Let's say I want to create an introductory offer starting from the 1st of November till the end of the year. (it should begin at 01-11-2021 00:00:00 and expire at 31-12-2021 23:59:59) Which of the options below is correct in that case? Option 1 Start date: 1 November End Date: 31 December Option 2 Start date: 1 November End Date: 1st of January
Replies
1
Boosts
0
Views
1.3k
Activity
Nov ’21