Code Monkey home page Code Monkey logo

node-webkit-macappstore's Introduction

Mac AppStore patch for node-webkit

This patch is totally based on this work: https://github.com/rogerwang/chromium.src/pull/17

The original patch by @trevorlinton did not work with 0.11.5, so I fixed it for the newer version until node-webkit (or now nw) official repository gets updated with the proper changes, and buildbot slave is created for Mac AppStore executable.

Background

node-webkit (now nw.js) executable cannot be submitted to Mac AppStore as is and needs to be tweaked is its Chromium part uses QuickTime and various deprecated / private APIs; this patch removes usage of QuickTime libraries and makes a few other changes that allow node-webkit to be submitted to AppStore. The binary from this repository was successfully submitted via Application Loader on Jan 14th, 2015.

It is further discussed here: nwjs/nw.js#936

Important Update

Latest review in January required to drop some more APIs, so I also had to patch the webkit located within node-webkit/src/third_party/WebKit to get it approved by App Store.

How to get node-webkit build accepted on Mac App Store

I figured out that Apple may be rejecting the latest ffmpegsumo.so located under libraries. If you do not use ffmpeg, you may delete the file from node-webkit Framework.framework/Libraries/ffmpegsumo.so and resubmit.

If you do use ffmpeg, however, more investigations are necessary to submit it to App Store—it uses certain QtKit APIs that need removal as well (or rather, a conversion to AVFoundation).

The most recent binary of 0.11.5 was accepted by App Store without ffmpegsumo.so on January 26th 2015 (and once with it, too, earlier).

Submitting to App Store

To ensure successful submittion, you will need to:

  1. Delete the ffmpegsumo.so (if you're not using it, as explained above)
  • Edit the plist to match your app ID
  • Sign the code with the right entitlements that enable sandbox on it see here by @trevorlinton
  • Ensure you do not request the entitlements you do not need (like printing or etc., App Review team checks that)
  • Finally, create a package with productbuild tool on your Mac and upload to App Store for review.

Sandboxing Issues

Once sandboxed, the app may crash with deny forbidden-sandbox-reinit error. To fix that, please see this closed issue for details.

node-webkit-macappstore's People

Contributors

alexeyst avatar

Watchers

James Cloos avatar Felipe Campos Clarke avatar Cristian Orellana Bak avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.