7

I came across code push framework which allows developers to push OTA updates of mobile application which is built in cordova and react-native without rolling updates on play/apple store for minor fixes.

I believe code push have their SDK for the cordova and react-native and in their SDK they are trying to pull code from repository then do something to make changes in the build without compilation or so. How does it possible to fetch latest changes and reflect them in app without compiling and bulid app again.

Does apple allow this to fetch silently OTA updates of app ?

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
N Sharma
  • 33,489
  • 95
  • 256
  • 444
  • I remember an article reading about this. They accepted apps with this framework. They work because basically, It's a web view that involves no need to build again – Sivajee Battina May 13 '17 at 09:57
  • @SivajeeBattina Didn't they publish an article couple of days to stop OTA – N Sharma May 13 '17 at 09:58
  • Yes. You are right. I'm about to say that. Here is that article. https://9to5mac.com/2017/03/07/apple-cracks-down-on-hot-push-code-sdks/ – Sivajee Battina May 13 '17 at 09:58
  • @SivajeeBattina correct. Apps which are using `react-native` are not based on `web-view` they have feature in their framework to access native feature as well – N Sharma May 13 '17 at 10:00
  • So now the chances are very less. As we all know apple strict on it's privacy policy, It's better to not go in that way. – Sivajee Battina May 13 '17 at 10:01
  • @SivajeeBattina Alright! Do you have any idea how do they pull new changes from repository even native changes and reflect them without compiling and build ? – N Sharma May 13 '17 at 10:05

1 Answers1

4

In short: using React Native with CodePush is ok.

Apple allows update javascript code that executed inside system WebView or JavascriptCore if app doesn't provide unlimited access to native SDK or system functions to this code. React Native uses JavascriptCore and provide limited API to js code so it's ok.

But of course you should avoid change app purpose with OTA.

For more info you can read this and this discussions.

farwayer
  • 3,872
  • 3
  • 21
  • 23
  • 2
    Worth noting that Apple support this as long as the updates are invisible to the user, i.e. there is no confirmation dialog asking the user to accept an update. – ostergaard Jun 10 '17 at 09:22
  • @ostergaard Where can I find Apples guidelines on not being able to notify the user of an update by using a progress bar and/or a message? – Andy Jul 07 '17 at 03:36
  • I have no link but I can confirm. Update notifications or especially confirmation dialog are disallowed. Update spinner or progress bar can be ok. – farwayer Jul 07 '17 at 12:32
  • @Andy It's not mentioned explicitly but would very obviously contravene section 2.4.5.7 of the [review guidelines](https://developer.apple.com/app-store/review/guidelines/): "They must use the Mac App Store to distribute updates; other update mechanisms are not allowed." – ostergaard Jul 08 '17 at 06:36
  • 2
    Mac App Store !== iOS App Store – Rokas Nov 14 '18 at 13:03
  • And these OTA update works with a OTA deploy ? (example using diawi) Thank you – Rémi Lardier Oct 17 '19 at 06:42