ionic-deploy

So you just finished the latest improvements to your app, and you’re finally ready to push out the latest update for all your users to see. You submit the latest version to the app stores, and then you do the only thing you can…

You wait for the app store approval, for days…or even weeks.

Stop waiting, friends. We have a solution: Ionic Deploy, now in open alpha!

What can you do with Deploy?

Ionic Deploy lets you update your app on demand for any changes that do not require binary modifications, saving you days, or even weeks, of wait time.

You can roll back to a previous version of your app, automatically apply updates, and control every aspect of the upgrade.

Being able to make live changes to an app allows you to work with your designer or other team members to collaborate in real time, empowering you to get immediate feedback while you develop and make changes on the fly.

What’s next

Soon, Ionic Deploy will let you run live A/B tests that can be conducted right on the device and tested by marketers to determine which of your app’s features users prefer. We’ll also be integrating our upcoming Analytics service, to help you track and optimize all the different tests you run.

You’ll have fine-grained control over who gets which specific version of your app. Multiple versions can be deployed to “Channels” defined by specific criteria, to target different users. And with our “Intelligent Deploy” feature, you can safeguard against incompatible binary versions. You’ll be able to set release dates to deploy a version, even when you’re not around!

It’s worth highlighting how incredibly powerful these capabilities are.

It’s a massive advantage that we, as hybrid app developers, are able to leverage to move faster and develop more efficiently. We’re confident you’re going to love this.

Try it now

During the open alpha period, Ionic Deploy will be 100% free to use. Similar to Ionic Push, we will be releasing tiered pricing based on usage in the future, but we’ll continue to offer a free tier, too.

Ionic Deploy supports both iOS and Android devices. Sign up and test out the alpha today, for free.

As always, don’t forget to let us know what you think!

