Mengimplementasikan Touch ID kedalam aplikasi iOS dengan Objective C
BAB 1 : Persiapan
Apa yang anda butuhkan :
- Komputer dengan sistem operasi macOS
- Aplikasi Xcode (dapat diunduh dari Mac App Store atau portal developer Apple)
Setelah disiapkan, buka lah aplikasi Xcode anda. (saya menggunakan Xcode versi 9.1)
Setelah terbuka jendela seperti gambar diatas, klik "Create a new Xcode project"
Pilih "iOS" dan "Single View App" (sesuaikan dengan kebutuhan), klik "Next".
Isi Product Name, Organization Name, sesuai yang diinginkan, dan pilih Language menjadi "Objective C". Setelah itu, klik "Next".
Import framework "LocalAuthentication" dibagian bawah.
BAB 2 : MEMULAI
Bukalah file "Main.storyboard" di Xcode anda, dan tambahkan 1 View Controller.
Maka file storyboard anda akan menjadi seperti diatas. Selanjutnya adalah membuat fungsi jika autentikasi sukses, maka viewcontroller kedua akan ditampilkan.
Hal pertama yang anda lakukan adalah mengklik viewcontroller yang pertama, klik View Controller (seperti gambar diatas). Lalu, tekanlah tombol control di keyboard Mac anda. Selagi ditekan, arahkan garis biru yang tampil ke viewcontroller kedua jika sebuah pilihan muncul, pilihlah "Show". Setelah itu dilakukan, klik lah tombol panah yang muncul dari viewcontroller pertama ke viewcontroller kedua, ubah identifier nya menjadi "sukses". Dan hasilnya akan seperti gambar dibawah ini.
BAB 3 : PROSES
Setelah itu, bukalah file "ViewController.m". Dibagian ini, kita akan mengimport framework yang tadi kita sudah tambahkan sebelumnya.
Line yang ditambahkan :
#import "LocalAuthentication/LocalAuthentication.h"
Line yang ditambahkan dibawah @implementation ViewController :
- (void)viewDidAppear:(BOOL)animated {
}

Line yang ditambahkan didalam method viewDidAppear :
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = @"Verifikasi diri.";
Setelah menambahkan line tersebut pasti akan muncul warning "Unused variables myContext, authError, dan myLocalizedReasonString" biarkan dulu warning tersebut. Selanjutnya kita akan menambahkan pernyataan if kedalam method viewDidAppear.
Line yang ditambahkan :
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:myLocalizedReasonString
reply:^(BOOL success, NSError *error) {
if (success) {
dispatch_async(dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"sukses" sender:nil];
});
} else {
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Kesalahan!" message:@"Gagal mengautentikasi. \n\nAlasan: \nDibatalkan atau tidak ada kecocokan data yang diberikan oleh pengguna." preferredStyle:UIAlertControllerStyleAlert];
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
[self presentViewController:alertController animated:YES completion:nil];
});
}
}];
} else {
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Kesalahan!" message:@"Gagal mengautentikasi. \n\nAlasan: \nAda kesalahan menghubungi sensor." preferredStyle:UIAlertControllerStyleAlert];
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
[self presentViewController:alertController animated:YES completion:nil];
});
}
Setelah menambahkan pernyataan If, coba jalankan aplikasi anda di simulator.
Jika anda menemui screen seperti diatas, maka pengimplementasian Touch ID kedalam aplikasi iOS anda sukses.
Namun, jika anda menemui screen dan pop up seperti gambar diatas, anda harus mengatur status Touch ID terlebih dahulu menjadi "Enrolled".
BAB 4 : Wrapping Up.
Sekarang, anda telah berhasil mengimplementasikan Touch ID menggunakan framework LocalAuthentication. Jika ada masalah, silakan tuliskan di bagian komen :)
Project ini tersedia di Github saya untuk di unduh.














Comments
Post a Comment