Saya menggunakan XCode 8 dan menguji dengan iOS 10.2 Beta.
Saya telah menambahkan kerangka kerja Foto, PhotosUI, dan MobileCoreServices ke proyek.
Kode yang sangat sederhana:
#import <Photos/Photos.h>
#import <PhotosUI/PhotosUI.h>
#import <MobileCoreServices/MobileCoreServices.h>
@interface ViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, PHLivePhotoViewDelegate>
@property (strong, nonatomic) IBOutlet UIImageView *imageview;
@end
dan implementasi:
- (IBAction)grab:(UIButton *)sender{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.allowsEditing = NO;
picker.delegate = self;
// make sure we include Live Photos (otherwise we'll only get UIImages)
NSArray *mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeLivePhoto];
picker.mediaTypes = mediaTypes;
// bring up the picker
[self presentViewController:picker animated:YES completion:nil];
}
Segera setelah saya mengetuk tombolnya, aplikasi macet dengan kesalahan yang sangat tidak berguna:
[access] <private>
Itu dia. Tidak ada lagi.
Menggunakan pernyataan break, aplikasi tampaknya mogok di "presentViewController".
Ini adalah aplikasi baru dan saya tidak memiliki apa pun di UI selain tombol ambil.
Juga, pengujian pada iOS 9.3, ini berfungsi dengan baik. Apakah saya melewatkan sesuatu yang mungkin berubah di iOS 10?
Jawaban:
Anda mungkin perlu memasukkan NSPhotoLibraryUsageDescription di plist Anda. Suka
Periksa semua deskripsi penggunaan di sini .
sumber
Di iOS10, Sebelum Anda mengakses data sensitif privasi seperti Kamera, Kontak, dan sebagainya, Anda harus meminta otorisasi, atau aplikasi Anda akan mogok saat Anda mengaksesnya, lalu Xcode akan masuk seperti:
Bagaimana cara mengatasinya?
Buka file dalam proyek Anda bernama
info.plist
, klik kanan, buka sebagaiSource Code
, tempel kode di bawah ini. Atau Anda dapat membukainfo.plist
sebagaiProperty List
default, klik tombol add, Xcode akan memberikan menyarankan penyelesaian sementara mengetikPrivacy -
dengan bantuan keyboard ⬆️ dan ⬇️.Ingatlah untuk menulis deskripsi Anda mengapa Anda meminta otorisasi ini, antara
<string>
dan</string>
, atau aplikasi Anda akan ditolak oleh apple:Jika tidak berhasil, coba minta background authorization:
Atau buka
target -> Capabilities -> Background Modes -> open the background Modes
:lalu bersihkan Proyek Anda, jalankan.
Buka di sini untuk informasi lebih lanjut: iOS10AdaptationTips .
sumber
<string>
dan</string>
, atau aplikasi Anda akan ditolak oleh apple.di iOS 10 Anda perlu menambahkan kunci yang disebutkan pada gambar di bawah ini jika Anda menggunakan kamera atau galeri foto di aplikasi Anda
sumber
Anda perlu menambahkan pengaturan privasi baru ke info.plist Anda.
Jangan lupa untuk menambahkan nilai yang menjelaskan mengapa aplikasi perlu mengakses layanan.
sumber
Di iOS 10, Apple telah mengubah cara Anda mengakses tipe data pribadi pengguna.
Anda perlu menambahkan kunci Privacy - Photo Library Usage Description ke aplikasi Anda
Info.plist
dan informasi penggunaannya.Untuk informasi lebih lanjut, silakan temukan GIF di bawah ini.
Atau jika Anda ingin menambahkan lewat
info.plist
maka Anda perlu menambahkan NSPhotoLibraryUsageDescription kunci .Cukup salin dan tempel string di bawah ini
info.plist
.Silakan temukan GIF di bawah ini untuk informasi lebih lanjut.
sumber