Aggiungi build per target diversi

1

Ho già una build rilasciata per dispositivi iOS 9+. Ora voglio rilasciare una nuova versione solo per dispositivi ARKit che richiedono anche arm64. Ma la mia build non passa una verifica in XCode per la release itunesconnect. Mostra un errore che non posso cambiare l'intervallo dei dispositivi di destinazione per il bundleID già rilasciato. Ma se cambio bundleID in XCode sarà un'altra applicazione. Voglio fornire un aggiornamento solo per gli attivatori di ARKit, come posso farlo?

    
posta svnvav 12.03.2018 - 06:37
fonte

1 risposta

1

Non è possibile avere build separati con lo stesso BundleID spedito all'AppStore. Se vuoi davvero avere "Qualcosa di speciale" per i dispositivi che sono compatibili con ARKit, utilizza alcuni tipi di controlli durante l'avvio dell'app. Ecco la citazione da Apple

Important All ARKit configurations require an iOS device with an A9 or later processor. If your app otherwise supports other devices and offers augmented reality as a secondary feature, use this property to determine whether to offer AR-based features to the user. If your app requires ARKit for its core functionality, use the arkit key in the UIRequiredDeviceCapabilities section of your app's Info.plist to make your app available only on devices that support ARKit.

Quindi puoi utilizzare ARConfiguration.isSupported per controllare le funzionalità del dispositivo nel runtime. Se non è supportato fallback all'implementazione "Vecchio".

Per compilare il codice per gli obiettivi < 11 puoi contrassegnare metodi o anche classi con @available(iOS 11.0, *) in questo modo:

@available(iOS 11.0, *)
func doSomeARStuff() {
    if ARConfiguration.isSupported { print("Supported") }
}

Per chiamare questi metodi usando il codice esistente, fai come segue:

if #available(iOS 11.0, *) {
    doSomeARStuff()
} else {
    // Fallback on earlier versions
}
    
risposta data 13.03.2018 - 11:48
fonte

Leggi altre domande sui tag