66 Comments

  • Avatar Ran Davidovitz says:

    This is a very good step forward

  • Avatar loic knuchel says:

    Missing deadlines because of Apple approval (12 days now and not live yet…) is really harsh !!!
    I hope the service will be as good as it is promising ! Thank you so much for working on this 🙂

  • Avatar juarezpaf says:

    You guys rock! This is awesome! o/

  • Avatar milhouse van houten says:

    the main question is, how expensive will be this service?
    bear students & single developer in mind, please!

    • Avatar yesimahuman says:

      We are trying to be very sensitive to the diversity of people building apps with Ionic today. We are going to have an educational tier, along with a free tier for all our services. We want to be aligned with the success of your app, such that we only charge and make money if you are also successful. Also, we see our pricing being inline with other common services in this space. Sorry I don’t have more information, we need to see how people use the services first before we come up with a pricing structure that works best for everyone. Thanks for your patience!

    • Avatar Ben Sperry says:

      We just published a post diving deeper into this here: http://blog.ionic.io/why-we-are-building-the-ionic-platform/

  • Avatar Matheus says:

    What are the changes that do not require binary modifications? Plugins? Besides that, you guys are nuts! Keep going! 🙂

  • Avatar Greg Kockott says:

    I’m so flipping excited!

  • Avatar chasd00 says:

    Just got this working last night. I love it

  • Avatar marc says:

    sounds great, but does this comply with the apple app strore requirements 2.7 and 2.8?

    2.7 Apps that download code in any way or form will be rejected
    2.8 Apps that install or launch other executable code will be rejected

    https://developer.apple.com/app-store/review/guidelines/#functionality

    • Avatar Justin Mays says:

      Your correct. I’ve personally verified this with developer relations, its extremely against T+C’s… I am hoping however that ionic have put the time into discussions with Apple and they have made more of an ‘in-road’ than I managed.

    • Avatar Michael says:

      It’s allowed by section 3.3.2 of the Apple Developer Program Agreement:

      3.3.2 Except as set forth in the next paragraph, an Application may not download or install
      executable code. Interpreted code may only be used in an Application if all scripts, code and
      interpreters are packaged in the Application and not downloaded. The only exceptions to the
      foregoing are scripts and code downloaded and run by Apple’s built-in WebKit framework or
      JavascriptCore, provided that such scripts and code do not change the primary purpose of the
      Application by providing features or functionality that are inconsistent with the intended and
      advertised purpose of the Application as submitted to the App Store.”

      http://adcdownload.apple.com/Documentation/License_Agreements__Apple_Developer_Program/Apple_Developer_Program_Agreement_20150608.pdf

      So long as the updates are retrieved through and run by the built-in WebKit or JavascriptCore, as they would be here, and don’t alter the program in significant ways that’d require a re-review, it’s fine. Trigger.io’s provided this ability for a few years now, and Apple hasn’t had any problem with it.

      • Avatar Justin Mays says:

        I’ve spoken directly with developer relations on this, at senior level after asking to be escalated as I believed in what you have put forward. This however is incorrect, I have been told in person and have documentation that says that you are not permitted to do this. When I explained other companies are offering this service, they said that would not be considered when reviewing an app and they can withdraw apps using this technology as they see fit.

        • Avatar Martin Baker says:

          But since there are many apps that do this, it is more likely that Apple will continue to “turn a blind eye”. However it does seem strange that the terms explicitly mention WebKit when that was only introduced in iOS8 and Cordova doesn’t currently use it.

        • Avatar rinogo says:

          Can you please elaborate a bit? Michael quoted the terms which do seem to suggest that this is permitted. Perhaps you can provide the documentation you have access to that states that this is not allowed?

      • Avatar Justin Mays says:

        Also…trying to access that page and getting “This page no longer exists or the Apple ID you signed in with does not have permission to view this page.”. I am signed in as an active developer are you sure you are not viewing out of date T+C’s / guidelines? (https://developer.apple.com/app-store/review/guidelines/).

        I really want this to work as it would be great for my business but I’ve put in the work to try and be thorough by speaking with them directly and I cant see how the guidelines permit this and I have been told personally they don’t – so i’m stuck in terms of moving forward using this kit.

        • Avatar Michael says:

          It’s the latest version of the terms, from June 8th of this month. Try accessing this page first: https://developer.apple.com/terms/ and clicking on Apple Developer Program License Agreement from there. The exception has been in the terms for several years now and is the foundation on which Trigger.io’s Reload, and now Ionic Deploy, are built. If developer relations told you otherwise, I think they misunderstood what you were asking. They may have thought you intended to include your own interpreter rather than use Apple’s provided WebKit or JavascriptCore.

          Trigger.io spoke with Apple before they launched, and since then many developers have deployed thousands of apps with live update functionality. Meteor recently introduced the same, calling it Hot Code Push. See http://info.meteor.com/blog/apple-hot-code-push-mobile

          I’d encourage you to speak with developer relations again and point them to this page, Trigger.io, and Meteor as examples of what you were trying to ask them about previously, and I’m sure they’ll clear up the confusion from earlier.

          • Avatar Justin Mays says:

            Thanks for the info! They can’t have miss-understood as I gave examples of other companies already to them, spent over two hours on the last call with a senior dev / engineer to discuss and had an email back from them stating the request, and the denial. FRUSTRATING! lol.

            I’ll try again!

          • Avatar Michael says:

            Frustrating describes Apple developer relations to a T. They’re wildly inconsistent and seemingly arbitrary at times. I just try to stick to the terms as written and keep my fingers crossed that I’ll get a good reviewer when I submit. Although I haven’t used Reload, or Deploy or Meteor’s Hot Code Push yet, I’ve implemented a simple version of the same for my PhoneGap apps and so far in a year of me doing so with minor live updates pushed out frequently, Apple hasn’t complained about it. I’d prefer to use a nicer implementation like Ionic’s put together to make things easier, but I’m going to hold off until they release pricing.

          • Avatar Badru says:

            Thanks Michael. The simple version of the same you mentioned, i would like to have a clarity on the same.
            Is it using phonegap content sync plugin or a different way?

          • Avatar Michael says:

            Hi Badru,

            I’ve been using my own solution inspired by this:

            http://stackoverflow.com/questions/12865316/phonegap-updating-javascript-and-css-without-submitting-the-app-to-appstore

            I hadn’t heard of the content sync plugin. However, I’ve just come across this, which looks like a more robust version of what I’m doing:

            https://github.com/markmarijnissen/cordova-app-loader

            I think I’m going to give that a try with a test project and see how well it works out. From what I can see so far, the author’s anticipated an edge case I hadn’t identified myself.

          • Avatar rinogo says:

            What did you end up doing?

    • Avatar Karl Bishop says:

      IBM’s MobileFirst Platform has had an advanced version of this “Direct Update” capabilities for many years.

  • Avatar Eric Kerr says:

    What happens if an app is updated to a version that has a Javascript syntax error. Wouldn’t that brick the release since the $ionicDeploy factory wouldn’t be able to execute and communicate to the cordova plugin to run the update/rollback process?

    • Avatar Eric Bobbitt says:

      It’s a possibility at the moment, but there are things we can do to try and prevent this from happening as Deploy matures.

  • Wowwwwww Amazing! 😀

  • “not require binary modifications” This seems to imply that you can only update text files (HTML, JS, CSS). Is that true?

    • Avatar Eric Bobbitt says:

      Correct. You won’t be able to deploy new native plugins, but html/js/css is fine as long as you do not alter the advertised purpose of the application.

      • To be clear though I meant (and forgot to make it clear) images. Can you update an image?

        • Avatar Eric Bobbitt says:

          Yup, you can update images.

          • Avatar Badru says:

            Updating of HTML/CSS/JS/Images/Audio/Video inside /www is acceptable unless it alters the advertised purpose of the application.

            Can you update the original post with some info on this?

            Let’s not make this important info a hidden fact by putting this in comment section.

          • Avatar Petro Gordiievych says:

            How to deal with binary modifications then?

        • Avatar jorisw says:

          Yeah. Would be clearer if you could mention that by binary files, you mean compiled executables. To be able to update assets such as images and even movie files (basically anything in www/) is a major plus (so thanks for that).

  • Avatar Justin Mays says:

    I really hope this has been approved with Apple. I have had several conversations with Apple engineers over the past few weeks and months and have had the idea of HTML,CSS and JS updating without the app store approval process escalated to a senior manager in the developer relations team and have been categorically informed that it is against their Terms and Conditions.

    • Avatar tik27 says:

      IBM Worklight application has been doing this for a couple of years, and apple has not complained. So im pretty sure its ok

      • Avatar Badru says:

        In an ideal world, we all agree that Apple will approve this process.
        But i would like Ionic guys put this in writing that, this approach is OK with Apple.

        I am 99% sure; Ionic guys should have connected with Apple guys offline and got a confirmation before making this blog post public.
        But i still want that 1% doubt to be confirmed by Ionic guys.

        • Avatar Mike C says:

          Not just that Apple will approve it, but Google and Microsoft as well. The only reason I’m looking at hybrid apps with Ionic is the possibility of hot-fixing an app by pushing html, css, javascript, etc without having to go through the app stores. If Ionic can’t assert that this is both approved and supported by the three major mobile platforms then I stop spending time with Ionic and go back to Xamarin and never look back.

          • Avatar yesimahuman says:

            Hey Mike, thanks for the Q. No independent vendor in this space (Xamarin included) will be able to assert that Apple approves of anything, it’s simply out of our hands. We are following the published guidelines, building relationships with those in the industry that are successful with this deploy method, but at the end of the day Apple is exclusively in control of their app store.

            So, it’s really not a question of technology but of Apple’s terms of service.

          • Avatar Mike C says:

            In the case of Xamarin the code is being compiled to a binary IPA file, same as XCode would make. There is no question that Apple doesn’t allow the dynamic updating of a binary file — nobody is disputing that — but they do allow for updating non-binary assets which would include, presumably, the HTML, CSS, Javascript, and image assets in an Ionic/Cordova app… I just don’t understand if this is possible with Ionic without some subscription service piece of alpha code. And even if it were, such dynamic updating seems to be explicitly disallowed by Google’s terms of service for Android (and it’s anyone’s guess what MSFT will allow… I think they will accept anything non-malicious at this point but that could change). Since I need more long-term certainty for my clients I’m going to have to back away from looking so favorably on Ionic since the specific strength I thought it had — dynamic updating without going through the app store — isn’t there after all.

          • Avatar yesimahuman says:

            From a technical standpoint, the live updating *is* there and the way to achieve it is through the web layer. We have one approach that is in alpha today (moving into beta soon, we just were doing some API changes), but there’s no reason you couldn’t build your own if you aren’t interested in using ours.

            Anyways, please use the right tool for what you want to do, I just want to be clear that we we are offering here is a more polished way to use the benefit web-based apps like Ionic have that native apps don’t: instant live updating.

            You could even achieve this in a simple manner with some smart caching and an external JS file with code. Update the remote JS file, store it locally between updates, etc.

            Feel free to email me if you ever want to talk through things: max AT ionic DOT io

          • Avatar rinogo says:

            Thanks for your candid and professional answer, explaining a bit about how to “roll your own” as well as highlighting the benefit of the “paid” solution. Keep up the great work. 🙂

    • Avatar Gibran Castillo says:

      I don’t think Apple will fully accept, may be with restrictions and for certain type of apps

  • Avatar Michael says:

    Some of us really need some idea of the eventual pricing before jumping in with this. Trigger.io’s pricing for a similar feature, while not unreasonable, is completely out of my reach.

  • Query – the docs say it must be done on a device, not the browser, but will it work in the simulator?

  • Avatar Josh Morony says:

    You guys are smashing it lately, great work!

  • Avatar Victor says:

    What will the added value be? Can’t we do this by ourselves with phonegap content sync plugin? I guess it’s only that you provide the servers to manage the updates and a easy-to-use API instead of having to use a low-level plugin?

  • Avatar Derek Carroll says:

    I’m really impressed with this feature 🙂 One question, we have been testing the watch functionality and it seems that an update is picked up even if we haven’t clicked the “Deploy” button on the upload to push it into production. Obviously we need at least one version of the app uploaded to get the ID an API key so this would be a problem.

  • Avatar Derek Carroll says:

    We get the app version number from the config.xml file using the appversion cordova plugin. Is this file allowed to be modified without going through the usual store approval process?

  • Avatar Sean Hill says:

    Where will you want to us to leave feedback / questions about this service?

  • Avatar 朱琳 says:

    I want to know, could I build my own service? For example I have my company own a server, and I want keep my app just can use in my company, could I start my own service just for my company?

  • Avatar Gibran Castillo says:

    When does the ‘open alpha period’ end?

  • Avatar Hugh Hou says:

    Just curious. Is this feature only available hybrid app? Or there is similar service like deploy for native app that build with swift or Java? I want to sell Ionic to my boss but I need to know this amazing feature is only available for hybrid app but NOT native app (and they need to wait forever for each update on iOs as my boss know how painful that is…)

  • Avatar Jimmy Jimmy says:

    plz help me…..hai ….i’m struggle with 2 thing’s one-> how to add user to my app….i build my app running on my mobile but my dashboard page says you don’t have any users yet, Two-> how to add deploy content….like html pages update or upload in my deploy dashboard page..plz help me any one…..

  • Avatar Jimmy Jimmy says:

    reply me ….hai ….i’m struggle with 2 thing’s one-> how to add user to my app….i build my app running on my mobile but my dashboard page says you don’t have any users yet,
    Two-> how to add deploy content….like html pages update or upload in my deploy dashboard page..plz help me any one…..i added chennal’s but how to use it

  • Avatar priya singh says:

    Hi,

    Quite an informative blog about Announcing Ionic Deploy Alpha: Update Your App Without Waiting!
    We also have an interesting blog about Mobile App Development.
    Have a look at http://www.tentronixnz.com/blogs/technology-and-services/mobile-app-design-rules/ , to get a good understanding about how to go about developing mobile app / website.
    http://www.tentronixnz.com/

9 Trackbacks