• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
7

IOS is blocking AIR, rejected for months,due to AIR has API using IOPSCopyPowerSourcesInfo

New Here ,
Mar 31, 2018 Mar 31, 2018

Copy link to clipboard

Copied

Our mobile game uses FLash, and AIR 29 to make it work on IOS devices,

However, we can't upgrade our game since half year ago, and Apple review team finally told us the reason:

REJECTED:

Thanks for your resubmission.

Guideline 2.5.1 - Performance - Software Requirements

Your app uses or references the following non-public APIs:

_IOPSCopyPowerSourcesInfo, _IOPSCopyPowerSourcesList, _IOPSGetPowerSourceDescription

The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

Next Steps

If you are using third-party libraries, please update to the most recent version of those libraries. If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool can output a list of the methods that the library calls and "otool -ov" will output the Objective-C class structures and their defined methods. These tools can help you narrow down where the problematic code resides. You could also use the "nm" tool to verify if any third-party libraries are calling these APIs.

Resources

For information on the "nm" tool, please review the "nm tool" Xcode manual page.

If there are no alternatives for providing the functionality your app requires, you can file an enhancement request.

Then we found it's in AIR sdk, even 29.

Then we replied:

The earlier letter said our app has the following non-public APIs:

"_IOPSCopyPowerSourcesInfo", "_IOPSCopyPowerSourcesList" and "_IOPSGetPowerSourceDescription".

We checked the ipa file with the tools you suggested.

"nm" and "oTool" found none.

The tool "strings" only found "IOPSCopyPowerSourcesInfo", "IOPSCopyPowerSourcesList" and "IOPSGetPowerSourceDescription" (non-underlined) referenced.

After searched the non-underlined version from the apple develop center, we thought they are public APIs.

However, we never called them.

These were found in the popular SDK Adobe AIR, and were alone there for years.

We haven't got any alternatives beyond Adobe AIR.

TOPICS
Performance issues

Views

24.6K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
replies 178 Replies 178
Advisor ,
Apr 10, 2018 Apr 10, 2018

Copy link to clipboard

Copied

.. well then Adobe should have an Animate version waiting that also generates the file.

It's not that I can't use XCode (I'm regretting not using Xcode for this project), it kind of negates the idea of using Animate to build once publish anywhere.

The more I use animate I realise how hopeless it is at multi-target publishing. It works but with all sorts of work-arounds required that should be integrated into the product.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 10, 2018 Apr 10, 2018

Copy link to clipboard

Copied

I compiled it as the Air 29.0.0.122(preview version), but I get the following error & warning.

error:

Could not resolve <s:SolidColor> to a component implementation.

Could not resolve <s:SolidColorStroke> to a component implementation.

Could not resolve <s:State> to a component implementation.

warning:

1104: No constructor function was specified for class AnyClass

# Everything is ok when I compile it with the Air 29.0.0.112.(Official Version)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 10, 2018 Apr 10, 2018

Copy link to clipboard

Copied

Awesome! Thanks Chris

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 11, 2018 Apr 11, 2018

Copy link to clipboard

Copied

That's great news, Chris — thanks to the team for acting so swiftly on this problem!

First postings in the Starling forum indicate that your change actually fixes the problem.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 17, 2018 Apr 17, 2018

Copy link to clipboard

Copied

I download air 29.0.0.122 respectively from both in this page and in the official download page.

I built two ipa for deveopment and adhoc and test them.

Two ipa not was installed on the valid devices -  iPhone 6 Plus ( ios 10.2 ) and iPhone X ( ios 11.1.2 ).

I confirmed that UDIDs for test devices was included on the provisitioning file.

I attached the console log.

I really hope air sdk is updated ASAP.

---------------------------

기본 23:12:49.150068 +0900 mobile_installation_proxy (null):5:1:1:1:Beginning installation for file:///var/mobile/Media/PublicStaging/***.ipa/ with options {

    AllowInstallLocalProvisioned = 1;

    IsUserInitiated = 1;

    PackageType = Customer;

}

기본 23:12:49.150959 +0900 mobile_installation_proxy setting operationType to LSOperationTypeInstallApplication from options <private>

기본 23:12:49.151055 +0900 mobile_installation_proxy created clientInstaller for type InstallApplication

기본 23:12:49.152777 +0900 lsd (null):5:1:1:1:Ininstall file:///var/mobile/Media/PublicStaging/***.ipa/ with options {

    AllowInstallLocalProvisioned = 1;

    IsUserInitiated = 1;

    PackageType = Customer;

}

기본 23:12:49.154729 +0900 lsd (null):5:1:1:1:Ininstall file:///var/mobile/Media/PublicStaging/***.ipa/ with options {

    AllowInstallLocalProvisioned = 1;

    IsUserInitiated = 1;

    PackageType = Customer;

}

기본 23:12:49.157240 +0900 installd 0x16f083000 -[MIClientConnection installURL:withOptions:completion:]: Running installation as QOS_CLASS_USER_INITIATED

