Hintergrund:Universal-Link öffnet falsche Bündel ID
- unsere App verschiedene Bundle-IDs verwendet für die Entwicklung baut vs Beta vs Produktion (App Store) baut baut
- Ich bin derzeit die Umsetzung Universal-Verbindungen in unserer Entwicklung baut
- Unsere Produktion baut derzeit im App Store Universal-Verbindungen nicht
stützt ich dieses verrückte Problem erlebe, wo nicht nur nicht meine Universal-Links Öffnungs die Entwicklungsversion der App, sie starten stattdessen die Produktionsversion, trotz der Produktionsversion nicht die richtigen Berechtigungen.
Meine apple-app-site-association
Datei validiert wurde wie so sowohl https://branch.io/resources/universal-links/ und https://search.developer.apple.com/appsearch-validation-tool/ und sieht mit:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "DY74R9XXXX.com.myapp.consumer.debug",
"paths": [ "/profiles/*", "/messages/*"]
},
{
"appID": "DY74R9XXXX.com.myapp.consumer",
"paths": [ "/profiles/*", "/messages/*"]
}
]
}
}
Nach https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html der details
Array, um bewertet werden sollte und nicht mehr, nachdem eine Übereinstimmung zu finden.
The order of the dictionaries in the array determines the order the system follows when looking for a match, so you can specify an app to handle a particular part of your website.
Die Absicht ist, dass der gleiche Universal-Link in meinem Team in der Entwicklungsversion für jedermann geladen wird, und in der Produktionsversion für Endnutzer, die nicht über das .debug
Paket auf ihrem Handy.
Nicht nur funktioniert das nicht, aber wie erwähnt, die Universal Links laden immer die Produktionsversion, auch wenn die Produktionsversion fehlt die applinks:dev.myserver.com
Berechtigung, die auf mich zeigt apple-app-site-association
Datei. Dies scheint verrückt, aber es würde bedeuten, dass ich willkürliche Pakete starten kann, die ich nicht veröffentlicht habe und dass die Berechtigungsdatei nicht durchgesetzt wird.
Außerdem, wenn ich den zweiten Eintrag aus dem details
Array entfernen und nur das Wörterbuch für die Debug-Version verlassen, funktionieren die universellen Links nicht, und öffnen Sie stattdessen Safari. Das Ändern der Reihenfolge des Arrays hat ebenfalls keine Auswirkungen. Ich habe dieses Verhalten auf einem iPhone 6s sowohl auf 9.3 als auch auf 9.3.1 erlebt. Jeder Hinweis auf diese zwei Isses (Starten des falschen Pakets und nicht Starten des Debug-Pakets, wenn es der einzige Eintrag ist) wird sehr geschätzt! zu
Nach dem Wechsel meines Bündel ID auf etwas anderes auf der dritten Ebene, pro Alex Bauer Vorschlag, ich war in der Lage: aktualisiert Auflösung unter
Original-Antwort -
Bizarr wie dies scheint, es klingt wie iOS ist irgendwie die Berechtigungen zwischen "DY74R9XXXX.com.myapp.consumer.debug" und "DY74R9XXXX.com.myapp.consumer", möglicherweise zusammen, weil sie so ähnlich sind. Dies ist definitiv nirgendwo dokumentiert. Könnten Sie versuchen, die Paket-ID für den Debug-Build in etwas zu ändern, das eindeutig anders ist? –
@AlexBauer Sie scheinen recht über die Ansprüche, die wegen der Ähnlichkeit verwirrt werden, aber das würde nicht erklären, warum es nicht mit nur einem Detaileintrag arbeitet. Aufgrund deines Vorschlags habe ich die Paket-ID jedoch in 'com.myapp.dev' geändert und es hat funktioniert. Ich habe es dann in 'com.myapp.dev.dev' geändert und das funktionierte genauso gut (mir ging es um einen Bug mit 4 Level Identifiern gegenüber dem typischen 3). Irgendwelche Vorschläge für die nächsten Schritte? – emkman
Die Datei "app-app-site-association" wird nur bei der Installation der App abgerufen. Angenommen, dies ist tatsächlich ein Caching-Problem, denke ich, dass Sie jedes Mal * beide * App-Builds löschen müssen, um einen sauberen Test zu erhalten. Wenn Sie nur eines von ihnen löschten und neu installierten, konnte ich sehen, wie das diese anhaltenden Probleme verursachen würde. –