Copy link to clipboard
Copied
Hello all,
We are developing a game using Adobe Air and were rejected, here's the rejection letter:
Reasons
- 2.16: Multitasking Apps may only use background services for their intended purposes: VoIP, audio playback, location, task completion, local notifications, etc.
- 2.16
We found that your app uses a background mode but does not include functionality that requires that mode to run persistently. This behavior is not in compliance with the App Store Review Guidelines.
We noticed your app declares support for iBeacon in the UIBackgroundModes key in your Info.plist but does not include features that require persistent location.
It would be appropriate to add features that require persistent use of real-time location updates while the app is in the background or remove the "location" setting from the UIBackgroundModes key. If your application does not require persistent, real-time location updates, we recommend using the significant-change location service or the region monitoring location service.
For more information on these options, please see the "Starting the Significant-Change Location Service" and "Monitoring Shape-Based Regions" sections in the Location Awareness Programming Guide.
If you choose to add features that use the Location Background Mode, please include the following battery use disclaimer in your Application Description:
"Continued use of GPS running in the background can dramatically decrease battery life."
For discrete code-level questions, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
- complete details of your rejection issue(s)
- screenshots
- steps to reproduce the issue(s)
- symbolicated crash logs - if your issue results in a crash log
If you have difficulty reproducing a reported issue, please try testing the workflow as described in <https://developer.apple.com/library/ios/qa/qa1764/>Technical Q&A QA1764: How to reproduce a crash or bug that only App Review or users are seeing.
It says "We noticed your app declares support for iBeacon in the UIBackgroundModes key in your Info.plist but does not include features that require persistent location." but our info.plist file declares nothing of the sort, the file is attached at the end of this post. Upon further investigation we discovered that the following libraries, included by the compiler, declare UIBackgroundModes=[location,audio] and listeners for iBeacon:
The declarations can be seen if you look for the words UIBackgroundModes and beacon in the files.
Is there any way not to include the declarations for iBeacon in an adobe air app that doesn't need it?
Can you guys help us out?
info.plist:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleAllowMixedLocalizations</key>
<true/>
<key>CFBundleVersion</key>
<string>1.40.0</string>
<key>CFBundleShortVersionString</key>
<string>1.40</string>
<key>CFBundleIdentifier</key>
<string>com.505games.WickedGame</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleExecutable</key>
<string>wicked</string>
<key>CFBundleName</key>
<string>WICKED Game</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>11B508</string>
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>DTPlatformVersion</key>
<string>7.0</string>
<key>DTSDKBuild</key>
<string>11B508</string>
<key>DTSDKName</key>
<string>iphoneos7.0</string>
<key>DTXcode</key>
<string>0502</string>
<key>DTXcodeBuild</key>
<string>5A3005</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>MinimumOSVersion</key>
<string>6.1</string>
<key>NSMainNibFile</key>
<string>MainWindow</string>
<key>NSMainNibFile~ipad</key>
<string>MainWindow-iPad</string>
<key>CFBundleResourceSpecification</key>
<string>ResourceRules.plist</string>
<key>CFBundleDisplayName</key>
<string>WICKED Game</string>
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CTAspectRatio</key>
<string>any</string>
<key>renderMode</key>
<string>direct</string>
<key>CTRequestedDisplayResolution</key>
<string>high</string>
<key>DebugMode</key>
<false/>
<key>EnablePingback</key>
<true/>
<key>CTNamespaceURI</key>
<string>http://ns.adobe.com/air/application/4.0</string>
<key>CTAutoOrients</key>
<true/>
<key>CTInitialWindowTitle</key>
<string>ios</string>
<key>CTInitialWindowContent</key>
<string>ios.swf</string>
<key>CTMaxSWFMajorVersion</key>
<string>23</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>
</array>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleBlackOpaque</string>
<key>UIRequiresPersistentWiFi</key>
<string>NO</string>
<key>UIPrerenderedIcon</key>
<true/>
<key>UIApplicationExitsOnSuspend</key>
<false/>
<key>FacebookAppID</key>
<string>509901862398812</string>
<key>UIDeviceFamily</key>
<array>
<string>1</string>
<string>2</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb509901862398812</string>
</array>
</dict>
</array>
<key>iTunesAppID</key>
<string>693001332</string>
<key>ANEDebug</key>
<false/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
<string>opengles-2</string>
</array>
<key>CFBundleIconFiles</key>
<array>
<string>Icon-Ipad-152.png</string>
<string>Icon@2x-Large.png</string>
<string>Icon-Iphone-120.png</string>
<string>Icon@2x.png</string>
<string>Icon-Small-80.png</string>
<string>Icon-Ipad-76.png</string>
<string>Icon-Large.png</string>
<string>Icon.png</string>
<string>Icon-Small-50.png</string>
<string>Icon-Small-40.png</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
</array>
<key>Extensions</key>
<array>
<string>com.hasoffers.MobileAppTracker</string>
<string>com.sticksports.nativeExtensions.SilentSwitch</string>
<string>com.milkmangames.extensions.RateBox</string>
<string>com.freshplanet.AirInAppPurchase</string>
<string>com.milkmangames.extensions.GoViral</string>
<string>com.chartboost.plugin.air</string>
</array>
<key>CTAirSdkVersion</key>
<string>14.0.0.110</string>
<key>CTHideAneSymbols</key>
<false/>
</dict>
</plist>
Copy link to clipboard
Copied
If there is no entry for UIBackgroundModes in the Info.plist, there is no way an application would use the background services. Could you please follow-up with Apple on this? Has anybody else faced this issue?
-Neha
Copy link to clipboard
Copied
Hey, thanks for the reply.
We eliminated a possible suspect but want to get the app approved before revealing the culprit. We'll reply again as soon as apple finishes the review process.
Regards
Copy link to clipboard
Copied
From Juan Gril: Even though there was nothing about UIBackgrounds modes in the info.plist, Apple rejected it. They did continue to reject it even when we pointed that out.
We continued investigating on Friday, and we may found the culprit in an ANE from a third party service. This third party service was calling iBeacon in various parts of the code when we reviewed the binary file of the ANE. We re-submitted the game and we are now waiting from Apple to let us know.
Copy link to clipboard
Copied
FIXED (for our project at least)
What the apple reviewer actually meant was that iBeacon was being enabled for the project but the info.plist didn't declare the use of location services which didn't make sense to them, I guess that implementations of iBeacon only make sense to apple if location services are used in the implementation. The problem with our project was that a third party ANE declared usage of iBeacon without us knowing anything about it and that was causing all the trouble. We contacted this third party and they updated the ANE. The game is up in the app store now.
Regards
Copy link to clipboard
Copied