기본 23:12:49.158550 +0900 installd 0x16eedf000 -[MIClientConnection _doInstallationForURL:withOptions:completion:]: Install of "/var/mobile/Media/PublicStaging/***.ipa" type Customer (LSInstallType = (null)) requested by lsd (pid 89)

기본 23:12:49.225837 +0900 assertiond Request to create termination assertion <BKSTerminationAssertionCreateEvent: 0x104314d80; Identifier: 49-63F778C8-2759-4673-B495-57408703561B; Name: FBSApplicationTerminationAssertion; Target BundleID: ***.***.***; Efficacy: Unconditional> from client <BKClientHandle: 0x104307b60; installd:49; connections: 1>

기본 23:12:49.226898 +0900 assertiond Acquisition success for assertion <private>: <private>

기본 23:12:49.227063 +0900 installd Acquired termination assertion for event <BKSTerminationAssertionCreateEvent: 0x11ff09670; Identifier: 49-63F778C8-2759-4673-B495-57408703561B; Name: FBSApplicationTerminationAssertion; Target BundleID: ***.***.***; Efficacy: Unconditional>

기본 23:12:49.229476 +0900 installd 0x16eedf000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=***.***.***; Version=2.7.8, ShortVersion=2.7.8>

기본 23:12:49.229650 +0900 installd ***.***.***:7:5:1:1:Start : Install (New)

기본 23:12:49.243463 +0900 profiled Provisioning profiles changed

기본 23:12:49.244693 +0900 profiled Updating MIS trust...

기본 23:12:49.245410 +0900 trustd cert[0]: SubjectCommonName =(leaf)[]> 0

기본 23:12:49.245537 +0900 trustd cert[0]: CheckLeafMarkerOid =(leaf)[]> 0

기본 23:12:49.245584 +0900 trustd cert[1]: ValidIntermediates =(leaf)[]> 0

기본 23:12:49.250114 +0900 trustd cert[1]: ValidRoot =(leaf)[]> 0

기본 23:12:49.253485 +0900 trustd cert[1]: ValidIntermediates =(leaf)[]> 0

기본 23:12:49.253579 +0900 trustd cert[1]: ValidIntermediates =(leaf)[]> 0

기본 23:12:49.253628 +0900 trustd cert[0]: IssuerCommonName =(path)[]> 0

기본 23:12:49.253831 +0900 installd [leaf CheckLeafMarkerOid IssuerCommonName SubjectCommonName]

기본 23:12:49.262208 +0900 trustd cert[0]: AnchorTrusted =(leaf)[force]> 0

기본 23:12:49.262284 +0900 trustd cert[0]: NonEmptySubject =(path)[]> 0

기본 23:12:49.350981 +0900 profiled Scheduling check for expired profiles between Wed Apr 18 03:00:00 2018 and Wed Apr 18 05:00:00 2018.

기본 23:12:49.563126 +0900 UserEventAgent Invalidating simple timer <PCSimpleTimer: 0x11ff98d50>

기본 23:12:49.566856 +0900 UserEventAgent Disabling power monitoring for <PCSimpleTimer: 0x11ff98d50> - 2 timers

기본 23:12:49.566929 +0900 UserEventAgent Started simple timer <PCSimpleTimer: 0x121855c50> with fire date [2018-04-17 23:30:08 +0900]

기본 23:12:49.567220 +0900 UserEventAgent <PCSimpleTimer: 0x121855c50> created preventSleepTimer <PCDispatchTimer: 0x11fe7b6b0> and fireTimer <PCDispatchTimer: 0x11fe2ccf0> on queue <OS_dispatch_queue: PCSimpleTimer-timerQ>

기본 23:12:49.567553 +0900 UserEventAgent Enabling power monitoring for <PCSimpleTimer: 0x121855c50> - 3 timers

기본 23:12:49.567826 +0900 UserEventAgent Invalidating timer <PCPersistentTimer: 0x11fe8e4b0>

기본 23:12:49.567903 +0900 UserEventAgent Invalidating simple timer <PCSimpleTimer: 0x11fe991a0>

기본 23:12:49.569130 +0900 UserEventAgent Canceling system wake for simpletimer [2018-04-18 00:06:07 +0900]

기본 23:12:49.569185 +0900 UserEventAgent Request to schedule wake 0 date 2018-04-18 00:06:07 +0900 leeway 0 service identifier BTA-PeriodicConditionMonitor unique identifier <PCSimpleTimer: 0x11fe991a0>

기본 23:12:49.569302 +0900 UserEventAgent <PCPersistentTimer: 0x11fe2ce00> created <PCSimpleTimer: 0x11fe66620>

기본 23:12:49.569357 +0900 UserEventAgent Started simple timer <PCSimpleTimer: 0x11fe66620> with fire date [2018-04-18 00:12:49 +0900]

