WARNING: unrecognized key: settings.iphone.plist.ITSAppUsesNonExemptEncryption (boolean)

I get the following warning in Corona Simulator Output:

WARNING: unrecognized key: settings.iphone.plist.ITSAppUsesNonExemptEncryption (boolean)

The build.settings file looks like this:

settings = { orientation = { default = "portrait", supported = { "portrait" }, }, android = { usesPermissions = { "android.permission.INTERNET", "android.permission.VIBRATE", "android.permission.WRITE\_EXTERNAL\_STORAGE", }, usesFeatures = { { name = "android.hardware.location.network", required = false }, }, }, iphone = { plist = { ITSAppUsesNonExemptEncryption = false, NSCalendarsUsageDescription = "Testing", NSPhotoLibraryUsageDescription = "Testing", NSCameraUsageDescription = "Testing", NSAppTransportSecurity = { NSExceptionDomains = { ["allthumbsdev.com"] = { NSIncludesSubdomains = true, NSThirdPartyExceptionAllowsInsecureHTTPLoads = true, NSAllowsArbitraryLoads = false, }, }, }, CFBundleIconFiles = { "Icon-57.png", "Icon-60.png", "Icon-72.png", "Icon-76.png", "Icon-120.png", "Icon-152.png" }, } }, window = { -- Settings for the desktop window; applies to both Win32 and OS X desktop apps defaultViewWidth = 320, defaultViewHeight = 480, resizable = true, minViewWidth = 320, minViewHeight = 480, }, plugins = { ["plugin.utf8"] = { publisherId = "com.coronalabs" }, ["plugin.pasteboard"] = { publisherId = "com.coronalabs", }, ["plugin.texttospeech"] = { publisherId = "com.spiralcodestudio" }, ["plugin.vibrator"] = { publisherId = "com.spiralcodestudio" , supportedPlatforms = { iphone=false, android=true } }, }, } 

I also get the some sort of warning in iTune Connect about encryption and they suggest using ITSAppUsesNonExemptEncryption = false. Doesn’t seem to register correctly.

Is it badly formatted or something? 

We’ve enabled a feature that scans build.settings and config.lua looking for problems. I’ll let engineering know about that key. it’s not just one we were expecting to see there. You can ignore the warning.

Rob

This was fixed in Daily Build CoronaSDK 2016.2981

I uploaded the app for testflight testing today and I have received the same note, even though I have used this line in build settings: 

ITSAppUsesNonExemptEncryption = false and use Version 2017.3023 (2017.1.12) of Corona. It was approved for testing, but with the mentioned note, so I’m not sure if that’s ok for appstore submit or not.

Did you get the warning in the console log or from Apple when submitting the app?

Can you copy/paste the entire message here?

I got the warning/notice on iTunes Connect, def. not on console log. Sorry, i can’t paste it since I don’t have it saved, but It went smth like: if you don’t use encryption put this in your plist file…<key>ITSAppUsesNonExemptEncryption<key/>< false/>… As I said before I did have this line in build.settings under iPhone plist: ITSAppUsesNonExemptEncryption = false. 

It might be worth sharing your build.settings to get some extra eyes on it to make sure you have it right.

All that does is save you from having to answer some questions during the submission process.

Rob

I think this is the settings I used when I uploaded the app to testing:

– build.settings 

