iOS Question applicable purpose string

kilat kosasih

Member
Licensed User
Longtime User
Hi,
I have a problen when i use camera in apps.
The problem is not technical, but administration in apple.
When i submit apps to app store, and i get error message:

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requests the user’s consent to access their camera but does not clarify the use of the camera in the applicable purpose string.
Next Steps
Please revise the relevant purpose string in your app’s Info.plist file to specify why the app is requesting access to the user's camera. You can modify your app's Info.plist file using the property list editor in Xcode.

In my apps already insert code:
#Region Project Attributes
:
#PlistExtra:<key>NSCameraUsageDescription</key><string>Read and recognize qr code image</string>
#PlistExtra:<key>NSCameraUsageDescription</key><string>Taking a photo</string>
:
#End Region

How can I fulfill the desires of Apple?

Thankyou
Regards, kilat kosasih
 

kilat kosasih

Member
Licensed User
Longtime User
Thank you
I try again with one NSCameraUsageDescription
Yes, i also add NSPhotoLibraryUsageDescription

Now, i am waiting respons from Apple
 
Upvote 0

kilat kosasih

Member
Licensed User
Longtime User
I already send the new compiled ipa file to app store
But I still get the same respon:

From Apple
  • 5. 1.1 Legal: Privacy - Data Collection and Storage
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage


We still noticed that your app requests the user’s consent to access their camera but does not clarify the use of the camera in the applicable purpose string.

Next Steps

Please revise the relevant purpose string in your app’s Info.plist file to specify why the app is requesting access to the user's camera. You can modify your app's Info.plist file using the property list editor in Xcode.

To help users understand why your app is requesting access to their personal data, all permission request alerts in your app should specify how your app will use the requested feature.


This my project attribute in my source apps:

#Region Project Attributes
#ApplicationLabel: Gilgal Tools
#Version: 3.1.8
#iPhoneOrientations: Portrait, LandscapeLeft, LandscapeRight
#iPadOrientations: Portrait, LandscapeLeft, LandscapeRight, PortraitUpsideDown
#Target: iPhone, iPad
#ATSEnabled: False
#MinVersion: 9.0
#PlistExtra: <key>NSCameraUsageDescription</key><string>Read and recognize qr code image</string>
#PlistExtra: <key>NSPhotoLibraryUsageDescription</key><string>Photo library view and selecttion</string>
#PlistExtra: <key>NSPhotoLibraryAddUsageDescription</key><string>Save photo in albums</string>
#PlistExtra: <key>UIViewControllerBasedStatusBarAppearance</key><false/>
#Entitlement: <key>aps-environment</key><string>production</string>
#ProvisionFile: JakNetDistribution2.mobileprovision
#End Region

I using B4i version 6.50 and i using mac machine to compile
My xcode version is 11.4.1 (11E503a)
Mac os Catalina version 10.15.4

What must i do to correct it?
Please help me.
Thankyou

Regards
kilat kosasih
 
Upvote 0

kilat kosasih

Member
Licensed User
Longtime User
I'm not sure why they say there is a problem. You can check the plist file that is inside the IPA (zip file) and make sure that the description was added.
this is contain of file ïnfo.plist"

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.JakNet.iOS.GilgalTools</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>3.1.8</string>
<key>CFBundleVersion</key>
<string>3.1.8</string>
</dict>
</plist>

why not inside in that file?
how to make inside?
 
Upvote 0

kilat kosasih

Member
Licensed User
Longtime User
Looks like you either modified the plist template or put a plist file under Files\Special.
I don't know about modifying the plist template, but in the Files \ Special folder there are only files:
GoogleService-Info.plist
icon-store-1024.png
 
Upvote 0

Semen Matusovskiy

Well-Known Member
Licensed User
Which libraries did you include ?

For example, GoogleService-Info.plist confuses me, because it's Firebase relative.
If you really included such libraries like iFirebaseNotification (even if you do not use them), this will add frameworks, which (probably) need additional PlistExtra.
 
Upvote 0

kilat kosasih

Member
Licensed User
Longtime User
Which libraries did you include ?

For example, GoogleService-Info.plist confuses me, because it's Firebase relative.
If you really included such libraries like iFirebaseNotification (even if you do not use them), this will add frameworks, which (probably) need additional PlistExtra.
I am using library as attached
My apps using firebase for send and receive message
 

Attachments

  • Capture.JPG
    Capture.JPG
    30.7 KB · Views: 216
Upvote 0

Semen Matusovskiy

Well-Known Member
Licensed User
It's clear that "Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage" messages are automatic.
Guess, Apple's tool understands a list of used frameworks. For example, if app uses Google Maps, a robot expects NSLocation... descriptions.

iMedia library supports video. Probably, Apple's tool wants

#PlistExtra : <key>NSMicrophoneUsageDescription</key><string>..</string>
 
Upvote 0

kilat kosasih

Member
Licensed User
Longtime User
It's clear that "Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage" messages are automatic.
Guess, Apple's tool understands a list of used frameworks. For example, if app uses Google Maps, a robot expects NSLocation... descriptions.

iMedia library supports video. Probably, Apple's tool wants
Apple stressed the reason for asking permission to use a camera that was not delivered.
 
Upvote 0

kilat kosasih

Member
Licensed User
Longtime User
It is not related to libraries. The #PlistExtra strings should be added to the generated B4iProject-Info.plist file (Objects\src\B4iProject).

If this is not the case then you should reinstall B4i after you make sure that all files in the installation folder were deleted.
Yes, i saw the plistextra string is on that file (at the bottom), but i don't know, it is true ot not.




<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>JakNet.iOS.GilgalTools</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Gilgal Tools</string>
<key>CFBundleDisplayName</key>
<string>Gilgal Tools</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>UIRequiresFullScreen</key>
<true/>

<key>CFBundleIconName</key>
<string>AppIcon</string>
<key>CFBundleIcons</key>
<dict/>
<key>CFBundleIcons~ipad</key>
<dict/>
<key>CFBundleVersion</key>
<string>3.1.8</string>
<key>CFBundleShortVersionString</key>
<string>3.1.8</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>

</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>

</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>

</array>

<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict>
<key>CFBundleURLTypes</key><array><dict><key>CFBundleURLSchemes</key><array><string>JakNet.iOS.GilgalTools</string></array></dict>
</array>

<key>NSCameraUsageDescription</key><string>Read and recognize qr code image</string>
<key>NSPhotoLibraryUsageDescription</key><string>Photo library view and selecttion</string>
<key>NSPhotoLibraryAddUsageDescription</key><string>Save photo in albums</string>
<key>UIViewControllerBasedStatusBarAppearance</key><false/>
</dict>
</plist>





And at my source:
#Region Project Attributes
#ApplicationLabel: Gilgal Tools
#Version: 3.1.8
#iPhoneOrientations: Portrait, LandscapeLeft, LandscapeRight
#iPadOrientations: Portrait, LandscapeLeft, LandscapeRight, PortraitUpsideDown
#Target: iPhone, iPad
#ATSEnabled: False
#MinVersion: 9.0
#PlistExtra: <key>NSCameraUsageDescription</key><string>Read and recognize qr code image</string>
#PlistExtra: <key>NSPhotoLibraryUsageDescription</key><string>Photo library view and selecttion</string>
#PlistExtra: <key>NSPhotoLibraryAddUsageDescription</key><string>Save photo in albums</string>
#PlistExtra: <key>UIViewControllerBasedStatusBarAppearance</key><false/>
#Entitlement: <key>aps-environment</key><string>production</string>
#ProvisionFile: JakNetDistribution2.mobileprovision
#End Region
 
Upvote 0
Top