(Legacy) Guida alla migrazione di iOS/tvOS v3.x iostvos-v3x-migration-guide
- A partire dall’sdk di iOS versione 3.1, gli implementatori possono ora utilizzare WKWebView o UIWebView in modo intercambiabile. Poiché UIWebView è obsoleto, le app devono migrare a WKWebView per evitare problemi con le versioni future di iOS.
- Tieni presente che la migrazione implicherebbe semplicemente il passaggio della classe UIWebView a WKWebView; non è necessario eseguire alcun lavoro specifico in merito all’AccessEnabler di Adobe.
Aggiornare le impostazioni della build update
Questa versione contiene funzionalità scritte in linguaggio SWIFT. Se la tua app è completamente Objective-C, devi impostare su "Sì" la casella di controllo "Incorpora sempre le librerie Swift standard" nelle impostazioni di build della tua destinazione. Quando questa opzione è impostata, Xcode analizza i framework inclusi nell’app e, se uno di essi contiene codice Swift, copia le librerie pertinenti nel bundle dell’app. Se non si aggiornano le impostazioni della build, l'app potrebbe bloccarsi con errori che indicano che non è possibile caricare AccessEnabler.framework o diverse librerie ibswift*.
Aggiunta dell'istruzione software add
Per informazioni su come ottenere l'informativa sul software, vedere
pagina:
Registrazione applicazione
Una volta ottenuta l'istruzione software, si consiglia di ospitarla su un server remoto in modo da poterla revocare o modificare facilmente senza distribuire una nuova versione dell'applicazione in App Store. All'avvio dell'applicazione, ottenere l'istruzione software dalla posizione remota e trasmetterla nel costruttore AccessEnabler:
accessEnabler = AccessEnabler("YOUR_SOFTWARE_STATEMENT_HERE");
Informazioni API qui: Riferimento API iOS / tvOS
Aggiungere lo schema URL personalizzato add-custom
Per informazioni su come ottenere uno schema URL personalizzato, visitare questa pagina: Ottenere uno schema URL cliente
Dopo aver ottenuto lo schema URL personalizzato, devi aggiungerlo al file info.plist dell’applicazione. Lo schema personalizzato ha questo formato: adbe.u-XFXJeTSDuJiIQs0HVRAg://. È necessario omettere i due punti e le barre in avanti quando lo si aggiunge al file. L'esempio precedente diventerà adbe.u-XFXJeTSDuJiIQs0HVRAg.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>CUSTOM_URL_SCHEME_HERE</string>
</array>
</dict>
</array>
Intercettazione delle chiamate sullo schema URL personalizzato intercept
Questo vale solo nel caso in cui l'applicazione abbia precedentemente abilitato la gestione manuale di Safari View Controller (SVC) tramite la chiamata setOptions(["handleSVC":true"]) e per MVPD specifici che richiedono Safari View Controller (SVC), richiedendo pertanto il caricamento degli URL degli endpoint di autenticazione e disconnessione da un controller SFSafariViewController anziché da un controller UIWebView/WKWebView.
Durante i flussi di autenticazione e disconnessione, l'applicazione deve monitorare l'attività del controller SFSafariViewController mentre viene eseguita una serie di reindirizzamenti. L'applicazione deve rilevare il momento in cui carica un URL personalizzato specifico definito da application's custom URL scheme (ad esempio adbe.u-XFXJeTSDuJiIQs0HVRAg://adobe.com). Quando il controller carica questo URL personalizzato specifico, l'applicazione deve chiudere SFSafariViewController e chiamare il metodo API handleExternalURL:url di AccessEnabler.
In AppDelegate, aggiungi il seguente metodo:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any]) -> Bool {
if (url.absoluteString.hasPrefix("adbe.")) {
accessEnabler.handleExternalURL(url.description)
return true;
}
}
Informazioni API qui: Gestisci URL esterno
Aggiorna la firma del metodo setRequestor update-setreq
Poiché il nuovo SDK utilizza un nuovo meccanismo di autenticazione, non sono necessari il parametro signedRequestId o la chiave pubblica e il segreto (per tvOS). Il metodo setRequestor è semplificato e richiede solo il valore requestorID.
iOS
Questo codice:
accessEnabler.setRequestor(requestorId, setSignedRequestorId: signedRequestorId)
diventa:
accessEnabler.setRequestor(requestorId)
tvOS
Questo codice:
accessEnabler.setRequestor(requestorId, setSignedRequestorId: signedRequestorId,
secret: "secret", publicKey: "public_key")
diventa:
accessEnabler.setRequestor(requestorId)
Informazioni API qui: Imposta richiedente
Sostituisci il metodo getAuthenticationToken con il metodo handleExternalURL replace
Metodo getAuthentication utilizzato in passato per il completamento del flusso di autenticazione. Poiché il nome è fuorviante, è stato rinominato in handleExternalURL e considera l'URL come parametro.
Modifica tutte le occorrenze di questo:
accessEnabler.getAuthenticationToken()
in questo:
accessEnabler.handleExternalURL(request.url?.description);
Informazioni API qui: Gestisci URL esterno