settings = 

     android  = 

     { 

        usesPermissions  = 

        { 

             “android.permission.RECORD_AUDIO”, 

             “android.permission.WRITE_EXTERNAL_STORAGE”, 

        }, 

     }, 

     orientation = 

     { 

         default = “landscapeRight”, 

         supported = { “landscapeLeft”, “landscapeRight” } 

      }, 

      iphone =  

      {  

         plist=  

         {  

              ITSAppUsesNonExemptEncryption = false,

              NSCalendarsUsageDescription = “Not used in this app”,

       NSPhotoLibraryUsageDescription = “Not used in this app”,

       NSCameraUsageDescription = “Not used in this app”,

              UIApplicationExitsOnSuspend = false,  

              UIStatusBarHidden = true,  

              CFBundleIconFiles = {  

                   “Icon.png”,  

                   “Icon@2x.png”,  

                   “Icon-72.png”,  

                   “Icon-72@2x.png”,  

                   “Icon-76.png”,  

                   “Icon-76@2x.png”,  

                   “Icon-120.png”,  

                   “Icon-60.png”,  

                   “Icon-60@2x.png”,  

                   “Icon-Small-50@2x.png”,  

                   “Icon-Small-50.png”,  

                   “Icon-Small.png”,  

                   “Icon-Small@2x.png”,  

                   “Icon-60@3x.png”,  

                   “Icon-Small-40@3x.png”,  

                   “Icon-Small@3x.png”,  

                   “Icon-Small-40.png”,  

                   “Icon-Small-40@2x.png”,  

              },  

       UILaunchImages = {    

                {  – iPhone 4 Portrait

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{320, 480}”

                },

                

                {  – iPhone 5 Portrait

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default-568h”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{320, 568}”

                },

                        {  – iPhone 6 Portrait

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-667h”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{375, 667}”

                },

            

                {  – iPhone 6 Plus Portrait

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-736h”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{414, 736}”

                },

            

                {  – iPhone 6 Plus LandscapeLeft

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-Landscape-736h”,

                    [“UILaunchImageOrientation”] = “LandscapeLeft”,

                    [“UILaunchImageSize”] = “{414, 736}”

                },

                {  – iPhone 6 Plus LandscapeRight

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-Landscape-736h”,

                    [“UILaunchImageOrientation”] = “LandscapeRight”,

                    [“UILaunchImageSize”] = “{414, 736}”

                },

               

                {  – iPad LandscapeLeft

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default-Landscape”,

                    [“UILaunchImageOrientation”] = “LandscapeLeft”,

                    [“UILaunchImageSize”] = “{768, 1024}”

                },

                

                {  – iPad LandscapeRight

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default-Landscape”,

                    [“UILaunchImageOrientation”] = “LandscapeRight”,

                    [“UILaunchImageSize”] = “{768, 1024}”

                },

                {  – iPad Pro Landscape Right

                    [“UILaunchImageMinimumOSVersion”] = “9.0”,

                    [“UILaunchImageName”] = “Default-Landscape-1366”,

                    [“UILaunchImageOrientation”] = “LandscapeRight”,

                    [“UILaunchImageSize”] = “{1024, 1366}”

                },

                {  – iPad Pro Landscape Left

                    [“UILaunchImageMinimumOSVersion”] = “9.0”,

                    [“UILaunchImageName”] = “Default-Landscape-1366”,

                    [“UILaunchImageOrientation”] = “LandscapeLeft”,

                    [“UILaunchImageSize”] = “{1024, 1366}”

                },  

            },     

         },  

       },  

}

I think it might not recognize the key until you’ve at least submitted the export compliance form at least once.  Still it’s purpose is to save you from having to deal with the export compliance form every time you submit, so it’s really a harmless warning.

Rob

ok, good to know. thank you, Rob

I get the following when testing in Simulator with Corona build 3049:

