No recibirá actualizaciones futuras o correcciones de errores. Si lo está utilizando, migre a otra solución.
Irate es una biblioteca para ayudarlo a promocionar sus aplicaciones de iPhone y Mac App Store al solicitar a los usuarios que califiquen la aplicación después de usarla durante unos días. Este enfoque es una de las mejores maneras de obtener revisiones positivas de aplicaciones apuntando solo a usuarios regulares (¡a quienes presumiblemente les gusta la aplicación o no lo seguirían usando!).
Nota: 'compatible' significa que la biblioteca ha sido probada con esta versión. 'Compatible' significa que la biblioteca debería funcionar en esta versión del sistema operativo (es decir, no depende de ninguna característica SDK no disponible), pero ya no se está probando para su compatibilidad y puede requerir ajustes o correcciones de errores para ejecutarse correctamente.
A partir de la versión 1.7, Irate requiere arco. Si desea usar IRATE en un proyecto que no sea ARC, simplemente agregue el indicador del compilador -fobjc-Arc a la clase IRATE.M. Para hacer esto, vaya a la pestaña Fases de compilación en su configuración de destino, abra el grupo de fuentes de compilación, haga doble clic en Irate.m en la lista y escriba -fobjc-arc en el popover.
Si desea convertir todo su proyecto en ARC, comente la línea #Error en Irate.m, luego ejecute el Editar> Refactor> Convertir a Objective-C ARC ... Herramienta en Xcode y asegúrese de todos los archivos que desea Use ARC para (incluido IRATE.M) se verifican.
Usos irados enhebrados internamente para evitar bloquear la interfaz de usuario, pero ninguna de las interfaces externas iracas es segura de los subprocesos y no debe llamar a ningún método ni establecer ninguna propiedad en Irate, excepto desde el hilo principal.
Para instalar IRATE en su aplicación, arrastre los archivos Irate.h, .m y .bundle en su proyecto. Puede omitir el .bundle si no está interesado en el texto localizado.
Irate generalmente no requiere ninguna configuración y simplemente se ejecutará automáticamente, utilizando la ID de paquete de la aplicación para buscar la ID de la aplicación en la App Store.
Nota: Si tiene aplicaciones con ID de paquete coincidente en las tiendas de aplicaciones Mac e iOS (incluso si usan una capitalización diferente), el mecanismo de búsqueda no funcionará, por lo que deberá establecer manualmente la propiedad AppStoreID, que es un ID numérico que se puede encontrar en iTunes Connect después de configurar una aplicación. Además, si está creando una aplicación Mac Sandboxed y su aplicación no solicita el permiso de acceso a la red, entonces deberá establecer el AppStoreid porque no se puede recuperar del servicio iTunes.
Si desea personalizar IRATE, el mejor momento para hacerlo es en su AppDelegate -[application:didFinishLaunchingWithOptions:]
Método. Aplicar la configuración cualquier posterior puede no funcionar, ya que el aviso ya puede haberse demostrado en ese punto:
#import "iRate.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//configure iRate
[iRate sharedInstance].daysUntilPrompt = 5;
[iRate sharedInstance].usesUntilPrompt = 15;
return YES;
}
Para configurar IRATE, hay una serie de propiedades de la clase IRATE que pueden alterar el comportamiento y la apariencia de IRATE. Estos deberían ser principalmente explicativos, pero se documentan a continuación:
@property (nonatomic, assign) NSUInteger appStoreID;
Esto debería coincidir con el ID de la aplicación iTunes de su aplicación, que puede obtener de iTunes Connect después de configurar su aplicación. Este valor normalmente no es necesario y generalmente solo se requiere si tiene el conflicto antes mencionado entre las ID de paquete para sus aplicaciones Mac e iOS, o en el caso de las aplicaciones Mac de Sandboxed, si su aplicación no tiene permiso de red porque no será Capaz de obtener el AppStoreid utilizando automáticamente los servicios iTunes.
@property (nonatomic, assign) NSUInteger appStoreGenreID;
Este es el tipo de aplicación, utilizado para determinar el texto predeterminado para el cuadro de diálogo de calificación. Esto se establece automáticamente llamando a un servicio de iTunes, por lo que no debe necesitar establecerlo manualmente para la mayoría de los fines. Si desea anular este valor, configurarlo en la constante iRateAppStoreGameGenreID
hará que IRATE use la versión "Juego" del cuadro de diálogo de calificación, y configurarlo en cualquier otro valor usará la versión "Aplicación" del diálogo de calificación.
@property (nonatomic, copy) NSString *appStoreCountry;
Este es el código de país de dos letras que se utiliza para especificar qué iTunes almacena verificar. Se establece automáticamente desde las preferencias locales del dispositivo, por lo que no debería ser necesario cambiar en la mayoría de los casos. Puede anular esto para señalar a la tienda estadounidense u otra tienda específica si lo prefiere, lo que puede ser una buena idea si su aplicación solo está disponible en ciertos países.
@property (nonatomic, copy) NSString *applicationName;
Este es el nombre de la aplicación que se muestra en la alerta IRATE. Se establece automáticamente desde la información de la aplicación.
@property (nonatomic, copy) NSString *applicationBundleID;
Esta es la ID de paquete de aplicaciones, utilizada para recuperar appStoreID
y appStoreGenreID
de iTunes. Esto se establece automáticamente desde la información de la aplicación.
@property (nonatomic, assign) float daysUntilPrompt;
Este es el número de días que el usuario debe haber instalado la aplicación antes de que se les solicite que lo califique. El tiempo se mide desde la primera vez que se inicia la aplicación. Este es un valor de punto flotante, por lo que puede usarse para especificar un número fraccional de días (por ejemplo, 0.5). El valor predeterminado es de 10 días.
@property (nonatomic, assign) NSUInteger usesUntilPrompt;
Este es el número mínimo de veces que el usuario debe iniciar la aplicación antes de que se les solicite que lo califique. Esto evita el escenario en el que un usuario ejecuta la aplicación una vez, no la mira durante semanas y luego la inicia nuevamente, solo para que se le solicite inmediatamente que la califique. El recuento de uso mínimo asegura que solo se soliciten usuarios frecuentes. El mensaje aparecerá solo después de que se haya alcanzado el número especificado de días y usos. Este valor predeterminado a 10 usos.
@property (nonatomic, assign) NSUInteger eventsUntilPrompt;
Para algunas aplicaciones, los lanzamientos no son una buena métrica para el uso. Por ejemplo, la aplicación podría ser un demonio que se ejecuta constantemente, o un juego en el que el usuario no puede escribir una revisión informada hasta que haya alcanzado un nivel particular. En este caso, puede registrar manualmente eventos significativos y hacer que el aviso aparezca después de un número predeterminado de estos eventos. Al igual que la configuración de UssIntilPrompt, el aviso aparecerá solo después del número especificado de días y eventos, sin embargo, una vez que se alcanza el umbral del día, el aviso aparecerá si se alcanza el umbral del evento o el umbral de usos. Este valor predeterminado a 10 eventos.
@property (nonatomic, assign) float usesPerWeekForPrompt;
Si está menos preocupado por el número total de veces que se usa la aplicación, pero preferiría usar la frecuencia de los tiempos que se usa la aplicación, puede usar la propiedad usesPerWeekForPrompt
para establecer un umbral mínimo para la cantidad de veces que el usuario debe iniciar la aplicación por semana (en promedio) para que se muestre el indicador. Tenga en cuenta que este es el promedio desde que se instaló la aplicación, por lo que si el usuario va por un período largo sin ejecutar la aplicación, puede desechar el promedio. El valor predeterminado es cero.
@property (nonatomic, assign) float remindPeriod;
Cuánto tiempo debe esperar la aplicación antes de recordarle a un usuario que califique después de seleccionar la opción "Recordarme más tarde" (medida en días). Un valor de cero significa que la aplicación recordará al próximo lanzamiento del usuario. Tenga en cuenta que este valor reemplaza a los otros criterios, por lo que la aplicación no solicitará una calificación durante el período de recordatorio, incluso si se lanza una nueva versión mientras tanto. Este valor predeterminado a 1 día.
@property (nonatomic, copy) NSString *messageTitle;
El título se muestra para el mensaje de calificación. Si no desea mostrar un título, configure esto en @""
;
@property (nonatomic, copy) NSString *message;
El mensaje de inmediato de calificación. Esto debería ser educado y cortés, pero no demasiado prolijo. Si no desea mostrar un mensaje, configure esto en @""
;
@property (nonatomic, copy) NSString *updateMessage;
Este es un mensaje que se utilizará para los usuarios que han calificado previamente la aplicación, alentándolos a volver a tasa. Esto le permite personalizar el mensaje para estos usuarios. Si no proporciona un mensaje personalizado para este caso, se utilizará el mensaje estándar.
@property (nonatomic, copy) NSString *cancelButtonLabel;
La etiqueta del botón para el botón para descartar la solicitud de calificación sin calificar la aplicación.
@property (nonatomic, copy) NSString *rateButtonLabel;
La etiqueta del botón para el botón presiona el usuario si desea calificar la aplicación.
@property (nonatomic, copy) NSString *remindButtonLabel;
La etiqueta del botón para el botón presiona el usuario si no desea calificar la aplicación de inmediato, pero quiere que se le recuerde en el futuro. Establezca esto en @""
si no desea mostrar el botón Recordarme, por ejemplo, si no tiene espacio en la pantalla.
@property (nonatomic, assign) BOOL useAllAvailableLanguages;
De forma predeterminada, IRATE usará todos los idiomas disponibles en Irate.bundle, incluso si se usa en una aplicación que no admite la localización. Si prefiere restringir IRATE para usar solo el mismo conjunto de idiomas que su aplicación ya admite, configure esta propiedad en no. (Predeterminado es sí).
@property (nonatomic, assign) BOOL promptForNewVersionIfUserRated;
Debido a que las calificaciones de iTunes son específicas de la versión, idealmente desea que los usuarios califiquen cada nueva versión de su aplicación. Los usuarios que realmente aman su aplicación pueden estar dispuestos a actualizar su revisión para nuevos lanzamientos. Establezca promptForNewVersionIfUserRated
en YES
, e Irate le indicará al usuario nuevamente cada vez que instale una actualización hasta que se denegan a calificar la aplicación. Si rechazan, no se les volverá a preguntar.
@property (nonatomic, assign) BOOL onlyPromptIfLatestVersion;
Establezca esto en NO para habilitar la solicitud de calificación que se mostrará incluso si el usuario no está ejecutando la última versión de la aplicación. Este valor predeterminado es sí porque de esa manera los usuarios no dejarán malas revisiones debido a errores que ya ha solucionado, etc.
@property (nonatomic, assign) BOOL onlyPromptIfMainWindowIsAvailable;
Esta configuración es aplicable solo a Mac OS. De manera predeterminada, en Mac OS, la alerta Irate se muestra como hoja en la ventana principal. Algunas aplicaciones no tienen una ventana principal, por lo que este enfoque no funciona. Para tales aplicaciones, configure esta propiedad en NO para permitir que la alerta IRATE se muestre como una ventana modal regular.
@property (nonatomic, assign) BOOL promptAtLaunch;
Establezca esto en NO para deshabilitar el indicador de calificación que aparece automáticamente cuando la aplicación se inicia o devuelve desde el fondo. Los criterios de calificación continuarán siendo rastreados, pero el aviso no se mostrará automáticamente mientras esta configuración esté vigente. Puede usar esta opción si desea controlar manualmente la visualización de la solicitud de calificación.
@property (nonatomic, assign) BOOL verboseLogging;
Esta opción hará que IRATE envíe registros detallados a la consola sobre el proceso de decisión rápido. Si su aplicación no solicita correctamente una calificación cuando lo espere, esto lo ayudará a descubrir por qué. El registro verboso está habilitado de forma predeterminada en construcciones de depuración y se deshabilita en las compilaciones de lanzamiento e implementación.
@property (nonatomic, assign) BOOL previewMode;
Si se establece en Sí, Irate siempre mostrará el indicador de calificación en el lanzamiento, independientemente de cuánto tiempo haya estado en uso la aplicación o si es la última versión (a menos que haya deshabilitado explícitamente la opción promptAtLaunch
). Use esto para revisar su mensaje y verificar que su configuración sea correcta durante las pruebas, pero desactíquelo para la versión final (predeterminada no).
@property (nonatomic, assign) BOOL useUIAlertControllerIfAvailable;
Por defecto, IRATE usará UialertView en iOS para mostrar el mensaje de calificación. UialertView estaba en desuso en iOS8 y reemplazado por UialertController. Desafortunadamente, a diferencia de UialertView, presentar una alerta con UialertController interfiere con la capacidad de la aplicación para mostrar otros controladores, y dado que Irate podría mostrar teóricamente una alerta en cualquier punto durante la vida de la aplicación, podría chocar con la aplicación que intenta presentar otro controlador de visión . Por esta razón, el uso de UialertController está deshabilitado de forma predeterminada. Solo debe configurar esta propiedad en SÍ si está seguro de que no chocará con la lógica de su aplicación (por ejemplo, si ha deshabilitado las indicaciones automáticas de calificación o si su aplicación no usa ningún controlador de vista modal).
@property (nonatomic, assign) BOOL useSKStoreReviewControllerIfAvailable;
De forma predeterminada, IRATE usará el SkStoreViewController para solicitar revisiones en iOS 10.3 y arriba. Para deshabilitar esto, set useSKStoreReviewControllerIfAvailable
a NO
.
Si el comportamiento iracado predeterminado no cumple con sus requisitos, puede implementar el suyo utilizando las propiedades, métodos y delegados avanzados. Las propiedades a continuación le permiten acceder al estado interno y anularlo:
@property (nonatomic, strong) NSURL *ratingsURL;
La URL de que la aplicación dirigirá al usuario para que pueda escribir una calificación para la aplicación. Esto se establece en el valor correcto para la plataforma dada automáticamente. En iOS 6 y debajo, esto lleva a los usuarios directamente a la página de clasificaciones, pero en iOS 7 y Mac OS lleva a los usuarios a la página de la aplicación principal (si hay una forma de vincular directamente la página de calificaciones en esas plataformas, todavía he para encontrarlo). Si está implementando su propio mensaje de calificación, probablemente debería usar el método openRatingsPageInAppStore
, especialmente en Mac OS, ya que el proceso para abrir la App Store es más complejo que simplemente abrir la URL.
@property (nonatomic, strong) NSDate *firstUsed;
La primera fecha en la que el usuario lanzó la versión actual de la aplicación. Esto se usa para calcular si se ha cumplido el criterio de DaysuntIlprompt.
@property (nonatomic, strong) NSDate *lastReminded;
La fecha en que el usuario solicitó por última vez que se le recordara que califique la aplicación más adelante.
@property (nonatomic, assign) NSUInteger usesCount;
El número de veces se ha utilizado la versión actual de la aplicación (lanzada).
@property (nonatomic, assign) NSUInteger eventCount;
El número de eventos de aplicación significativos que se han registrado desde que se instaló la versión actual. Esto se incrementa por el método LogEvent, pero también se puede manipular directamente. Echa un vistazo a la demostración de eventos para ver cómo usó este sistema operativo.
@property (nonatomic, readonly) float usesPerWeek;
El número promedio de veces por semana que se ha utilizado la versión actual de la aplicación (lanzada).
@property (nonatomic, assign) BOOL declinedThisVersion;
Este indicador indica si el usuario ha disminuido para calificar la versión actual (sí) o no (no). La lógica de indicación iracada no utiliza actualmente, pero puede ser útil para implementar su propia lógica.
@property (nonatomic, assign) BOOL declinedAnyVersion;
Este indicador indica si el usuario se ha negado a calificar cualquier versión anterior de la aplicación (sí) o no (no). Irate no solicitará al usuario automáticamente si esto está configurado en sí.
@property (nonatomic, assign) BOOL ratedThisVersion;
Este indicador indica si el usuario ya ha calificado la versión actual (sí) o no (no).
@property (nonatomic, readonly) BOOL ratedAnyVersion;
Este indicador (Readonly) indica si el usuario ha calificado previamente alguna versión de la aplicación (sí) o no (no).
@property (nonatomic, assign) id<iRateDelegate> delegate;
Un objeto que ha suministrado que implementa el protocolo iRateDelegate
, documentado a continuación. Use esto para detectar y/o anular el comportamiento predeterminado de IRATE. Esto es predeterminado al delegado de la aplicación, por lo que si está utilizando su delegado de aplicación como su delegado IRATE, no necesita configurar esta propiedad.
Además de la configuración, Irate tiene los siguientes métodos:
- (BOOL)shouldPromptForRating;
Devuelve sí si se han cumplido los criterios de inmediato, y no si no lo han hecho. Puede usar esto para decidir cuándo mostrar un mensaje de calificación si ha deshabilitado la pantalla automática en el lanzamiento de la aplicación. Llamar a este método no llamará al método delegado iRateShouldPromptForRating
.
- (void)promptForRating;
Este método activará inmediatamente el indicador de calificación sin verificar que la App Store está disponible, y sin llamar al Método delegado de Forración de Irates. Tenga en cuenta que este método depende de las propiedades appStoreID
y applicationGenre
, que solo se recuperan después de sondear el servidor iTunes, por lo que si tiene la intención de llamar a este método directamente, deberá establecer estas propiedades usted mismo de antemano o usar el método promptIfNetworkAvailable
.
- (void)promptIfNetworkAvailable;
Este método verificará si la App Store está disponible y, si es así, mostrará la solicitud de calificación al usuario. Se llamará al método delegado para que se llamen antes de que se muestre la alerta, por lo que puede interceptarlo. Tenga en cuenta que si su aplicación está sandboxed y no tiene el permiso de acceso a la red, este método ignorará el estado de disponibilidad de red, sin embargo, en este caso deberá establecer manualmente el appStoreID
o Irate no puede funcionar.
- (void)promptIfAllCriteriaMet;
Este método verificará si se han cumplido todos los criterios de solicitud, y si la App Store está disponible, y si es así, mostrará la solicitud de calificación al usuario. Se llamará al método delegado para que se llamen antes de que se muestre la alerta, por lo que puede interceptarlo.
- (void)openRatingsPageInAppStore;
Este método omite la alerta del usuario y abre la página de calificaciones de aplicaciones en la tienda de aplicaciones de Mac o iPhone, dependiendo de qué plataforma se esté ejecutando. Este método no realiza ninguna verificación para verificar que la máquina tenga acceso a la red o que la App Store esté disponible. Tampoco llama el método delegado -iRateShouldOpenAppStore
. Debe usar este método para abrir la página de calificaciones en lugar de la propiedad RatingSURL, ya que el proceso para iniciar la App Store es más complejo que simplemente abrir la URL en muchos casos. Tenga en cuenta que este método depende del appStoreID
que solo se recupere después de sondear el servidor iTunes. Si llama a este método sin hacer una verificación de actualización primero, deberá establecer la propiedad appStoreID
usted mismo de antemano, o arriesgarse a que el método pueda tomar algún tiempo para hacer una llamada de la red o fallar por completo. En el éxito, este método llamará al método delegado -iRateDidOpenAppStore
. Al fallar, llamará al método -iRateCouldNotConnectToAppStore:
Delegate Method.
- (void)logEvent:(BOOL)deferPrompt;
Se puede llamar a este método desde cualquier lugar de su aplicación (después de que se haya configurado Irate) e incrementa el recuento de eventos significativo IRATE. Cuando se alcanza el número predefinido de eventos, se mostrará la solicitud de calificación. El parámetro opcional DeferPrompt se usa para determinar si el mensaje se mostrará inmediatamente (no) o si la aplicación esperará hasta el próximo lanzamiento (sí).
- (void)remindLater;
Este método restablece el período de recordatorio.
El protocolo IRATEDELEGATE proporciona los siguientes métodos que pueden usarse eventos IRATE de interceptación y anular el comportamiento predeterminado. Todos los métodos son opcionales.
- (void)iRateCouldNotConnectToAppStore:(NSError *)error;
Este método se llama si Irate no puede conectarse a la App Store, generalmente porque la conexión de red está inactiva. Esto también puede disparar si su aplicación no tiene acceso a la red debido a los permisos de Sandbox, en cuyo caso deberá establecer manualmente el AppStoreid para que IRATE pueda funcionar.
- (void)iRateDidDetectAppUpdate;
Este método se llama si Irate detecta que la aplicación se ha actualizado desde la última vez que se lanzó.
- (BOOL)iRateShouldPromptForRating;
Este método se llama inmediatamente antes de que se muestre la solicitud de calificación al usuario. Puede usar este método para implementar la lógica de solicitud personalizada además de las reglas estándar. También puede usar este método para bloquear la alerta de solicitud estándar y mostrar la solicitud de calificación de una manera diferente, o evitarlo por completo.
- (void)iRateDidPromptForRating;
Este método se llama inmediatamente antes de que se muestre el mensaje de calificación. Esto es útil si usa Analytics para rastrear qué porcentaje de usuarios ven el aviso y luego vaya a la App Store. Esto puede ayudarlo a ajustar las circunstancias sobre cuándo/cómo muestra el aviso.
- (void)iRateUserDidAttemptToRateApp;
Esto se llama cuando el usuario presionó el botón de velocidad en el mensaje de calificación. Esto es útil si desea registrar la interacción del usuario con Irate. Este método solo se llama si está utilizando el indicador de vista de alerta IRATE estándar y no se llamará automáticamente si proporciona una implementación de calificación personalizada o llama directamente el método openRatingsPageInAppStore
.
- (void)iRateUserDidDeclineToRateApp;
Esto se llama cuando el usuario se niega para calificar la aplicación. Esto es útil si desea registrar la interacción del usuario con Irate. Este método solo se llama si está utilizando el aviso de vista de alerta IRATE estándar y no se llamará automáticamente si proporciona una implementación de calificación personalizada.
- (void)iRateUserDidRequestReminderToRateApp;
Esto se llama cuando el usuario solicita que se le recuerde que califique la aplicación. Esto es útil si desea registrar la interacción del usuario con Irate. Este método solo se llama si está utilizando el aviso de vista de alerta IRATE estándar y no se llamará automáticamente si proporciona una implementación de calificación personalizada.
- (BOOL)iRateShouldOpenAppStore;
Este método se llama inmediatamente antes de que IRATE intente abrir la App Store. Devuelva No si desea implementar su propia lógica de visualización de la página de calificaciones.
- (void)iRateDidOpenAppStore;
Este método se llama inmediatamente después de que Irate abre la App Store.
Las cadenas predeterminadas para IRATE ya están localizadas para muchos idiomas. Por defecto, IRATE usará todas las localizaciones en el Irate.bundle incluso en una aplicación que no está localizada, o que solo se localiza en un subconjunto de los idiomas que IRate admite. Las teclas de las cuerdas iradas son:
static NSString *const iRateMessageTitleKey = @"iRateMessageTitle";
static NSString *const iRateAppMessageKey = @"iRateAppMessage";
static NSString *const iRateGameMessageKey = @"iRateGameMessage";
static NSString *const iRateUpdateMessageKey = @"iRateUpdateMessage";
static NSString *const iRateCancelButtonKey = @"iRateCancelButton";
static NSString *const iRateRemindButtonKey = @"iRateRemindButton";
static NSString *const iRateRateButtonKey = @"iRateRateButton";
Si prefiere que IRATE solo use las localizaciones que están habilitadas en su aplicación (de modo que si su aplicación solo admite inglés, francés y español, Irate se localizará automáticamente para esos idiomas, pero no para alemán, aunque Irate incluya un alemán alemán. archivo de idioma), establezca la opción useAllAvailableLanguages
en no.
No se recomienda que modifique los archivos de cadenas en Irate.Bundle, ya que complicará la actualización de las versiones más nuevas de Irate. La excepción a esto es si desea enviar idiomas o mejoras adicionales o correcciones a las localizaciones en el proyecto IRATE en GitHub (que se aprecian enormemente).
Si desea agregar un idioma adicional para IRATE en su aplicación sin enviarlos nuevamente al proyecto GitHub, puede agregar estas cadenas directamente al archivo Localizable.Strings apropiado en la carpeta de su proyecto. Si desea reemplazar algunas o todas las cadenas Irate predeterminadas, la opción más simple es copiar solo esas cadenas en su propio archivo localizable.strings y luego modificarlas. Irate usará automáticamente cadenas en el paquete de aplicación principal con preferencia a las del paquete Irate para que pueda anular cualquier cadena de esta manera.
Si no desea usar ninguna de las localizaciones predeterminadas, puede omitir el Irate.Bundle por completo. Tenga en cuenta que si solo desea admitir un subconjunto de idiomas que posee, no es necesario eliminar los otros archivos de cadenas de Irate.Bundle, solo configure useAllAvailableLanguages
en NO, y IRATE solo usará los idiomas que su aplicación ya admite.
El antiguo método de anular las cadenas predeterminadas de IRATE mediante el uso de métodos setter individuales (ver más abajo) todavía es compatible, sin embargo, el enfoque recomendado ahora es agregar esas cadenas al archivo Localizable.Strings de su proyecto, que IRATE lo detectará automáticamente.
+ (void)initialize
{
//overriding the default iRate strings
[iRate sharedInstance].messageTitle = NSLocalizedString(@"Rate MyApp", @"iRate message title");
[iRate sharedInstance].message = NSLocalizedString(@"If you like MyApp, please take the time, etc", @"iRate message");
[iRate sharedInstance].cancelButtonLabel = NSLocalizedString(@"No, Thanks", @"iRate decline button");
[iRate sharedInstance].remindButtonLabel = NSLocalizedString(@"Remind Me Later", @"iRate remind button");
[iRate sharedInstance].rateButtonLabel = NSLocalizedString(@"Rate It Now", @"iRate accept button");
}
Cuando construye y ejecuta el proyecto básico de ejemplo de Mac o iPhone por primera vez, mostrará una alerta pidiéndole que califique la aplicación. Esto se debe a que la opción PreviewMode está configurada.
Deshabilite la opción PreviewMode y juegue con la otra configuración para ver cómo se comporta la aplicación en la práctica.
El ejemplo avanzado demuestra cómo puede implementar una interfaz iracada completamente a medida utilizando los métodos IuratedElegate. La solicitud automática está deshabilitada y, en cambio, el usuario puede optar por calificar la aplicación presionando el botón "Calificar esta aplicación".
Cuando se presiona, la aplicación primero verifica que la App Store está disponible (puede que no sea si la computadora no tiene conexión a Internet o Apple.com está inactivo) y luego inicia la App Store de Mac.
El ejemplo es para Mac OS, pero el mismo principio se puede aplicar en iOS.
Versión 1.12.2
Versión 1.12.1
Versión 1.12
Versión 1.11.7
Versión 1.11.6
Versión 1.11.5
Versión 1.11.4
canOpenURL:
Versión 1.11.3
Versión 1.11.2
Versión 1.11.1
Versión 1.11
promptIfCriteriaMet
NSNotificationCenter
como alternativa al delegadoUIAlertController
en lugar de UIAlertView
si está disponibleVersión 1.10.3
Versión 1.10.2
Versión 1.10.1
Versión 1.10
daysUntilPrompt
después de una actualización de la aplicaciónpromptForNewVersionIfUserRated
para volver a promocionar a los usuarios que tienen una calificación anterior (OFF de forma predeterminada)updateMessage
agregada para su uso con la opción promptForNewVersionIfUserRated
Versión 1.9.3
Versión 1.9.2
Versión 1.9.1
Versión 1.9
promptAgainEachVersion
Versión 1.8.3
Versión 1.8.2
Versión 1.8.1
Versión 1.8
Versión 1.7.5
Versión 1.7.4
Versión 1.7.3
Versión 1.7.2
Versión 1.7.1
Versión 1.7
Versión 1.6.2
Versión 1.6.1
Versión 1.6
Versión 1.5.3
Versión 1.5.2
Versión 1.5.1
Versión 1.5
Versión 1.4.9
Versión 1.4.8
Versión 1.4.7
Versión 1.4.6
Versión 1.4.5
Versión 1.4.4
Versión 1.4.3
Versión 1.4.2
Versión 1.4.1
Versión 1.4
Versión 1.3.5
Versión 1.3.4
iRateDidDetectAppUpdate
agregadoVersión 1.3.3
Versión 1.3.2
Versión 1.3.1
Versión 1.3
Versión 1.2.3
Versión 1.2.2
Versión 1.2.1
MAC_APP_STORE_REFRESH_DELAY
to 5 seconds to support older machinesVersión 1.2
Versión 1.1
Version 1.0