기본 23:12:49.569491 +0900 UserEventAgent Disabling power monitoring for <PCSimpleTimer: 0x11fe991a0> - 2 timers

기본 23:12:49.569662 +0900 UserEventAgent Cancelling scheduled wake for <private> wake identifier <private>

기본 23:12:49.569838 +0900 UserEventAgent <PCSimpleTimer: 0x11fe66620> created preventSleepTimer <PCDispatchTimer: 0x11fe2fda0> and fireTimer <PCDispatchTimer: 0x11fd28ec0> on queue <OS_dispatch_queue: PCSimpleTimer-timerQ>

기본 23:12:49.570238 +0900 UserEventAgent Enabling power monitoring for <PCSimpleTimer: 0x11fe66620> - 3 timers

기본 23:12:49.570428 +0900 UserEventAgent Wake cancel for '<private>'(<private>) completed for [<private>] (took 0.001 seconds; result code 0)

기본 23:12:49.570632 +0900 UserEventAgent <PCSimpleTimer: 0x11fe66620> Existing wake at (null) re-scheduling to 2018-04-18 00:12:34 +0900 with leeway of 0

기본 23:12:49.570687 +0900 UserEventAgent Request to schedule wake 1 date 2018-04-18 00:12:34 +0900 leeway 0 service identifier BTA-PeriodicConditionMonitor unique identifier <PCSimpleTimer: 0x11fe66620>

기본 23:12:49.570810 +0900 UserEventAgent <PCInterfaceUsabilityMonitor: 0x121867ed0> [WWAN](pdp_ip0): isInterfaceUsable? YES reachable YES linkQuality 100 isNetworkCaptive? NO

기본 23:12:49.570930 +0900 UserEventAgent <PCPersistentTimer: 0x11fe2ce00> calculating _earlyFireDate. powerStateDetectionSupported = YES = (detectionSupported(YES) && (wwanIsUp(YES) || ! internetReachable(YES)))

기본 23:12:49.570980 +0900 UserEventAgent <PCPersistentTimer: 0x11fe2ce00> Device is plugged in, overriding earlyFireProportion to be 1.0

기본 23:12:49.571129 +0900 UserEventAgent <PCPersistentTimer: 0x11fe2ce00> Calculated minimum fire date [2018-04-18 00:12:49 +0900] (100%) with fire date [2018-04-18 00:12:49 +0900], start date [2018-04-17 23:12:49 +0900], minimum early fire proportion 0.45, power state detection supported: yes, in high power state: yes

기본 23:12:49.571178 +0900 UserEventAgent Scheduling a wake for date <private> leeway 0 wake identifier <private>

기본 23:12:49.571839 +0900 UserEventAgent Wake schedule for '<private>'(<private>) completed for [<private>] (took 0.001 seconds; result code 0)

기본 23:12:49.726012 +0900 locationd {"msg":"CLWifiPositioningSystemLogic::apply", "event":"elapsed", "begin_mach":742212317005, "end_mach":742212351911, "elapsed_s":"0.001454417", "event":"Motion::CoarseMovement", "now_s":"545667169.723533988"}

기본 23:12:49.733559 +0900 CommCenter #I Updating link quality metric from kPoor to kGood: new link quality

기본 23:12:50.801692 +0900 SpringBoard {"msg":"CLGyroBiasEstimatorClientRemote::registerWithGyroBiasEstimatorPrivate", "event":"activity", "isBuildingGYTT":0, "client":"0x1d4437800", "info":"0x101a4f690"}

기본 23:12:50.802819 +0900 SpringBoard {"msg":"Sending cached messages to daemon", "event":"activity"}

기본 23:12:50.802908 +0900 SpringBoard #Warning No cached registration message

기본 23:12:50.804642 +0900 SpringBoard {"msg":"CLGyroBiasEstimatorClientRemote::onWatchdogTimerExpiry", "event":"activity", "client":"0x1d4437800"}

기본 23:12:50.805604 +0900 locationd {"msg":"state transition", "event":"state_transition", "state":"DaemonClient", "id":"0x10787e000", "property":"lifecycle", "old":"0x0", "new":"0x10787e000"}

기본 23:12:50.806919 +0900 locationd {"msg":"state transition", "event":"state_transition", "state":"DaemonClient", "id":"0x10787e000", "property":"clientName", "old":"", "new":"com.apple.springboard"}

기본 23:12:50.810007 +0900 locationd #Warning PAUSE: BATCH: '<private>' (<private>, <private>) started in unexpected state: <private>

기본 23:12:50.812722 +0900 locationd Client com.apple.springboard connected

기본 23:12:50.813550 +0900 locationd Background indicator enabled for <private> is now <private> (was <private>)

기본 23:12:50.814075 +0900 locationd {"msg":"kCLConnectionMessageGyroBiasEstimation", "event":"activity", "this":"0x10787e000", "registrationRequired":0, "registrationReceived":0}

