iPad deployment

  1. 5 months ago

    I developed application for iPAD and now I want to deploy it .I tried to uplod it on App store but Apple Store team rejects it beacuse of it is an inhouse app.Also I searched for inhouse app distribution ,I found that we need to create accont for apple developer enterprise program.
    Can any one tell me is there another to deply inhouse iPAD app ? or can we do over the air deployment of iPAD app ?

  2. Jean-Yves P

    Jun 30 Pre-Release Testers, Xojo Pro Europe (France, Besancon)

    for a small amount of ipads, you can use xcode or appleconfigurator to install the app on the ipads manually
    (it seems you will have to reinstall it each week ?)
    or the enterprise program is the way to go.
    for over the air deployment, you will need an MDM partner or program.

  3. Richard G

    Jun 30 Pre-Release Testers, Xojo Pro Atlanta, GA

    How many seats in-house? If a few, could TestFlight handle it? really designed for testing but....

  4. Douglas H

    Jun 30 Pre-Release Testers

    @Poonam K Also I searched for inhouse app distribution ,I found that we need to create accont for apple developer enterprise program.
    Can any one tell me is there another to deply inhouse iPAD app ? or can we do over the air deployment of iPAD app ?

    Over the air deployment has been available since iOS 4 (as I recall the version it got enabled). But it is not as simple as doing a HTTP link to the *.ipa; there are a few hoops you have to jump through to pull it off.

    If you need under 1000 installs and all devices are at least iOS 9 (or so?), then you may find Testflight is the easiest way to go. You only need the email address of each person to authorize. It not only helps with the install or updates, but you can actually disable specific people too (perhaps due to company attrition).

    But if you want to do over the air installs -- what I have done since iOS 4 -- then by far the easiest method is to also have an Enterprise license. With it, you obtain a provisioning profile that can be installed on unlimited devices without having to collect the device UDID to add like ad-hoc profiles. But once installed, you can't disable specific devices -- the profile is good for up to a year.

    Your choices include:

    • Free profile: these are good for only a week, so a poor choice except in limited testing scenarios or during development
    • Regular developer proflie ($99/year): You still need to pre-authorize each device UDID, and I think is limited to 100 devices
    • Enterprise profile ($399/year, I think): Unlimited installs, and no need to pre-authorize each device UDID

    The Enterprise license does have several restrictions as to what is allowed. And applications for it are not automatically approved -- at least the last time I was involved with one it took a few months to obtain approval. Maybe it is different now.

    Anyway, until recently you could install over the air via HTTP but now HTTPS is required for the actual file (although a web page with a link to it can be HTTP). So what some people have done is use Dropbox to host the necessary files, then use a URL shortener to point to the Dropbox location.

    Two of the many hits in a web search just now:

    Setting up iOS Over the Air Download

    Distributing an IPA over the air with dropbox — iOS 10 in five minutes

    Be aware too the app must have the distribution provisioning profile included (ad hoc or enterprise) and be in an *.ipa format. There is another thread discussing doing that with Xojo here

  5. last week

    Aurelian N

    Dec 5 Pre-Release Testers, Xojo Pro

    @Douglas H here

    OK, so due to some issues into the XOJO, xCode or I have no idea why, I cannot build for App Store anymore so I guess I`m for the second version by doing that file manually.

    I did all the steps until I reached to the code sign part when it failed , with the message

    resource fork, Finder information, or similar detritus not allowed

    After some research I discovered this :

    This is a security hardening change that was introduced with iOS 10, macOS Sierra, watchOS 3, and tvOS 10.

    Code signing no longer allows any file in an app bundle to have an extended attribute containing a resource fork or Finder info.

    And after checking the issue of it I found that my local database that is deployed with the app is not allowed anymore and it is locked into quarantine.

    Any ideas on how to deploy the local database to the app ? avoiding this kind of issue ?

    Thanks .

  6. Dave S

    Dec 5 San Diego, California USA

    A TestFlight install will only run for 60 days (unless Apple has changed something lately)

    Aurelian Negrea : sounds like you are talking about a macOS app and not an iPad one????

  7. Aurelian N

    Dec 5 Pre-Release Testers, Xojo Pro

    @Dave S A TestFlight install will only run for 60 days (unless Apple has changed something lately)

    Aurelian Negrea : sounds like you are talking about a macOS app and not an iPad one????

    Nope I`m talking about a iOS one

  8. Jérémie L

    Dec 5 Pre-Release Testers Europe (France)

    This might help

    https://developer.apple.com/library/content/qa/qa1940/_index.html

  9. Aurelian N

    Dec 5 Pre-Release Testers, Xojo Pro

    @Jérémie Leroy This might help

    https://developer.apple.com/library/content/qa/qa1940/_index.html

    Thanks Jérémie, I already fixed that.

  10. Aurelian N

    Dec 5 Pre-Release Testers, Xojo Pro
    Edited last week

    Well as an update on the tentative of having this remotely installed I did all the steps from here then for .ipa creation and signing i had this .

    In the end I ended up with a nice page having all working until the install part begin on the iPad, after downloading and starting to install It throw an error saying that "Unable to Download App" and while looking into the logs I got the following errors from iPad side :

    <Error>: [InstallManifestRequestOperation]: Failed to create placeholder for bundleID: com.test.testApp error: (null)
    <Notice>: com.test.testApp:5:11:1:1:Updating PlaceholderMetadata for com.test.testApp with failure 1 <LSInstallType 1, underlyingError (Error Domain=MIInstallerErrorDomain Code=63 "Application is missing the application-identifier entitlement." UserInfo={LegacyErrorString=ApplicationVerificationFailed, FunctionName=-[MIInstallableBundle _validateApplicationIdentifierForNewBundleSigningInfo:error:], SourceFileLine=807, NSLocalizedDescription=Application is missing the application-identifier entitlement.}), source 17>

    iPad installd(MobileSystemServices)[48] <Notice>: 0x16fe47000 -[MIClientConnection updatePlaceholderMetadataForApp:installType:failureReason:underlyingError:failureSource:completion:]: Update placeholder metadata requested by client installcoordinationd (pid 179) for app com.test.testApp installType = 1 failureReason = 1 underlyingError = Error Domain=MIInstallerErrorDomain Code=63 "Application is missing the application-identifier entitlement." UserInfo={LegacyErrorString=ApplicationVerificationFailed, FunctionName=-[MIInstallableBundle _validateApplicationIdentifierForNewBundleSigningInfo:error:], SourceFileLine=807, NSLocalizedDescription=Application is missing the application-identifier entitlement.} failureSource = 17

    iPad appstored[839] <Error>: [CoordinatorStore]: <IXInitiatingAppInstallCoordinator<0x100e7f030> identifier:app com.test.testApp creator:App Store state:IXAppCoordinationStateErrorOccurred> was canceled with reason: Error Domain=IXUserPresentableErrorDomain Code=1 "This app could not be installed at this time." UserInfo={NSLocalizedDescription=This app could not be installed at this time., NSUnderlyingError=0x100d49ae0 {Error Domain=MIInstallerErrorDomain Code=63 "Application is missing the application-identifier entitlement." UserInfo={LegacyErrorString=ApplicationVerificationFailed, FunctionName=-[MIInstallableBundle _validateApplicationIdentifierForNewBundleSigningInfo:error:], SourceFileLine=807, NSLocalizedDescription=Application is missing the application-identifier entitlement.}}}
    Dec 6 07:49:20 iPad appstored[839] <Error>: !B17:app com.test.testApp,J:2758353940693018800#[<private>]: Fail temporarily for error: <private>

    the bundle ID was replaced for report purposes.

    What I see here that jump was this "Application is missing the application-identifier entitlement." so , do I have to set this on the server side or Xojo should do that automatically ?

    If anybody has any idea about what's happening here and what it should be done it will be great .

    Thanks again.

  11. Aurelian N

    Dec 5 Pre-Release Testers, Xojo Pro

    Done, finally fix it this page helped fixing the issue

    Thanks all

or Sign Up to reply!