[Solucion]FT. Falta la key NSBluetoothAlwaysUsageDescription o NSBluetoothPeripheralUsageDescription en info.plist

Ta ha pasado que logras subir tu compilación a App Store, pero no aparece en el App Store Conect -> Actividad ->Compilaciones para iOS, pues la causa te la envían al correo con el que estas registrado en iTunes.

En este caso la causa es la falta de la key NSBluetoothAlwaysUsageDescription o NSBluetoothPeripheralUsageDescription en nuestro info.plist.

Nota NSBluetoothAlwaysUsageDescription orientado a iOS 13 o superiores NSBluetoothPeripheralUsageDescription orientado a iOS menores a 13

Si te encuentras en estas dos situaciones:

1.- Tu aplicación usa Bluetooth. – Entonces solo debes añadir estas keys y describir por qué tu aplicación necesita los permisos.

Añadir las dos keys y adapta la descripción a tu situación:

<key>NSBluetoothAlwaysUsageDescription</key> <string>  La aplicación utiliza Bluetooth para buscar, conectarse y comunicarse con  dispositivos cercanos, y poder compartir fotografías. </string>  <key> NSBluetoothPeripheralUsageDescription </key> <string>  La aplicación utiliza Bluetooth para buscar, conectarse y comunicarse con  dispositivos cercanos, y poder compartir fotografías. </string> 

Luego compila y vuélvelo a subirlo.

2.- Tu aplicación no usa Bluetooth y por ende no necesita este permiso.

2.1 En este caso puede que estás dando soporte a un proyecto antiguo, que en algún lugar de tu código debe de estar inicializando el permiso de Bluetooth y tu no lo sabes.

Debes hacer una búsqueda para encontrar quien esta haciendo uso del permiso Puedes usar

grep -r -a CoreBluetooth.framework CarpetaDeTuProyecto 

si esto no encuentra nada usa esto

grep -iR Bluetooth CarpetaDeTuProyecto. 

Un aves lo identifiques añade las keys y describe indicando donde se esta usando.

<key>NSBluetoothAlwaysUsageDescription</key> <string>  La aplicación no solicita este permiso ni utiliza esta funcionalidad, pero está  incluida en nuestra lista de información, ya que nuestra aplicación utiliza la  biblioteca [nombreDeLibreiaQueLoUsa], que hace referencia a este permiso en su código </string> <key> NSBluetoothPeripheralUsageDescription </key> <string>  La aplicación no solicita este permiso ni utiliza esta funcionalidad, pero está  incluida en nuestra lista de información, ya que nuestra aplicación utiliza la  biblioteca [nombreDeLibreiaQueLoUsa], que hace referencia a este permiso en su código </string> 

2.2 En el caso que sepas cual es la librería que hace referencia a este permiso en su código, pero que tu aplicación como tal no solicita ni utiliza este permiso, lo que debes de hacer es añadir las keys y describir por qué tu aplicación debe incluir el permiso en el info.plist.

<key>NSBluetoothAlwaysUsageDescription</key> <string>  La aplicación no solicita este permiso ni utiliza esta funcionalidad, pero está  incluida en nuestra lista de información, ya que nuestra aplicación utiliza la  biblioteca [FacebookSDK o react-native-permissions o la que estes utilizando],  que hace referencia a este permiso en su código </string> <key> NSBluetoothPeripheralUsageDescription </key> <string>  La aplicación no solicita este permiso ni utiliza esta funcionalidad, pero está  incluida en nuestra lista de información, ya que nuestra aplicación utiliza la  biblioteca [FacebookSDK o react-native-permissions o la que estés utilizando],  que hace referencia a este permiso en su código </string> 

Luego compila y vuélvelo a subir.

Nota.-Para abrir y ver el info.plist en modo Source Code: click derecho en info.plist/open As/Source Code. Debes de añadir las keys dentro de la etiqueta

<dict></dict> 

Si me falto mencionar algo y me equivoque por favor díganmelo en los comentarios para que edite la solución.

Espero le ayude al alguien

Problemas para compilar mi altcoin para windows desde Debian por falta de ciertos archivos

