cordova-plugin-fingerprint-aio
cordova-plugin-fingerprint-aio copied to clipboard
XCode build error: Ambiguous use of 'subscript(_:)'
Bug report
Description
- What did you do? New Ionic 5 Angular/Capacitor project with this plugin.
- What did happen? Xcode build fails with: Ambiguous use of 'subscript(_:)'
- What did you expect to happen? complete build
Environment
- Plugin version 4.0.1
- Build environment (
cordova info) -
Ionic:
Ionic CLI : 6.12.0 (/Users/fabio/.nvm/versions/node/v10.21.0/lib/node_modules/@ionic/cli) Ionic Framework : @ionic/angular 5.5.0 @angular-devkit/build-angular : 0.1100.2 @angular-devkit/schematics : 11.0.2 @angular/cli : 11.0.2 @ionic/angular-toolkit : 3.0.0
Capacitor:
Capacitor CLI : 2.4.3 @capacitor/core : 2.4.3
Utility:
cordova-res (update available: 0.15.2) : 0.15.1 native-run : 1.2.2
System:
NodeJS : v10.21.0 (/Users/fabio/.nvm/versions/node/v10.21.0/bin/node) npm : 6.14.4 OS : macOS Catalina
### Logs

a valid fix can be changing AnyObject to a more fitted class on all occurrencies?
for example, at row 142 what kind of object is the 1st array element of commands.arguments[0] ?
Would you mind opening a pull request for that? This would help a lot for reviewing and testing.
i've tried to debug in Xcode but placing some breakpoint inside the involved functions with swift errors (commenting rows with errors).
i've seen that in normal use (open app and unlock with touchID) these functions are not called.
And i don't know in which use case they are called.
I am facing the same issue. Is there any update?
Hi @fabioz23 , @NiklasMerz , I changed the following line
let data = command.arguments[0] as AnyObject?;
To
let args = command.arguments as? [[String: Any]];
let data = args?[0];
I haven't tested it yet but seems to remove error for now.
Hope this helps.
I've tried and it works, thanks.
BTW i don't know when these parts are involved on. until yesterday I had set the variables to a static value (false) and it worked the same
let data = command.arguments[0] as AnyObject?;
var pluginResult: CDVPluginResult
do {
let secret = Secret()
try? secret.delete()
let invalidateOnEnrollment = false
...
...