기본 23:12:50.814604 +0900 locationd Client com.apple.springboard (0x10787e000) is subscribing to notification kCLConnectionMessageGyroBiasEstimation

기본 23:12:51.035501 +0900 symptomsd L2 Metrics on ifname en0: rssi: -62 (txFrames/txReTx/txFail) 2/0/0 -> (was/is) 0/0

기본 23:12:51.121964 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122067 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122152 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122264 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122384 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122450 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122512 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122656 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122717 +0900 installd Skipping a profile because of error 0xe8008012.

기본 23:12:51.122785 +0900 installd entitlement '<private>' has value not permitted by provisioning profile '<private>'

기본 23:12:51.122869 +0900 installd entitlement '<private>' has value not permitted by provisioning profile '<private>'

기본 23:12:51.123086 +0900 installd 0x16eedf000 +[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 147: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.knEmoU/extracted/Payload/***.app : 0xe8008016 (The executable was signed with invalid entitlements.)

기본 23:12:51.123135 +0900 installd 0x16eedf000 -[MIInstaller performInstallationWithError:]: Verification stage failed

기본 23:12:51.123422 +0900 assertiond Client relinquished <BKTerminationAssertion: 0x10431b870; "FBSApplicationTerminationAssertion" (Unconditional); 49:(null) id:…57408703561B>

기본 23:12:51.123585 +0900 assertiond -[BKAssertion dealloc] - <0x10431b870>

기본 23:12:51.210111 +0900 installd ***.***.***:7:5:2:0:Fail (End) : Install (New)

기본 23:12:51.210807 +0900 lsd (null):5:1:2:0:MobileInstallation returned nil for file:///var/mobile/Media/PublicStaging/***.ipa/

기본 23:12:51.211170 +0900 mobile_installation_proxy (null):5:1:2:0:_LSInstallationManager install:withError finished

기본 23:12:51.211403 +0900 mobile_installation_proxy Connection invalidated to installationCallbackInterface

기본 23:12:51.211494 +0900 mobile_installation_proxy 0x16b2cb000 handle_install: Installation failed: Error Domain=MIInstallerErrorDomain Code=13 "Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.knEmoU/extracted/Payload/***.app : 0xe8008016 (The executable was signed with invalid entitlements.)" UserInfo={LibMISErrorNumber=-402620394, LegacyErrorString=ApplicationVerificationFailed, SourceFileLine=147, FunctionName=+[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:], NSLocalizedDescription=Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.knEmoU/extracted/Payload/***.app : 0xe8008016 (The executable was signed with invalid entitlements.)}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Apr 17, 2018 Apr 17, 2018

Copy link to clipboard

Copied

Hi,

Thank you for reporting the issue.

Please share any Entitlements you've added to the application XML, so that we may look into the issue.

Meanwhile, you may try steps mentioned in Troubleshooting common Adobe AIR installation errors with iOS applications

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 18, 2018 Apr 18, 2018

Copy link to clipboard

Copied

Using the Air 29.0.0.122 version of the SDK & a certificate for distribution, debugging is not possible with the following error.

[iOS 11.2.6]

Error occurred while installing the application:

Installation Error: APIInternalError.

[iOS 9.3.5]

Error occurred while installing the application:

Installation Error: ApplicationVerificationFailed.

There is no error when packaging as a release build(adhoc, distribution), but it can not be installed on a device.

# I used iFunbox.(iOS 9.3.5 : -402620394, iOS 11.2.6 : -402653081)

# Using a certificate for development and a provisioning file is fine.

However, using version Air 29.0.0.112 has no problem.

# I tested it with a basic Flex mobile project provided by Flash Builder.(no ane, no swc)

-app.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<application xmlns="http://ns.adobe.com/air/application/29.0">

<!-- Adobe AIR Application Descriptor File Template.

Specifies parameters for identifying, installing, and launching AIR applications.

xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/3.5

The last segment of the namespace specifies the version

of the AIR runtime required for this application to run.

minimumPatchLevel - The minimum patch level of the AIR runtime required to run

the application. Optional.

-->

<!-- A universally unique application identifier. Must be unique across all AIR applications.

Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->

<id>com.aaaa.test</id>

<!-- Used as the filename for the application. Required. -->

<filename>TestAir29_122</filename>

<!-- The name that is displayed in the AIR application installer.

May have multiple values for each language. See samples or xsd schema file. Optional. -->

<name>TestAir29_122</name>

<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.

Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.

An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 .

    For iOS Apps, this represents build number. -->

<versionNumber>0.0.0</versionNumber>

      

<!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users.

     For iOS Apps, this represents application version number and format should be (<0-999>.<0-999>.<0-999>).

     If this tag is not specified or the value is not according to the format, then this tag will be ignored

     and <versionNumber> will be used for application version number. Optional. -->

<!-- <versionLabel></versionLabel> -->

<!-- Description, displayed in the AIR application installer.

May have multiple values for each language. See samples or xsd schema file. Optional. -->

<!-- <description></description> -->

<!-- Copyright information. Optional -->

<!-- <copyright></copyright> -->

<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->

<!-- <publisherID></publisherID> -->

<!-- Settings for the application's initial window. Required. -->

<initialWindow>

<!-- The main SWF or HTML file of the application. Required. -->

<!-- Note: In Flash Builder, the SWF reference is set automatically. -->

<content>[This value will be overwritten by Flash Builder in the output app.xml]</content>

<!-- The title of the main window. Optional. -->

<!-- <title></title> -->

<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->

<!-- <systemChrome></systemChrome> -->

<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->

<!-- <transparent></transparent> -->

<!-- Whether the window is initially visible. Optional. Default false. -->

<!-- <visible></visible> -->

<!-- Whether the user can minimize the window. Optional. Default true. -->

<!-- <minimizable></minimizable> -->

<!-- Whether the user can maximize the window. Optional. Default true. -->

<!-- <maximizable></maximizable> -->

<!-- Whether the user can resize the window. Optional. Default true. -->

<!-- <resizable></resizable> -->

<!-- The window's initial width in pixels. Optional. -->

<!-- <width></width> -->

<!-- The window's initial height in pixels. Optional. -->

<!-- <height></height> -->

<!-- The window's initial x position. Optional. -->

<!-- <x></x> -->

<!-- The window's initial y position. Optional. -->

<!-- <y></y> -->

<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->

<!-- <minSize></minSize> -->

<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->

<!-- <maxSize></maxSize> -->

        <!-- The aspect ratio of the app ("portrait" or "landscape" or "any"). Optional. Mobile only. Default is the natural orientation of the device -->

        <!-- <aspectRatio></aspectRatio> -->

        <!-- Whether the app will begin auto-orienting on launch. Optional. Mobile only. Default false -->

        <!-- <autoOrients></autoOrients> -->

        <!-- Whether the app launches in full screen. Optional. Mobile only. Default false -->

        <!-- <fullScreen></fullScreen> -->

        <!-- The render mode for the app (either auto, cpu, gpu, or direct). Optional. Default auto -->

        <!-- <renderMode></renderMode> -->

        <!-- Whether the default direct mode rendering context allocates storage for depth and stencil buffers.  Optional.  Default false. -->

        <!-- <depthAndStencil></depthAndStencil> -->

<!-- Whether or not to pan when a soft keyboard is raised or lowered (either "pan" or "none").  Optional.  Defaults "pan." -->

<!-- <softKeyboardBehavior></softKeyboardBehavior> -->

<!-- Display Resolution for the app (either "standard" or "high"). Optional. Default "standard" -->

<!-- <requestedDisplayResolution></requestedDisplayResolution> -->

<autoOrients>true</autoOrients>

        <fullScreen>false</fullScreen>

        <visible>true</visible>

        <softKeyboardBehavior>none</softKeyboardBehavior>

    </initialWindow>

<!-- We recommend omitting the supportedProfiles element, -->

<!-- which in turn permits your application to be deployed to all -->

<!-- devices supported by AIR. If you wish to restrict deployment -->

<!-- (i.e., to only mobile devices) then add this element and list -->

<!-- only the profiles which your application does support. -->

<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->

<!-- Languages supported by application -->

<!-- Only these languages can be specified -->

<!-- Android Native uses "in" code for indonesean language, wherein native iOS uses "id" as its language code. -->

<!-- We have added support of "id" in "in" code to support iOS with the same tag.-->

<!-- <supportedLanguages>cs da de el en es fi fr in it iw ja ko ms nb nl pl pt ru sv th tr vi zh</supportedLanguages> -->

<!-- The subpath of the standard default installation location to use. Optional. -->

<!-- <installFolder></installFolder> -->

<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->

<!-- <programMenuFolder></programMenuFolder> -->

<!-- The icon the system uses for the application. For at least one resolution,

specify the path to a PNG file included in the AIR package. Optional. -->

<!-- <icon>

<image16x16></image16x16>

<image29x29></image29x29>

<image32x32></image32x32>

<image36x36></image36x36>

<image40x40></image40x40>

<image44x44></image44x44>

<image48x48></image48x48>

<image50x50></image50x50>

<image57x57></image57x57>

<image58x58></image58x58>

<image60x60></image60x60>

<image66x66></image66x66>

<image72x72></image72x72>

<image75x75></image75x75>

<image76x76></image76x76>

<image80x80></image80x80>

<image87x87></image87x87>

<image96x96></image96x96>

<image100x100></image100x100>

<image114x114></image114x114>

<image120x120></image120x120>

<image128x128></image128x128>

<image144x144></image144x144>

<image152x152></image152x152>

        <image167x167></image167x167>

<image180x180></image180x180>

<image192x192></image192x192>

<image512x512></image512x512>

<image732x412></image732x412>

<image1024x1024></image1024x1024>

</icon> -->

<!-- Whether the application handles the update when a user double-clicks an update version

of the AIR file (true), or the default AIR application installer handles the update (false).

Optional. Default false. -->

<!-- <customUpdateUI></customUpdateUI> -->

<!-- Whether the application can be launched when the user clicks a link in a web browser.

Optional. Default false. -->

<!-- <allowBrowserInvocation></allowBrowserInvocation> -->

<!-- Listing of file types for which the application can register. Optional. -->

<!-- <fileTypes> -->

<!-- Defines one file type. Optional. -->

<!-- <fileType> -->

<!-- The name that the system displays for the registered file type. Required. -->

<!-- <name></name> -->

<!-- The extension to register. Required. -->

<!-- <extension></extension> -->

<!-- The description of the file type. Optional. -->

<!-- <description></description> -->

<!-- The MIME content type. -->

<!-- <contentType></contentType> -->

<!-- The icon to display for the file type. Optional. -->

<!-- <icon>

<image16x16></image16x16>

<image32x32></image32x32>

<image48x48></image48x48>

<image128x128></image128x128>

</icon> -->

<!-- </fileType> -->

<!-- </fileTypes> -->

  

    <!-- A preferred GPU type (either "discrete" or "integrated") in case the app utilizes GPU. Desktop only. Optional -->

    <!-- <gpuPreference></gpuPreference> -->

    <!-- iOS specific capabilities -->

<!-- <iPhone> -->

<!-- A list of plist key/value pairs to be added to the application Info.plist -->

<!-- <InfoAdditions>

            <![CDATA[

                <key>UIDeviceFamily</key>

                <array>

                    <string>1</string>

                    <string>2</string>

                </array>

                <key>UIStatusBarStyle</key>

                <string>UIStatusBarStyleBlackOpaque</string>

                <key>UIRequiresPersistentWiFi</key>

                <string>YES</string>

            ]]>

        </InfoAdditions> -->

        <!-- A list of plist key/value pairs to be added to the application Entitlements.plist -->

<!-- <Entitlements>

            <![CDATA[

                <key>keychain-access-groups</key>

                <array>

                    <string></string>

                    <string></string>

                </array>

            ]]>

        </Entitlements> -->

<!-- Display Resolution for the app (either "standard" or "high"). Optional. Default "standard" -->

<!-- <requestedDisplayResolution></requestedDisplayResolution> -->

<!-- Forcing Render Mode CPU for the devices mentioned. Optional  -->

<!-- <forceCPURenderModeForDevices></forceCPURenderModeForDevices> -->

<!-- File containing line separated list of external swf paths. These swfs won't be

packaged inside the application and corresponding stripped swfs will be output in

externalStrippedSwfs folder. -->

<!-- <externalSwfs></externalSwfs> -->

<!-- </iPhone> -->

<!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->

    <!--<android> -->

    <!-- <manifestAdditions>

<![CDATA[

<manifest android:installLocation="auto">

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>

<application android:enabled="true">

<activity android:excludeFromRecents="false">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

            </manifest>

]]>

        </manifestAdditions> -->

   <!-- Color depth for the app (either "32bit" or "16bit"). Optional. Default 16bit before namespace 3.0, 32bit after -->

        <!-- <colorDepth></colorDepth> -->

        <!-- Indicates if the app contains video or not. Necessary for ordering of video planes with graphics plane, especially in Jellybean - if you app does video this must be set to true - valid values are true or false -->

        <!-- <containsVideo></containsVideo> -->

        <!-- This app is also for Android TV (either "true" or "false"). Optional. Default is 'false' -->

        <!-- <supportsAndroidTV></supportsAndroidTV> -->

        <!-- Path to the image used for banner when the app is shown on TV. The banner should be a .png image of size 320*180.-->

        <!-- <banner></banner> -->

        <!-- Indicates if webContents (HTML/CSS/JavaScript) can be inspected in browser. Optional . Default value is 'false' -->

        <!-- <webContentsDebuggingEnabled></webContentsDebuggingEnabled> -->

         <!-- Indicates if disableMediaCodec is enabled or not. Optional . Default value is 'false' -->

        <!-- <disableMediaCodec></disableMediaCodec> -->

    <!-- </android> -->

<!-- End of the schema for adding the android specific tags in AndroidManifest.xml file -->

<android>

        <colorDepth>16bit</colorDepth>

        <manifestAdditions><![CDATA[

<manifest android:installLocation="auto">

   <!--See the Adobe AIR documentation for more information about setting Google Android permissions-->

   <!--Removing the permission android.permission.INTERNET will have the side effect

of preventing you from debugging your application on your device-->

   <uses-permission android:name="android.permission.INTERNET"/>

   <!--<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>-->

   <!--<uses-permission android:name="android.permission.READ_PHONE_STATE"/>-->

   <!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>-->

   <!--The DISABLE_KEYGUARD and WAKE_LOCK permissions should be toggled together

in order to access AIR's SystemIdleMode APIs-->

   <!--<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>-->

   <!--<uses-permission android:name="android.permission.WAKE_LOCK"/>-->

   <!--<uses-permission android:name="android.permission.CAMERA"/>-->

   <!--<uses-permission android:name="android.permission.RECORD_AUDIO"/>-->

   <!--The ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE permissions should be toggled

together in order to use AIR's NetworkInfo APIs-->

   <!--<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>-->

   <!--<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>-->

</manifest>

]]></manifestAdditions>

    </android>

    <iPhone>

        <InfoAdditions><![CDATA[

<key>UIDeviceFamily</key>

<array>

<string>1</string>

<string>2</string>

</array>

]]></InfoAdditions>

        <requestedDisplayResolution>high</requestedDisplayResolution>

    </iPhone>

</application>

Thanks.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Apr 19, 2018 Apr 19, 2018

Copy link to clipboard

Copied

Hi,

For debugging your application you will have to use a developer certificate and a developer provisioning profile.

Thanks.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 19, 2018 Apr 19, 2018

Copy link to clipboard

Copied

Hey @Amrita Gangwan,

The issue people are having is building with the latest 29.0.0.122 with Ad-Hoc, then the .ipa won't install on the devices.

I have signed with Enterprise Distribution .p12 and corresponding provisioning profile with Adobe Flash CC 2017.

I have concluded if you take the .ipa and re-sign it on the command line with a particular tool (with the same certificate and provisioning profile on mac, albeit one from keychain access) it then works.

Another user has said that the .ipa has added 'beta-reports-active' to it's entitlements (and that he hasn't added them to his info.plist. He found this out by trying to re-sign the .ipa manually too (but with different tools that I did).

To confirm, I have no entitlements additions in my info.plist

But this latest AIR SDK is having issues signing on Ad-Hoc.

See posts on Page 2 from:

@matthieuc15994737

@StanGebala

@Evan Gilbert

@James Prankard

@robertoc23790038

@SangHee

@kofl

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Apr 19, 2018 Apr 19, 2018

Copy link to clipboard

Copied

Hi,

Thank you for the valuable information. The issue with the ad-hoc provisioning is known to us and we are working on it.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 27, 2018 Apr 27, 2018

Copy link to clipboard

Copied

On April 19th, 8 days ago, Amrita Gangwani said this about the Ad Hoc local development build problem:  

"Thank you for the valuable information. The issue with the ad-hoc provisioning is known to us and we are working on it."

This Ad hoc issue should be a priority unless you plan to sunset AIR too (I hope I'm wrong). You guys jumped on the non-public APIs really fast, and it was great, but roughly two weeks later and nothing has yet been done on the Ad Hoc issue. If it's as simple as removing the Info.plist.beta-reports-active entry, this should take 10 minutes to fix, plus running your automated regression test suite--if you got one.

What's going on with that? Any news? This is hurting us every bit as much as the non-public APIs issue, just in a different way.

Thanks muchly,

Erik

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advisor ,
Apr 27, 2018 Apr 27, 2018

Copy link to clipboard

Copied

ejthomas95746  wrote

On April 19th, 8 days ago, https://forums.adobe.com/people/Amrita+Gangwani  said this about the Ad Hoc local development build problem:  

"Thank you for the valuable information. The issue with the ad-hoc provisioning is known to us and we are working on it."

-snip-

What's going on with that? Any news? This is hurting us every bit as much as the non-public APIs issue, just in a different way.

Thanks muchly,

Erik

Absolutely. Given how important this is, Adobe's communication has been pretty appalling.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Apr 27, 2018 Apr 27, 2018

Copy link to clipboard

Copied

We are planning to release a beta with a provisioning fix next week.  We were hoping to have this out sooner, but we ran into problems out of our teams immediate control.

There is a workaround that some users have found helpful.  I've outlined the steps below.

As far as backporting the API changes to previous AIR SDK's, that's just not possible for our team.  I wish I had a better answer, but if you need these fixes, you'll need to take the latest 29.0.0.122 version of the SDK (and/or the beta that we'll release next week.)

Workaround Steps:

1) Unzip the application IPA

unzip -q  MyApp.ipa

2) Extract the current entitlements

codesign -d --entitlements :entitlements.plist "Payload/MyApp.app"

3) Delete the unsupported beta-reports-active entitlement

/usr/libexec/PlistBuddy -c "Delete :beta-reports-active" entitlements.plist

4) Remove the current signature

rm -rf "Payload/MyApp.app/_CodeSignature"

5) Sign the app using the updated entitlements. Make sure that your distribution certificate is in your keychain

codesign -f -s "<App ID>" --entitlements entitlements.plist Payload/MyApp.app

6) Zip the re-signed IPA. The new Ad Hoc app that you'll be able to install is MyApp-resigned.ipa

zip -qr MyApp-resigned.ipa Payload/

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Apr 28, 2018 Apr 28, 2018

Copy link to clipboard

Copied

Thanks for this, it worked for me. However I had to change

codesign -f -s "<App ID>" --entitlements entitlements.plist Payload/MyApp.app

to

codesign -f -s "<iPhone Distribution: CERTIFICATE NAME>" --entitlements entitlements.plist Payload/MyApp.app

The exact certificate name can be found in keychain.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 28, 2018 Apr 28, 2018

Copy link to clipboard

Copied

Hey Chris, thanks for letting us know about the upcoming fix for Ad Hoc.

However, the workaround is really not of any practical value in an iterative edit, build, debug cycle using an IDE like IntelliJ or Fb.

Scripting the fix for the beta-reports-active entitlement and re-signing and re-packaging the IPA is but one small part of a larger developer workflow, a workflow we depend on IDEs to take care of.

We already script adt.jar to find device handles and deploy to multiple devices, that's the easy stuff, but getting the IDE to attach to the running app on the device isn't something we've ever needed to tackle. That's why we paid so much for Fb back in the day and IntelliJ IDEA now.

Looking forward to getting your fix. Our apps all use ANEs that do stuff you cannot fake on an emulator, so we have no choice but to develop on devices. But it's working out fine to use Android for now. Just that packaging iOS is so much faster we look forward to getting back to our standard developer workflow.

But Kudos for getting the non-public API fix out there so quickly!

And despite the fact we will always have some issues with AIR, the AIR team really does rock! We just wish they had a bigger budget and could eliminate the need for so many ANEs that do such basic stuff that ought to be in the AIR runtime.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 28, 2018 Apr 28, 2018

Copy link to clipboard

Copied

chris.campbell​ thanks for the update on this, glad to hear a fix will be coming soon.  Any word on if the beta update will also address the newest issue with Apple rejecting AIR apps because of Location usage now?  (requiring NSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription explanations added to info.plist because the app is requesting geolocation data, even if we don't use any location services in our apps).

Not sure if this is another case of something AIR has always done but Apple is cracking down on now, or if this is somehow related to changes in the newest AIR 29.0.0.122 update from this month.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 29, 2018 Apr 29, 2018

Copy link to clipboard

Copied

You can simply add the NSLocationWhenInUseUsageDescription with a dummy string to the app.xml even if t(he app will never use it.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 29, 2018 Apr 29, 2018

Copy link to clipboard

Copied

Yeah that might slip by the reviewers for a little while, until Apple notices that's what devs are doing, and cracks down and wants to know exactly why Adobe requires location permissions in every app generated with AIR.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 29, 2018 Apr 29, 2018

Copy link to clipboard

Copied

The permission issue is also with other tech. On Thursday I updated 3 apps made with Air, Unity and React Native and they all requested some new permission. Sounds more like an issue from Apple than Adobe AIR.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Apr 30, 2018 Apr 30, 2018

Copy link to clipboard

Copied

chris.campbell - one thing that would have helped us would have been a way to download SDK 29.0.112 from an official source. It seems that once a newer SDK is released it's not possible to get the previous one. If the archive page listed all builds, for a lot of people the workaround for in house / ad hoc could have been to revert to 29.0.112.

(we were still using a previous version of 29, so had never downloaded 112 ourselves)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 30, 2018 Apr 30, 2018

Copy link to clipboard

Copied

Hi Chris,

We need beta-reports-active to be true for Testflight.

Should we skip the following step in that case?

/usr/libexec/PlistBuddy -c "Delete :beta-reports-active" entitlements.plist

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 30, 2018 Apr 30, 2018

Copy link to clipboard

Copied

parveenk82525062​ : As far as I know, you can't do it both ways, so you either:

  • Compile for Testflight with the beta-reports-active entitlement set to true. You can't install through ad-hoc distribution doing this.

          - or -

  • Compile for ad-hoc distribution without any Entitlements block at all. You can't upload to iTunes Connect / TestFlight doing this.

So I don't understand what's the issue you're having. What are you trying to achieve that would need both ad-hoc AND beta-reports-active set to true?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 01, 2018 May 01, 2018

Copy link to clipboard

Copied

Thanks OMA2k

The builds ( using AIR 29.0.0.122 ) are working on Testflight without any signature change.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 30, 2018 Apr 30, 2018

Copy link to clipboard

Copied

Hi chris.campbell,

I took the AIR SDK 29.0.0.122 and tried to run the app using AIR simulator, it didn't work I get the following error:

Screen+Shot+2018-04-27+at+12.01.16+PM.png

So I thought of exporting the build and try to install and test on a real device. When I am exporting the build I am getting the below error.

Screen Shot 2018-04-30 at 2.51.55 PM.png

I have the assets.car file however, I couldn't find how do package it within Flash builder. We are completely stuck. Could you please suggest and advise about the above two issues Thanks.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 30, 2018 Apr 30, 2018

Copy link to clipboard

Copied

Not sure about your first error, but with Assets.car, you just drop it into src folder, and Flash builder should grab and package like everything else.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines