AppScan

AppScan is a service to analyze or audit any mobile application - Better Apps with better data

Contact Info
Paris - Biarritz, France

Follow Us

AppScan

AppScan is a service to analyze or audit any mobile application - Better Apps with better data

Contact Info
Paris - Biarritz, France

Follow Us

Zenly audit report

📱 zenly

  • Report date : nov. 18, 2022
  • Name of the app within the AppStore: zenly
  • App BundleId: com.alertus.zenly
  • App Version : 5.7.0
  • Global AppScore : 4.60

AppScore computation

AppScore components com.alertus.zenly 350 Apps in the same domain
Tools (⭐️⭐️⭐️⭐️⭐️) 4.70 (⬆️ 2%) 4.60
Minimum iOS version supported (⭐️⭐️⭐️⭐️⭐️) 5.00 (⬆️ 1%) 4.93
Permissions (⭐️⭐️⭐️⭐️⭐️ + 🌟) 6.00 (⬆️ 16%) 5.19
Open source librairies (⭐️⭐️⭐️⭐️) 3.80 (9% ⬇️) 4.16
Resources (⭐️⭐️⭐️) 2.60 (35% ⬇️) 3.98
App Size (⭐️⭐️⭐️⭐️) 3.80 (20% ⬇️) 4.73
App Languages (⭐️⭐️⭐️⭐️) 4.40 (⬆️ 22%) 3.61
App Interactions (⭐️⭐️⭐️⭐️⭐️ + 🌟🌟) 7.00 (⬆️ 66%) 4.21
App Security (⭐️⭐️⭐️⭐️) 4.10 (⬆️ 16%) 3.54
TOTAL: 4.60 ⭐️⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️

Tools : 4.70 (⭐️⭐️⭐️⭐️⭐️)

✅ TECH_XCODE_VERSION_NOT_THE_PREVIOUS_MAJOR : This rule checks the Xcode version used to compile the App. It's not the Major released version.

❌ TECH_XCODE_VERSION_NOT_THE_LAST: This rule checks the Xcode version used to compile the App. It's not the last released version.

CriticityFileMessage
⚠️.ipaThe version use to compile the project is 13.4.1 which is not the last version.

Minimum iOS version supported : 5.00 (⭐️⭐️⭐️⭐️⭐️)

✅ TECH_MIN_IOS_VERSION_ONLY_1_MAJOR : The App is trageting only one major version ? Maybe not a well targeted number of devices.

✅ TECH_MIN_IOS_VERSION_ONLY_2_MAJORS : The App is trageting only two major versions ? Maybe not a well targeted number of devices.

Permissions : 6.00 (⭐️⭐️⭐️⭐️⭐️ + 🌟)

✅ TECH_PLIST_PERMISSIONS_FEW_PERMISSIONS : This rule is there a significant number of permissions

✅ TECH_PLIST_BONUS_PERMISSIONS_LOCATIONS_MULTIPLE : Bonus - Multiple type of location permissions are implemented.

✅ TECH_PLIST_BONUS_LOT_OF_PERMISSIONS : Bonus - Scan if the App ask for a lot of permissions

❌ TECH_PLIST_PERMISSIONS_DEPRECATED: This rule check if deprecated permissions are used.

CriticityFileMessage
⚠️Zenly.app/info.plist (NSLocationAlwaysUsageDescription)This key NSLocationAlwaysUsageDescription is a deprecated UsageDescription

Open source librairies : 3.80 (⭐️⭐️⭐️⭐️)

✅ TECH_LIB_LICENCE_DANGEROUS : This rule detects if a license is dangerous for your App. (for example the GPL license)

✅ TECH_LIB_LICENCE_GITHUB_POD_INCOHERENCE : This rule detects if a license is may be dangerous for your App. The license is different between github and pod

❌ TECH_LIB_BAD_VITALITY: This rule checks the Vitality param (computation to be detailed).

\
CriticityFileMessage
☢️Zenly.app/(Frameworks/ZendeskCoreSDK.framework)The vitality of this Lib is not good. (no update since 211 days)
☢️Zenly.app/(Frameworks/Theme.framework)The vitality of this Lib is not good. (no update since 478 days)
🚨Zenly.app/(Frameworks/Sentry.framework)The vitality of this Lib is not good. (stargazers: 580, open_issues:134)
🚨Zenly.app/(Frameworks/Analytics.framework)The vitality of this Lib is not good. (stargazers: 381, open_issues:35)
☢️Zenly.app/(Frameworks/SCSDKCoreKit.framework)The vitality of this Lib is not good. (no update since 358 days)

❌ TECH_LIB_NOT_MAJOR: This rule checks if your App is using an old version of the librairy. Too old ?

CriticityFileMessage
☢️Zenly.app/(Frameworks/SCSDKCoreKit.framework)This Lib is not the major one. (actual: 1, recent: 2)

Resources : 2.60 (⭐️⭐️⭐️)

❌ TECH_RESOURCES_IMAGES_NOT_ASSETS_IN_MAIN: This rule in checking if some images are not managed into Assets files for the Main code.

CriticityFileMessage
⚠️Zenly.app/Base.lproj/splashBottomButtonMiddle@2x.pngThis image is not in the Assets, so it's not optimized by the App Thinning.
⚠️Zenly.app/Base.lproj/splashBottomButtonMiddle@3x.pngThis image is not in the Assets, so it's not optimized by the App Thinning.
⚠️Zenly.app/Base.lproj/splash@3x.pngThis image is not in the Assets, so it's not optimized by the App Thinning.
⚠️Zenly.app/Base.lproj/splash@2x.pngThis image is not in the Assets, so it's not optimized by the App Thinning.
⚠️Zenly.app/Base.lproj/splashBottomButton@2x.pngThis image is not in the Assets, so it's not optimized by the App Thinning.
⚠️Zenly.app/Base.lproj/splashBottomButton@3x.pngThis image is not in the Assets, so it's not optimized by the App Thinning.
⚠️Zenly.app/Crown.atlasc/Crown.1.pngThis image is not in the Assets, so it's not optimized by the App Thinning.

❌ TECH_RESOURCES_IMAGES_MISSING_SCALES_IN_MAIN: This rule in checking if some images are missing in the Main bundle.

CriticityFileMessage
⚠️Zenly.app/Base.lproj/splashBottomButtonMiddle.pngThis image miss some scales.
⚠️Zenly.app/Base.lproj/splashBottomButton.pngThis image miss some scales.
⚠️Zenly.app/Base.lproj/splash.pngThis image miss some scales.
⚠️Zenly.app/Crown.atlasc/Crown.1.pngThis image miss some scales.

❌ TECH_ATT_MISSING: This rule is checking if you App is missing the NSUserTrackingUsageDescription.

CriticityFileMessage
☢️Zenly.app/info.plist (NSUserTrackingUsageDescription)NSUserTrackingUsageDescription needs to be presented if your App is tracking the user (["Analytics.framework"].

❌ TECH_DEEPLINKS_UNIVERSAL_LINK_JSON_MISSING: This rule is checking is the apple association file (apple-app-site-association) is available on the website.

CriticityFileMessage
☢️Zenly.app/file.entitlementsYou have define Universalinks but the apple-app-site-association is not present. (Tested at zen.ly
☢️Zenly.app/file.entitlementsYou have define Universalinks but the apple-app-site-association is not present. (Tested at www.zenly-app.com

❌ TECH_DEEPLINKS_UNIVERSAL_LINK_JSON_UNCOMPLETE: This rule is checking is your App is declarerd on the apple association file (apple-app-site-association) available on the website.

CriticityFileMessage
☢️Zenly.app/file.entitlementsYou have define Universalinks but the apple-app-site-association is not present. (Tested at www.zenly-app.com

App Size : 3.80 (⭐️⭐️⭐️⭐️)

✅ TECH_SIZE_BIG_FILE : Big file detected if we compare it to the size of the entire App.

✅ TECH_SIZE_FILE_EMPTY : File empty detected if we compare it to the size of the entire App.

❌ TECH_SIZE_APP_IS_TOO_BIG_GSM_LIMIT: This rule checks if the App size is too big to download in GSM.

CriticityFileMessage
☢️com.alertus.zenly_838848566_v5.7.0_685.ipaIpa size is too big. More than 200Mo ! It's a GSM limit.

❌ TECH_SIZE_APP_IS_BIG: This rule checks if the App size is too big.

CriticityFileMessage
⚠️com.alertus.zenly_838848566_v5.7.0_685.ipaIpa size is big. More than 150Mo !

❌ TECH_SIZE_BIG_FRAMEWORK: This framework seems to be big if we compare it to the size of the entire App.

CriticityFileMessage
⚠️Zenly.app/Frameworks/WidgetsCommon.frameworkBig framework detected ! > 10% App size

App Languages : 4.40 (⭐️⭐️⭐️⭐️)

✅ TECH_SUPPORTED_LANGUAGES_MISSING : This rule is checking supported languages are implemented

✅ TECH_POOR_NUMBER_SUPPORTED_LANGUAGES_MISSING : This rule is checking few supported languages are implemented

✅ TECH_STRINGS_INFOPLIST_MISSING : This rule is checking if some InfoPlist.string files are missing.

✅ TECH_STRINGS_FILE_MISSING : This rule is checking if some .Strings files are missing for the app supported languages.

✅ TECH_STRINGS_MISSING_VALUES : This rule is checking if some values are empty

❌ TECH_STRINGS_LPROJ_MISSING: This rule is checking if .Strings files are missing.

CriticityFileMessage
⚠️Zenly.app/Frameworks/CitymapperNavigation.framework/Localizable.stringssome lprojs are missing ar.lproj,el.lproj,ja.lproj,uk.lproj,nb.lproj,da.lproj,es-419.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,hu.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringssome lprojs are missing uk.lproj,es-419.lproj,ms.lproj,km.lproj,hu.lproj,pt-BR.lproj,vi.lproj,fil-PH.lproj,th.lproj,hr.lproj
⚠️Zenly.app/Frameworks/CitymapperUI.framework/Localizable.stringssome lprojs are missing ar.lproj,uk.lproj,es-419.lproj,ms.lproj,km.lproj,vi.lproj,fil-PH.lproj,id.lproj,th.lproj,ro.lproj

❌ TECH_STRINGS_MISSING_KEYS: This rule is checking if some key are missing in Strings files.

CriticityFileMessage
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:settings_inputphonenumber_title_tooShort - Missing in km.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:signup_error_validation_title - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:settings_inputphonenumber_title_identifyyou_mobilePhone - Missing in km.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:signup_legal_signup - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:settings_inputphonenumber_content_tooShort - Missing in km.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:signup_phoneNumber_example - Missing in km.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:settings_inputphonenumber_placeholder_mobilePhone - Missing in km.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:signup_tos_accept - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:signup_legal - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:signup_legal_email - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:signup_error_validation_message - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Zenly_ZenlyLib_Resources.bundle/Localizable.stringskey:settings_inputphonenumber_subtitle - Missing in km.lproj
⚠️Zenly.app/PlugIns/WidgetsIntent.appex/Zenly_WidgetsIntent_WidgetsIntentLib_Resources.bundle/Widgets.stringskey:i3BoOb - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,en.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/PlugIns/WidgetsIntent.appex/Zenly_WidgetsIntent_WidgetsIntentLib_Resources.bundle/Widgets.stringskey:2n4B2d - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,en.lproj,uk.lproj,nb.lproj,es.lproj,da.lproj,es-419.lproj,it.lproj,ms.lproj,sv.lproj,km.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,vi.lproj,ru.lproj,fil-PH.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,th.lproj,pt.lproj,ro.lproj,hr.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_encryption_metadata_read_failure - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_deep_illegal_state - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:recovery_suggestion_contact_snap_kit_support - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:switch_to_snapchat_failure - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:unknown_error - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_file_too_large - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:snap_kit_server_unexpected_status_code - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_video_too_long - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_deep_link_failure - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_sticker_missing_url - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_main_media_data_read_failure - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_unknown - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_malformed_url - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_sticker_invalid_dimensions - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:recovery_suggestion_check_documentation - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:failed_to_retrieve_storage_links - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:content_upload_failed - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:contact_snap_kit_support - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:local_share_in_progress - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_sticker_invalid_format - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:failed_to_retrieve_encryption_metadata - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_lens_missing_id - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_invalid_argument - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:snap_content_not_valid - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_sticker_data_read_failure - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_description_missing_data - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:sticker_content_failure - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:snap_kit_server_unexpected_response_payload - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_caption_too_long - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:main_content_failure - Missing in en.lproj
⚠️Zenly.app/Frameworks/SCSDKCreativeKit.framework/Localizable.stringskey:error_invalid_file_format - Missing in de.lproj,ar.lproj,el.lproj,zh-Hans.lproj,ja.lproj,nb.lproj,en-GB.lproj,es.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,tr.lproj,pl.lproj,ru.lproj,fr.lproj,fi.lproj,id.lproj,nl.lproj,pt.lproj,pt-PT.lproj,ro.lproj
⚠️Zenly.app/Frameworks/CitymapperUI.framework/Localizable.stringskey:cm_sdk_go - Missing in de.lproj,el.lproj,zh-Hans.lproj,ja.lproj,zh-HK.lproj,nb.lproj,es.lproj,is.lproj,da.lproj,it.lproj,sv.lproj,ko.lproj,zh-Hant.lproj,hu.lproj,tr.lproj,pl.lproj,pt-BR.lproj,es-MX.lproj,ru.lproj,fr.lproj,fi.lproj,nl.lproj,pt.lproj,hr.lproj

App Interactions : 7.00 (⭐️⭐️⭐️⭐️⭐️ + 🌟🌟)

✅ TECH_ENTITLEMENTS_BONUS_MULTIPLE : Bonus - Detect for multiple entitlements. It means that the App interact a lot with the system

✅ TECH_ENTITLEMENTS_BONUS_ASSOCIATED_DOMAINS : Bonus - Scan for associated domains features. This show a strong integration with the Website

✅ TECH_EXTENSIONS_BONUS_MULTIPLE : Bonus - Scan for App Extensions. This show a good integration with the syteme.

✅ TECH_PLIST_BONUS_QUERIED_SCHEMES : Bonus - Scan for Queried Schemes. The is try to interact with multiple Apps?

App Security : 4.10 (⭐️⭐️⭐️⭐️)

✅ TECH_PLIST_apiKeys : This rule is scanning for api keys into your plist, that data are really not well secured. Is it safe ?

✅ TECH_PLIST_ATS_NSAllowsArbitraryLoads : This rule is detecting if ATS.NSAllowsArbitraryLoads exceptions are configured.

✅ TECH_PLIST_ATS_NSAllowsArbitraryLoadsInWebContent : This rule is detecting if ATS.NSAllowsArbitraryLoadsInWebContent exceptions are configured.

✅ TECH_PLIST_ATS_NSExceptionDomains : This rule is detecting if ATS.NSExceptionDomains exceptions are configured.

✅ TECH_DEEPLINKS_SCHEME_NOT_UNIQUE : This URLScheme is not safe, multiple apps can be opened using it.

❌ TECH_RESOURCES_FILE_SECURITY: This rule in checking if dangerous files are in the bundle.

CriticityFileMessage
⚠️Zenly.app/Frameworks/SupportProvidersSDK.framework/strip-frameworks.shRisky file detected
⚠️Zenly.app/Frameworks/ZendeskCoreSDK.framework/strip-frameworks.shRisky file detected
⚠️Zenly.app/Frameworks/InternalSharing.framework/Platform_InternalSharing_InternalSharing_Resources.bundle/pouet.txtRisky file detected
⚠️Zenly.app/Frameworks/Analytics.framework/ComodoRsaDomainValidationCA.derRisky file detected

❌ TECH_PLIST_extraKeys: This rule is scanning for extra keys into your plist, that data are really not well secured. Is it safe ?

CriticityFileMessage
☢️Zenly.app/info.plistExtra keys (Key or api) detected
⚠️Zenly.app/info.plist (CADisableMinimumFrameDurationOnPhone)Extra keys can present important data.
⚠️Zenly.app/info.plist (INIntentsSupported)Extra keys can present important data.
⚠️Zenly.app/info.plist (MGLMapboxMetricsEnabledSettingShownInApp)Extra keys can present important data.
⚠️Zenly.app/info.plist (SCSDKClientId)Extra keys can present important data.
⚠️Zenly.app/info.plist (PHPhotoLibraryPreventAutomaticLimitedAccessAlert)Extra keys can present important data.
⚠️Zenly.app/info.plist (LSApplicationCategoryType)Extra keys can present important data.
⚠️Zenly.app/info.plist (CitymapperSDKAPIKey)Extra keys can present important data.
⚠️Zenly.app/info.plist (SCSDKRedirectUrl)Extra keys can present important data.
⚠️Zenly.app/info.plist (ZNLYFullyQualifiedVersion)Extra keys can present important data.
⚠️Zenly.app/info.plist (FacebookDisplayName)Extra keys can present important data.
⚠️Zenly.app/info.plist (CitymapperSDKEndpointURL)Extra keys can present important data.

❌ TECH_DEEPLINKS_SCHEME_SECURITY: The URLScheme is not safe, Apple advise to move to universalLink.

CriticityFileMessage
ℹ️Zenly.app/info.plist fb110645182707989The URLScheme is not safe, Apple advise to move to universalLink
ℹ️Zenly.app/info.plist fb493616390746321The URLScheme is not safe, Apple advise to move to universalLink
ℹ️Zenly.app/info.plist fb539966336039230The URLScheme is not safe, Apple advise to move to universalLink
ℹ️Zenly.app/info.plist fb434793473280564The URLScheme is not safe, Apple advise to move to universalLink
ℹ️Zenly.app/info.plist fb309491105785919The URLScheme is not safe, Apple advise to move to universalLink
ℹ️Zenly.app/info.plist fb264178068047The URLScheme is not safe, Apple advise to move to universalLink
ℹ️Zenly.app/info.plist fb656567234355849The URLScheme is not safe, Apple advise to move to universalLink
ℹ️Zenly.app/info.plist zenlyThe URLScheme is not safe, Apple advise to move to universalLink