WARNING: unrecognized key: settings.iphone.plist.NSLocationAlwaysUsageDescription[] (string) WARNING: unrecognized key: settings.iphone.plist.skipPNGCrush (boolean) WARNING: deprecated key: settings.iphone.plist.CFBundleIconFile (string) WARNING: unrecognized key: settings.iphone.plist.NSLocationWhenInUseUsageDescription[] (string) WARNING: unrecognized key: settings.ipad.plist.CFBundleVersion (string) WARNING: unrecognized key: settings.ipad.plist.UIPrerenderedIcon (boolean) WARNING: unrecognized key: settings.ipad.plist.NSLocationAlwaysUsageDescription[] (string) WARNING: unrecognized key: settings.ipad.plist.CFBundleName (string) WARNING: unrecognized key: settings.ipad.plist.skipPNGCrush (boolean) WARNING: unrecognized key: settings.ipad.plist.CFBundleShortVersionString (string) WARNING: unrecognized key: settings.ipad.plist.CFBundleIdentifier (string) WARNING: unrecognized key: settings.ipad.plist.NSAppTransportSecurity.NSAllowsArbitraryLoads (boolean) WARNING: unrecognized key: settings.ipad.plist.CFBundleDisplayName (string) WARNING: unrecognized key: settings.ipad.plist.MinimumOSVersion (string) WARNING: unrecognized key: settings.ipad.plist.UIApplicationExitsOnSuspend (boolean) WARNING: unrecognized key: settings.ipad.plist.UIStatusBarHidden (boolean) WARNING: unrecognized key: settings.ipad.plist.CFBundleLocalizations[] (string) WARNING: unrecognized key: settings.ipad.plist.UILaunchImages.1.UILaunchImageOrientation (string) WARNING: unrecognized key: settings.ipad.plist.UILaunchImages.1.UILaunchImageMinimumOSVersion (string) WARNING: unrecognized key: settings.ipad.plist.UILaunchImages.1.UILaunchImageSize (string) WARNING: unrecognized key: settings.ipad.plist.UILaunchImages.1.UILaunchImageName (string) WARNING: unrecognized key: settings.ipad.plist.UILaunchStoryboardName (string) WARNING: unrecognized key: settings.ipad.plist.CFBundleIconFile (string) WARNING: unrecognized key: settings.ipad.plist.CFBundleIconFiles[] (string) WARNING: unrecognized key: settings.ipad.plist.NSLocationWhenInUseUsageDescription[] (string) WARNING: unrecognized key: settings.android.UIStatusBarHidden (boolean)

First, there is no settings.ipad, it’s only settings.iphone. 

Android doesn’t have a UIStatusBarHidden key, that’s an iOS feature.

skipPNGcrush does not go in the .plist table, it goes in the main .iphone table.

CFBundleIconFile was an iOS 3-5 feature. Our minimum is now iOS 8, so this can be safely removed.

The two location entries are likely false-positives and can be ignored. Also some of these may have been addressed as we continue to refine the source data for what’s valid in the build.settings file. Perhaps 3061 might clear up these false positives. The other ones I listed above are actually problems that you might want to address like removing the .ipad table since we never use it.

Rob

It looks like you’ve defined  settings.iphone.plist.NSLocationAlwaysUsageDescription to be an array of something when it should just be a simple string (ditto for the other location description setting).

We’ve enabled a feature that scans build.settings and config.lua looking for problems. I’ll let engineering know about that key. it’s not just one we were expecting to see there. You can ignore the warning.

Rob

This was fixed in Daily Build CoronaSDK 2016.2981

I uploaded the app for testflight testing today and I have received the same note, even though I have used this line in build settings: 

ITSAppUsesNonExemptEncryption = false and use Version 2017.3023 (2017.1.12) of Corona. It was approved for testing, but with the mentioned note, so I’m not sure if that’s ok for appstore submit or not.

Did you get the warning in the console log or from Apple when submitting the app?

Can you copy/paste the entire message here?

I got the warning/notice on iTunes Connect, def. not on console log. Sorry, i can’t paste it since I don’t have it saved, but It went smth like: if you don’t use encryption put this in your plist file…<key>ITSAppUsesNonExemptEncryption<key/>< false/>… As I said before I did have this line in build.settings under iPhone plist: ITSAppUsesNonExemptEncryption = false. 

It might be worth sharing your build.settings to get some extra eyes on it to make sure you have it right.

All that does is save you from having to answer some questions during the submission process.

Rob

I think this is the settings I used when I uploaded the app to testing:

– build.settings 

