Hacker News new | ask | show | jobs
by asow92 1052 days ago
To be honest with you, my whole point is not even missing out on a marketing opportunity. It's way more banal than that. It's more like routing to a specific experience on first app launch based on where you came from on the web.
2 comments

I'm ok not having a unique or customized first startup experience if it means I get to safeguard my privacy.
I mean, there are other ways around this. We could create an App Clip that essentially does the same thing. It's just harder for the user to get through.

Surely there's a compromise solution here? I don't see why Apple couldn't grant trusted certificates to good actors and revoke certificates from bad actors in regards to pasteboard access?

As I have said elsewhere, this is the compromise position. The extreme position is "there is no option for pasteboard access at all and all pasteboard interactions must happen through OS-provided, fully disintermediated controls."

You already have a compromise: you can, if you insist and if your user consents--not Apple through some "trusted certificate" granting process but the user themselves--choose to not follow standard system flows. Or you can follow standard system flows and receive implicit consent by the user when they click 'Copy' in the share sheet.

Why is seeking consent so terrifying a prospect? And why should anyone privilege "your flows" over that consent?

I don't have a problem with seeking consent from the user, and that's exactly what Firebase Dynamic Links offered by including "Check to continue my place in the app" on by default, but that product is no more thanks to Apple. Consent is given on the webpage before going to the App Store.

My issue is with Apple acting as the arbiters of what consent looks like. You have to consent with the flow to go through with it, right? Nobody's forcing our users to continue.

And like I have already said, it's not like we can't do what you're suggesting. In fact, we have, but that equates to more churn in our flows because users get confused or are fatigued by the amount of hoops they have to jump through to make the product work, which was my original point to this whole thread.

Ground truth, inviolate: the OS owns the trust relationship with the user. The OS may allow the extension of that trust relationship (MDM, custom TLS roots, etc.) but that's informing the OS's own authorization, it's not supplanting it. It follows, then, Apple is the arbiter of consent on an iOS device because they own the OS (the user has chosen to, by buying an iOS device, grant the authorizee's part of the trust relationship).

Apple does not have a trusted relationship with you, the software developer. And Apple doesn't know about a trust relationship between the user and the software developer until the OS sees confirmation from the user.

It then follows that consent must be given at or inside the security boundary to be provable; the web page you refer to is outside of it. You are asking to move from a less trusted environment (a web browser, generally watched like a hawk) to a more trusted environment (an application, with additional implicit permissions and the explicit ability to ask for others). That isn't a decision you are allowed to make and it isn't something that, for all Apple knows, you confused-deputy'd your way around a user's affirmatively consenting to.

It's turtles all the way down. You have to acquire consent at a trustable level. That means the OS or, if the OS isn't sure, the user themselves, through an OS-verifiable method. Sorry that your third-party vendor doesn't count, but it shouldn't. "Just trust me" isn't security.

"But nobody cares" might be next up, so let's settle that now: nobody cares because they pay Apple to care for them.

> Apple does not have a trusted relationship with you, the software developer.

Yeah, they do, because they have to trust the certificates and entitlements that my app is signed with. All I'm asking for is an extension of that same idea to other parts of the app experience.

I just don't think we're going to agree on this, and that's fine. Care to call it a day and we can respectfully both walk away?

Why not encode the data you want to pass in the link, like you would on the web, rather Han require an extra pasteboard-based payload?
We won't get the data from the link without the pasteboard or fingerprinting. The app is a blank slate on first open after installing: we lose the context from which we came.

It's important to note that this is not an issue for apps that are already installed: we get those links and their data; this is just a first-ever launch issue.

It’s been a while since I’ve worked with universal linking, but doesn’t Apple’s APIs allow you to carry context? Or at least preserve the URL so you can take the user to where they were? I don’t think you need to hijack the pasteboard just to continue the users flow.
You definitely do for the first launch post install.

The flow is click link, copy data or finger print, redirect to the App Store, install, user opens app for the first time, route to experience from finger print.