Delve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.

Post

Replies

Boosts

Views

Activity

NSDecimalNumber crash on iOS18 when using decimalNumberByDividingBy
NSDecimalNumber will crash on iOS18 when using decimalNumberByDividingBy in some cases. For example NSDecimalNumber* a= [NSDecimalNumber decimalNumberWithString:@"21000000000"]; NSDecimalNumber* b= [NSDecimalNumber decimalNumberWithString:@"18446744073709551615"]; NSDecimalNumber* c = [a decimalNumberByDividingBy:b]; // this line will crash the crash error is EXC_BREAKPOINT the crash stack is I know some foundation implementation changed on iOS18, But are there some ways to avoid it? It appears on iOS18 only.
1
0
132
1w
camera scan QR code does not work after deleting app clips
We removed the APP Clip feature in the latest version, and our server-side synchronous update the "apple-app-site-association" file, remove "appclips" content. now, i use Camera app scan the QR code(regardless of whether the app is installed), the following error occurs:"This app clip is not currently available in your country or region". I checked some information and it might be due to Apple CDN cache, or is there something else I need to do?
0
0
137
1w
How does font caching / resources for each app work?
I'm a font developer. In the development process, I will revise a font and overwrite the OTF file that is currently enabled (registered) with macOS. If I then launch an app, it will immediately use the revised version of the font; while apps that are already loaded will continue to use the old version. This suggests that each app is loading new and separate font data, rather than getting it from some existing cache in memory. Yet macOS does have a "font cache" of some sort. Some apps, like TextEdit, seem to only load the fonts that they need to use. However, other apps, like Pages, load every enabled (registered) font on the OS!! (According to the Open Files list in Activity Monitor.) Given that /System/Library/Fonts/ is 625 Mb, and we can't disable any of it, isn't that a lot of data to be repeating? How many fonts is too many fonts? I can't find much documentation about the process.
0
0
96
1w
App's shortcut actions not showing on iOS 18 shortcuts app
We have developed an iOS app in objective-C and added integrations for shortcuts app - more specific the "automation" part of the app. Basically, user opens shortcuts app, select automation and when scanning NFC tag, user can select an action and our app shows 3 different actions. User select action, opens the app and action is executed. That all done in Obj-C and was working very well with no complaints till users start to update to iOS18. Now, when user starts to add automation, only thing they can do is select "open app". Our app actions are not showing any more. Is there something new in iOS 18 we have to update our app. I know Obje-C is considered "old", but the cost of upgrading an existing app and time is not available at the moment. Here's a code snippet of our shortcutIntent: <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.application-groups</key> <array> <string>group.lw.grp1</string> <string>group.lw.grp2</string> </array> </dict> </plist> Shortcut Info-plist <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSExtension</key> <dict> <key>NSExtensionAttributes</key> <dict> <key>IntentsRestrictedWhileLocked</key> <array/> <key>IntentsRestrictedWhileProtectedDataUnavailable</key> <array/> <key>IntentsSupported</key> <array> <string>LockIntent</string> <string>TrunkIntent</string> <string>UnlockIntent</string> </array> </dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.intents-service</string> <key>NSExtensionPrincipalClass</key> <string>IntentHandler</string> </dict> </dict> </plist> IntentHandler -(id)init{ self = [super init]; self.started = false; self.handler = [[AppIntentHandler alloc] init]; self.handler.userInfo = [[NSMutableDictionary alloc] init]; return self; } - (id)handlerForIntent:(INIntent *)intent { // This is the default implementation. If you want different objects to handle different intents, // you can override this and return the handler you want for that particular intent. if(!self.started){ self.started = YES; if([intent isKindOfClass:[LockIntent class]]){ NSLog(@"*intent lock selected*"); self.handler.userInfo = [self assignUserInfo:@"lock"]; }else if([intent isKindOfClass:[UnlockIntent class]]){ NSLog(@"*intent unlock selected*"); self.handler.userInfo = [self assignUserInfo:@"unlock"]; }else if([intent isKindOfClass:[TrunkIntent class]]){ NSLog(@"*intent trunk selected*"); self.handler.userInfo = [self assignUserInfo:@"trunk"]; } }else{ self.started = NO; } return self.handler; } A custom class to handle each intent @implementation AppIntentHandler #pragma mark - response handlers - (void)handleLock:(nonnull LockIntent *)intent completion:(nonnull void (^)(LockIntentResponse * _Nonnull))completion { LockIntentResponse *response = [[LockIntentResponse alloc] initWithCode:LockIntentResponseCodeContinueInApp userActivity:[self lockUserActivity]]; completion(response); } - (void)handleUnlock:(nonnull UnlockIntent *)intent completion:(nonnull void (^)(UnlockIntentResponse * _Nonnull))completion { UnlockIntentResponse *response = [[UnlockIntentResponse alloc] initWithCode:UnlockIntentResponseCodeContinueInApp userActivity:[self unlockUserActivity]]; completion(response); } - (void)handleTrunk:(nonnull TrunkIntent *)intent completion:(nonnull void (^)(TrunkIntentResponse * _Nonnull))completion { TrunkIntentResponse *response = [[TrunkIntentResponse alloc] initWithCode:TrunkIntentResponseCodeContinueInApp userActivity:[self trunkUserActivity]]; completion(response); } What have changed and what needs to be done to make our app's actions show in shortcuts app again. Could anyone point me to the right direction, documentations, blog post or code snippet? Thanks in advance for taking the time to help!
0
1
172
1w
iOS 18.1 Call Record.. How to Test when based in Europe
I am a developer based in Ireland. I updated an iPhone 12 to iOS18.1 Beta 4 in order to investigate the Call Record Feature. We have a VoIP App and I wanted to see if there is any interaction with this new Call Record feature. However there is no option appearing for me under Settings ->Apps->Phone for Call RECORD My suspicion is that this is because I am in Europe and Apple Intelligence is not available here. We have our Apps available in the USA so is there anyway that I can enable Call record for some testing. Alternatively does anybody know if Call record should work with Callkit VoIP Apps?
0
0
124
1w
Universal link doesn't work after install right away
Hi! We are having a hard time with the universal link, help is appreciated! Thanks in advance! The universal link doesn't work after installation for some time. A user has to wait for from 5 to a couple of hours after the app is installed on the device. This has also affected App reviewers since we need the universal link to work for successful login. Each submission will receive a rejection of we cannot login and it will be approved until we kindly ask them to try again. I believe the JSON is delivered to devices by Apple's CDN system and the fact that it works on most devices most of the time should imply that we have a valid apple-app-site-association setup. So I am really confused about the wait time, which is giving us trouble with app review and a bad user experience
0
0
97
1w
AppIntent Parameter Argument List of Apps
I'm currently exploring how to implement the AppIntent parameter with a list of apps similar to what's shown in the screenshots provided below: I'm particularly interested in how the searchable list of apps is implemented. My current approach involves creating an enum for the apps, but it lacks searchability and requires manual addition of each app. Does anyone have an idea on how this functionality might be implemented? It appears that the searchable list might be a native Apple view, but I haven't been able to find any documentation or resources on it. Any insights or pointers would be greatly appreciated!
1
0
614
Apr ’24
CarPlay on IOS 18
When connecting a phone on iOS 18 to CarPlay, the audio system of my car works with small freezes, especially when making calls via phone. Artifacts appear on the screen of the car's head unit and everything works in slow motion. I hope this is an iOS 18 error and it will be fixed
2
1
124
1w
SMS and Call Spam Reporting
PLATFORM AND VERSION iOS Development environment: Xcode 15.3, macOS 14.0 Run-time configuration: iOS 16.7.10 DESCRIPTION OF PROBLEM When SMS and call spam reporting is enabled for phone numbers, it works as expected. However, when iMessage is enabled and you receive an email from an unknown sender, the spam reporting feature does not work. STEPS TO REPRODUCE Enable Unknown & Spam (Settings -> Messages -> Unknown & Spam -> Select Scamranger) Select Scamranger in SMS/Call Reporting (Settings -> Phone -> SMS/Call Reporting - Select Scamranger) Messages App: When I receive an Unknown SMS, it's working as expected, but when I receive an email, it's not working.
2
0
64
1w
Implementing Screen Time API’s .all(except:) Policy for Selective App Restrictions
Hi there, I'm currently working with the Screen Time API using the family controls package to manage application usage on iOS devices. I want to block access to all applications except those specifically allowed by the user. While the ManagedSettingsStore.shield.applications method works for defining apps to block. However, integrating the .all(except:) from ShieldSettings.ActivityCategoryPolicy.all(except:) is unfortunately not working for me. Here is my code snippit. Can anyone help out? And if anyone has examples of similar implementations or tips on best practices for using the Screen Time API for such scenarios, please let me know! class ShieldManager: NSObject, ObservableObject, NFCNDEFReaderSessionDelegate { @Published var discouragedSelections = FamilyActivitySelection() private let store = ManagedSettingsStore() func shieldActivities() { // Clear to reset previous settings store.clearAllSettings() // This is an array with the app and category selection let applications = discouragedSelections.applicationTokens let categories = discouragedSelections.categoryTokens // //https://developer.apple.com/documentation/managedsettings/shieldsettings/activitycategorypolicy store.shield.applications = applications.isEmpty ? nil : applications store.shield.applicationCategories = categories.isEmpty ? nil : .specific(categories) store.shield.webDomainCategories = categories.isEmpty ? nil : .specific(categories) } f
2
1
392
Apr ’24
@IntentParameterDependency Always Returns nil in iOS 18
The following code works perfectly fine in iOS 17, where I can retrieve the desired dependency value through @IntentParameterDependency as expected. However, in iOS 18, addTransaction always returns nil. struct CategoryEntityQuery: EntityStringQuery { @Dependency private var persistentController: PersistentController @IntentParameterDependency<AddTransactionIntent>( \.$categoryType ) var addTransaction func entities(matching string: String) async throws -> [CategoryEnitity] { guard let addTransaction else { return [] } // ... } func entities(for identifiers: [CategoryEnitity.ID]) async throws -> [CategoryEnitity] { guard let addTransaction else { return [] } // ... } func suggestedEntities() async throws -> [CategoryEnitity] { guard let addTransaction else { return [] } // ... } } Has anyone else encountered the same issue? Any insights or potential workarounds would be greatly appreciated. iOS: 18.0 (22A3354) Xcode 16.0 (16A242d)
0
1
198
1w