2017-10-05 3 views
4

J'essaie d'enregistrer une capture d'écran sur Camera Roll dans mon application réactive native dans iOS mais dès que la fonction CameraRoll.saveToCameraRoll est appelée, l'application se bloque. Il fonctionnait jusqu'à iOS 10 et réagit-native 0.47. Et ça marche parfaitement bien sur Android.Crash d'application sur CameraRoll.saveToCameraRoll dans iOS dans react-native

J'ai déjà les permissions requises pour iOS 10+ dans Info.plist.

Ceci est mon code pour enregistrer l'image dans Camera Roll.

CameraRoll.saveToCameraRoll(mUri, 'photo') 
.then(()=>console.log('saved to CameraRoll')) 
.catch(()=>console.log('error in saving')) 

Notez que je ne reçois aucun des journaux de la console ci-dessus deux. C'est un crash natif et ci-dessous est le fil de l'accident.

Thread 39 Queue : com.apple.root.default-qos (concurrent) 
#0 0x000000010c8280aa in __abort_with_payload() 
#1 0x000000010c824326 in abort_with_payload_wrapper_internal() 
#2 0x000000010c82434f in abort_with_payload() 
#3 0x000000010c9d2b09 in __CRASHING_DUE_TO_PRIVACY_VIOLATION__() 
#4 0x000000010c9d2a53 in __TCCAccessRequest_block_invoke.77() 
#5 0x000000010c9d6273 in __tccd_send_block_invoke() 
#6 0x000000010c76ead5 in _xpc_connection_reply_callout() 
#7 0x000000010c76417c in _xpc_connection_call_reply_async() 
#8 0x000000010c39f49e in _dispatch_client_callout3() 
#9 0x000000010c3b7658 in _dispatch_mach_msg_async_reply_invoke() 
#10 0x000000010c3a407d in _dispatch_queue_override_invoke() 
#11 0x000000010c3ab1f9 in _dispatch_root_queue_drain() 
#12 0x000000010c3aae97 in _dispatch_worker_thread3() 
#13 0x000000010c85d5a2 in _pthread_wqthread() 
#14 0x000000010c85d07d in start_wqthread() 
Enqueued from com.apple.libdispatch-manager (Thread 42) Queue : com.apple.libdispatch-manager (serial) 
#0 0x000000010c3b405c in _dispatch_mach_reply_merge_msg() 
#1 0x000000010c3ba3f3 in _dispatch_event_loop_merge() 
#2 0x000000010c3b2481 in _dispatch_kevent_worker_thread() 
#3 0x000000010c85d47b in _pthread_wqthread() 
#4 0x000000010c85d07d in start_wqthread() 
+0

Avez-vous ajouté la vie privée pour '' Camera' et photo Gallery' dans votre 'info.plist'? Vous devez demander la permission de l'utilisateur avant d'accéder aux données privées de l'utilisateur comme les photos, l'emplacement, etc. dans «iOS 10» Apple étend la portée du contrôle de la vie privée. Vous devez déclarer dans le fichier 'Info.plist' l'accès à toutes les données privées. – Buntylm

+0

Oui. C'est là. –

Répondre

12

J'ai aussi le même problème. Correction de l'ajout de NSPhotoLibraryAddUsageDescription ("Confidentialité - Description des utilisations des additions de photothèques") dans info.plist.

Il est une nouvelle règle pour iOS 11.

+0

Oui. Obtenu à la même solution après avoir perdu 1 jour entier. iOS doit faire une meilleure journalisation des problèmes. : -/ –

+0

J'avais besoin des deux autorisations d'ici: https://facebook.github.io/react-native/docs/cameraroll.html – Brenwell