Para compilar la wallet para windows desde ubuntu necesito unas dependencias, de las cuales hay 3 que no he encontrado.

bitcoin08-deps-win32-gitian-r13.zip

boost-win32-1.55.0-gitian-r6.zip

qt-win32-4.8.5-gitian-r8.zip

¿Alguien sabe donde las puedo conseguir? Ya busque por todos los medios y este es mi ultimo recurso. Gracias.

como consertar esse erro no código? O que falta?

Error: function crashed. Details: list_gcs_objs() missing 1 required positional argument: ‘prefix

def list_gcs_objs(self, bucket, prefix):     storage_client = storage.Client()     bucket_check = storage_client.get_bucket(bucket)     blob_list = list(bucket_check.list_blobs(prefix=prefix))     obj_paths = list()     if len(blob_list) <= 1:         print("Folder empty\n")         return obj_paths     else:         count = 1     while count < len(blob_list):         obj_paths.append(blob_list[count].name)         count += 1     return obj_paths   def upload_to_gcs(bucket, object_key, data):     storage_client = storage.Client(bucket)     bucket_up = storage_client.get_bucket(bucket)     blob_up = bucket_up.blob(object_key)     response = blob_up.upload_from_string(data)     return (response) 

React Native não inicia aplicação devida a falta de memoria no Node.js

FATAL ERROR: Zone Allocation failed – process out of memory (erro descrito) Bom, finalmente consegui instalar e configurar o ambiente de de desenvolvimento do React Native, porém ao dar run-android o cmd do node exibe uma mensagem de falta de memoria (meu notebook tem apenas 4GB de RAM), resultando em fechar o cmd do node e assim dando erro na aplicação android rodando no emulador.Já estou achando que é impossivel desenvolver em React com 4GB de RAM apenas. FATAL ERROR: Zone Allocation failed – process out of memory (erro descrito)node

Me falta acabar de perfilar este programa

def AddDictionary(s):     i = 0     result = {}     for c in s:         result[c] = i         if result.has_key(c):             i += 1     return result  def theMostRepeated(s):     if len(s) == 0:         return "The list is empty"     else:          keys = AddDictionary(s).keys()          mx = keys[0]          for key in keys:              if AddDictionary(s)[key] > AddDictionary(s)[mx]: #Al comparar las keys no se comparan los numeros sino los valores a los que se refieren                 mx = key          return mx 

Este código lo que hace es contar las veces que sale un número en una lista. Si la lista está vacía pone el mensaje de “the list is empty” y lo que me falla es que no sé como aprovechando las funciones que he hecho puedo hacer que si dos números se repiten la misma cantidad de veces que devuelva el primero que salga en la lista. Un ejemplo de la función seria este: print theMostRepeated([1, 2, 2, 3, 3])

estoy intentando usar certbot ahora ya solo me falta la redirección

estoy usando puTTY en windows 10 y quiciera hacer una redireccion desde el virtual host

NameVirtualHost *:80 <VirtualHost *:80>    ServerName www.yourdomain.com    Redirect / https://www.yourdomain.com </VirtualHost>  <VirtualHost _default_:443>    ServerName www.yourdomain.com    DocumentRoot /usr/local/apache2/htdocs    SSLEngine On # etc... </VirtualHost> 

quiciera saber que va exactamente en #etc, a que se refiere, no se que poner

Duda con un array en c, me falta una cosilla

he hecho el siguiente programa el cual se introduce un número y comprobando en el vector dice que está o no está y si está dice el lugar donde se encuentra, lo que me gustaría poner para terminarlo es que al introducir el valor 0 finalice el programa,pero no lo logro ¿me ilumináis?.

un saludo

#include<stdio.h>  int main() {      int v[]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};      int i,x;     char p='f';       printf("\nintroduce un numero:\n");     scanf("%d",&x);     for(i=0;(p=='f')&&(i<15);i++)  if(v[i] == x){  p= 'v';         }  if (p=='v')         {  printf("el valor esta en el vector en la posicion %d",i-1);         }  else if (p=='f')         {  printf("NO");         }      return 0;  }