You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by GitBox <gi...@apache.org> on 2019/10/13 14:55:31 UTC

[GitHub] [cordova-ios] jespertheend opened a new issue #685: App rejected, NSBluetoothAlwaysUsageDescription required but not using bluetooth.

jespertheend opened a new issue #685: App rejected, NSBluetoothAlwaysUsageDescription required but not using bluetooth.
URL: https://github.com/apache/cordova-ios/issues/685
 
 
   # Bug Report
   
   ## Problem
   
   ### What is expected to happen?
   
   The app would get approved when uploading to appstore connect.
   
   ### What does actually happen?
   
   The app gets rejected with the following message:
   
   ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSBluetoothAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
   
   ## Information
   <!-- Include all relevant information that might help understand and reproduce the problem -->
   
   I have removed all my plugins and the app is still getting rejected. [This answer](https://stackoverflow.com/a/58000535/3625298) shows a command that can be used on the generated iOS project folder: `grep -r -a CoreBluetooth.framework platforms/ios/`.
   In my case it does indeed show some references to bluetooth:
   
   ```
   $ grep -r -a CoreBluetooth.framework platforms/ios/
   platforms/ios//frameworks.json:    "CoreBluetooth.framework": 1,
   platforms/ios//Nugget Royale.xcodeproj/project.pbxproj:		5B76CFCDD02142E5BFA74142 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE37821F9FC94BD1896E55C2 /* CoreBluetooth.framework */; };
   platforms/ios//Nugget Royale.xcodeproj/project.pbxproj:		DE37821F9FC94BD1896E55C2 /* CoreBluetooth.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
   platforms/ios//Nugget Royale.xcodeproj/project.pbxproj:				5B76CFCDD02142E5BFA74142 /* CoreBluetooth.framework in Frameworks */,
   platforms/ios//Nugget Royale.xcodeproj/project.pbxproj:				DE37821F9FC94BD1896E55C2 /* CoreBluetooth.framework */,
   ```
   
   My config.xml: (trimmed down some unnecessary info)
   ```
   <?xml version='1.0' encoding='utf-8'?>
   <widget android-versionCode="4" id="xxx" ios-CFBundleVersion="4" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
       <name>xxx</name>
       <description>xxx</description>
       <author email="xxx" href="xxx">
           xxx
       </author>
       <content src="index.html" />
       <access origin="*" />
       <allow-intent href="http://*/*" />
       <allow-intent href="https://*/*" />
       <allow-intent href="tel:*" />
       <allow-intent href="sms:*" />
       <allow-intent href="mailto:*" />
       <allow-intent href="geo:*" />
       <platform name="android">
           <allow-intent href="market:*" />
           <preference name="android-minSdkVersion" value="21" />
       </platform>
       <platform name="ios">
           <allow-intent href="itms:*" />
           <allow-intent href="itms-apps:*" />
           <config-file parent="GADApplicationIdentifier" target="*-Info.plist">
               <string>xxx</string>
           </config-file>
           <config-file parent="GADIsAdManagerApp" platform="ios" target="*-Info.plist">
               <true />
           </config-file>
       </platform>
       <preference name="ShowSplashScreenSpinner" value="false" />
       <preference name="AutoHideSplashScreen" value="false" />
       <preference name="Orientation" value="landscape" />
       <engine name="android" spec="^8.0.0" />
       <engine name="ios" spec="^5.0.1" />
   </widget>
   ```
   
   
   ### Environment, Platform, Device
   <!-- In what environment, on what platform or on which device are you experiencing the issue? -->
   Running cordova 9.0.0 (cordova-lib@9.0.1) and cordova-ios 5.0.1 on MacOS Catalina 10.15 (19A583)
   Xcode 11.1 (11A1027)
   
   
   ## Checklist
   <!-- Please check the boxes by putting an x in the [ ] like so: [x] -->
   
   - [x] I searched for existing GitHub issues
   - [x] I updated all Cordova tooling to most recent version
   - [x] I included all the necessary information above
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org