settings = 

     android  = 

     { 

        usesPermissions  = 

        { 

             “android.permission.RECORD_AUDIO”, 

             “android.permission.WRITE_EXTERNAL_STORAGE”, 

        }, 

     }, 

     orientation = 

     { 

         default = “landscapeRight”, 

         supported = { “landscapeLeft”, “landscapeRight” } 

      }, 

      iphone =  

      {  

         plist=  

         {  

              ITSAppUsesNonExemptEncryption = false,

              NSCalendarsUsageDescription = “Not used in this app”,

       NSPhotoLibraryUsageDescription = “Not used in this app”,

       NSCameraUsageDescription = “Not used in this app”,

              UIApplicationExitsOnSuspend = false,  

              UIStatusBarHidden = true,  

              CFBundleIconFiles = {  

                   “Icon.png”,  

                   “Icon@2x.png”,  

                   “Icon-72.png”,  

                   “Icon-72@2x.png”,  

                   “Icon-76.png”,  

                   “Icon-76@2x.png”,  

                   “Icon-120.png”,  

                   “Icon-60.png”,  

                   “Icon-60@2x.png”,  

                   “Icon-Small-50@2x.png”,  

                   “Icon-Small-50.png”,  

                   “Icon-Small.png”,  

                   “Icon-Small@2x.png”,  

                   “Icon-60@3x.png”,  

                   “Icon-Small-40@3x.png”,  

                   “Icon-Small@3x.png”,  

                   “Icon-Small-40.png”,  

                   “Icon-Small-40@2x.png”,  

              },  

       UILaunchImages = {    

                {  – iPhone 4 Portrait

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{320, 480}”

                },

                

                {  – iPhone 5 Portrait

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default-568h”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{320, 568}”

                },

                        {  – iPhone 6 Portrait

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-667h”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{375, 667}”

                },

            

                {  – iPhone 6 Plus Portrait

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-736h”,

                    [“UILaunchImageOrientation”] = “Portrait”,

                    [“UILaunchImageSize”] = “{414, 736}”

                },

            

                {  – iPhone 6 Plus LandscapeLeft

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-Landscape-736h”,

                    [“UILaunchImageOrientation”] = “LandscapeLeft”,

                    [“UILaunchImageSize”] = “{414, 736}”

                },

                {  – iPhone 6 Plus LandscapeRight

                    [“UILaunchImageMinimumOSVersion”] = “8.0”,

                    [“UILaunchImageName”] = “Default-Landscape-736h”,

                    [“UILaunchImageOrientation”] = “LandscapeRight”,

                    [“UILaunchImageSize”] = “{414, 736}”

                },

               

                {  – iPad LandscapeLeft

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default-Landscape”,

                    [“UILaunchImageOrientation”] = “LandscapeLeft”,

                    [“UILaunchImageSize”] = “{768, 1024}”

                },

                

                {  – iPad LandscapeRight

                    [“UILaunchImageMinimumOSVersion”] = “7.0”,

                    [“UILaunchImageName”] = “Default-Landscape”,

                    [“UILaunchImageOrientation”] = “LandscapeRight”,

                    [“UILaunchImageSize”] = “{768, 1024}”

                },

                {  – iPad Pro Landscape Right

                    [“UILaunchImageMinimumOSVersion”] = “9.0”,

                    [“UILaunchImageName”] = “Default-Landscape-1366”,

                    [“UILaunchImageOrientation”] = “LandscapeRight”,

                    [“UILaunchImageSize”] = “{1024, 1366}”

                },

                {  – iPad Pro Landscape Left

                    [“UILaunchImageMinimumOSVersion”] = “9.0”,

                    [“UILaunchImageName”] = “Default-Landscape-1366”,

                    [“UILaunchImageOrientation”] = “LandscapeLeft”,

                    [“UILaunchImageSize”] = “{1024, 1366}”

                },  

            },     

         },  

       },  

}