Post

Replies

Boosts

Views

Activity

WKWebview form filling with cross origin iframe
Hi everyone, I’m working on an iOS app using WKWebView, and I have a specific use case involving cross-origin iframes and form autofill. I’m wondering if it’s possible to programmatically fill input elements, such as credit card numbers, within a cross-origin iframe loaded in a WKWebView. I understand that due to the Same-Origin Policy, direct DOM manipulation of cross-origin iframes is restricted. However, I’m curious if there are any methods or workarounds that might allow me to achieve this, specifically within the context of WKWebView. Thanks.
2
0
468
Sep ’24
How secure is the communication between iOS app and its safari mobile extensions
Can someone share how secure is the communication between iOS app and its safari mobile extension. Is it encrypted? Are there any references to best practices to follow? If a user has opened multiple tabs and has multiple extensions can there be security issues during their communication like one extension able to read other extensions memory?
0
0
520
Mar ’24
Core data heavy weight migration issues with big sized data
We are facing a challenging memory issue during a Core Data heavy weight migration in our app. Background: We store sizable data(~250kb/record) in a Core Data entity called "Email." We have roughly 20k records. We are loading the "Email" list using fetchedResultsController with batching. Recently, we split the another entity named "Profile" into "Profile" and "Address" entities, requiring a heavyweight migration. The Problem: This migration consumes an exorbitant amount of memory, causing the OS to kill our app. Interestingly, the "Email" entity is causing the brunt of the memory usage, even though the actual migration code deals with the "Profile" entity to create "Address." If we remove the "sizable" data from "Email" and attempt for migration then the migration is successful. My Questions: Is this memory consumption expected behavior? Why does the "Email" entity, seemingly unrelated to the actual migration, seem to be the main memory culprit? How can I prevent the OS from terminating my app during migration? Are there strategies to optimize memory usage or mitigate memory pressure? Also we are encountering a delay in loading the email list on the very first launch of app. Subsequent launches work comparatively faster. Is that related to storing bigger size data in Email entity?
1
1
486
Feb ’24
Core data issues with refactoring an entity
We have an entity called "EMail" with attributes such as ID, From, To, Subject, Body. Due to various reasons including performance for retrieval, impact on migration etc, we want to refactor this entity into two entities with a parent child relationship: "EMail": ID, From, To, Subject and "EMailBody": ID, Body. Can this be done with an existing model? If so, will this still fall under lightweight migration?
0
0
410
Feb ’24
iOS 17 Airdropped file not opening in our app and instead opening in files app
Our application is configured to handle a custom file type with the extension .ptw. Until the release of iOS 17, when we used Airdrop to send a .ptw file, it would seamlessly open directly in our app on the receiving device. However, since iOS 17, we've noticed a change in behavior where the .ptw file is now being automatically saved to the Files app. To access it in our app, we must manually tap the share button and select our app from the sharing menu. I'm curious to know if others have experienced this change as well, and whether this is the expected behavior in iOS 17 or We are missing some configurations to regain the previous behaviour. If anyone has any insights, workarounds, or suggestions regarding this issue, please share them here.
2
1
1.3k
Oct ’23
How to handle deferred installation
We are currently exploring deferred installation using iOS universal links. Our web page includes universal links with specific user data that we want to pass to the app after first installation. We are looking for suggestions on implementing a seamless transition from Safari to the app, where the device can be consistently and uniquely identified. Any insights or best practices regarding JavaScript-based fingerprinting, storing identifiers, and linking them to user accounts within the app would be greatly appreciated. Additionally, I'm interested in ensuring compliance with privacy regulations and maintaining transparent data collection practices. Thank you in advance
1
0
855
Jun ’23
Delay in coredata fetch request on substring search
We have a core data entity with an attribute "description" with very very large string stored. When we try to filter the entities with a predicate format such as "description contains ***" then it takes around 20 seconds time when the number of rows are above 10000. To improve the speed we tried adding index to description, but it took actually more time than querying without index. Not sure it is because of "contains" predicate. We also have a requirement of fetching all the matching rows immediately. So we cannot use fetchLimit. Is there any alternative to fetchrequest predicate? Is there any better ways to make the fetchrequest faster? Please suggest Thanks Vinoth
2
0
601
May ’23
Porting and Messaging between Mac Catalyst App and desktop browsers
We have a Mac Catalyst app that is installed and works with a custom Safari extension. The Safari is working as expected and is able to pass messages (using sendNativeMessage) to the Mac Catalyst app as expected. Now we want to port the extension to Chrome and other browsers on the desktop and retain the ability to pass messages back and forth. My questions: Is it possible ? Can we pass messages form the Chrome extension and the Mac Catalyst app? How do we distribute/install the Chrome extension? Can we have the extension running in parallel across multiple browsers and still communicate the Mac Catalyst app ?
0
0
617
May ’23
Query keychain for "Not Equal" results
let query: [String : Any] = [kSecClass as String : kSecClassGenericPassword, kSecAttrLabel as String : "hello@email.com"] let status = SecItemDelete(query as CFDictionary) A query like above helps to search the keychain and delete the entries that have AttrLabel as "hello@email.com" . However we are having a requirement to delete the entires that don't match "hello@email.com", basically we want to get all entries that are NOT EQUAL TO "hello@email.com". I checked on the documentation and other links, we could not find on details whether it is possible to pass != condition to keychain query Please suggest Regards, Vinoth
1
0
577
Mar ’23
Keychain override issue during iCloud Sync
Hello All, We are working on an app that involves storing sensitive data in cloud keychain. Each sensitive data contains two parameters p1 and p2. We took two devices made a change to p1 in one device and p2 in another device. Both changes are performed on the same sensitive data. After some delay iCloud sync happens and the changes are not merged. Instead one change is chosen as a whole and the other change is discarded as a whole. Is it expected behaviour for keychain? Thanks Vinoth
1
0
592
Mar ’23
Random delay in Keychain Sync
Hello All, We are working on an app that involves storing sensitive data in cloud keychain. We took two devices made a change to keychain value in one device. After some random delay the iCloud sync happens and the changes comes to the second device. We see this delay in iCloud sync to be very random. Sometimes the sync happens in less than 1 min and sometimes it takes more than 1 hour. Is this delay in keychain sync expected. Is there any way to call synchronize() like we have for NSUbiquitousKeyValueStore to speed up the sync Thanks Vinoth
3
0
989
Mar ’23
Initial delay with NSUbiquitousKeyValueStore
We are using iCloud key value storage(NSUbiquitousKeyValueStore) in our app to store some user data. I moved to a new device and logged into iCloud settings and if I immediately open our app and query for a value it returns nil. After considerable delay say 1 minute and if I query, then the proper stored value is returned. We called synchronize(), but it did not help. Is there any other way we can force sync and get a value immediately. Thanks Vinoth
1
1
863
Mar ’23