Any news @eskimo ? I still don't dare to touch the workaround code :)
Post
Replies
Boosts
Views
Activity
Password AutoFill is the most frustrating concept/feature I have been working on in my many years as an app developer. It's a black box full of "magic" (or "heuristics" as Apple calls it) and the documentation is "theoretical".
ASWebAuthenticationSession didn't help, so my workaround (hack) is to intercept credentials in webView(_:decidePolicyFor:decisionHandler:) on WKNavigationType.formSubmitted navigation type. I put the username and password in native UITextFields that is "hidden". Sidenote: This is against all security best practices. The textContentType needs to be set accordingly and the order the UITextFields are added to the parent view is super important, constraints does not seem to matter. Currently this works great on local debug builds, but for some reason doesn't on in-house/enterprise builds. The device console does not show anything helpful other that the com.apple.developer.associated-domains -> webcredentials for the domain was approved.
Testing against a local webserver also does not work, which makes the trail'n'error approach needed to make this feature work even harder. You are suppose to add ?mode=developer to your webcredentials:example.com in your Associated Domains Entitlement setup. You also need to build using a dev profile + enable Associated Domains Development under iOS Settings -> Developer -> Universal Links. All to no avail.
Ok, thanks. So seeing the prompt after the 16.2 update, relates back to the note in FAQ-3 "IMPORTANT Due to a combination of implementation limitations and bugs, not all of the these restrictions are enforced on iOS 14 and 15. They should be correctly enforced by iOS 16 and later..." I guess.
I just verified with yet another device (iPhone 14 Pro) running iOS 16.0.x, reinstalled the production app from App Store = got NO prompt.
Updated to iOS 16.2, reinstalled the production app from App Store = got a prompt.
I just got this by running:
xcrun altool --notarize-app ...
I did a retry everything was fine.
Here is a debug log from the failed attempt (I don't see anything obvious): https://gist.github.com/tougher/dc6ef7083f70b30d3c896a7304b742e6