question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

AppStore review rejected because of 2.5.2 and 3.3.2

See original GitHub issue

Goals

Our most recent appstore app review was rejected because of 2.5.2 and 3.3.2

Your app, extension, or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App Review approval, which is not in compliance with App Store Review Guideline 2.5.2 and section 3.3.2 of the Apple Developer Program License Agreement. This code, combined with a remote resource, can facilitate significant changes to your app’s behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes. This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior and/or call SPI, based on the contents of the downloaded script. Even if the remote resource is not intentionally malicious, it could easily be hijacked via a Man In The Middle (MiTM) attack, which can pose a serious security vulnerability to users of your app.

Our application is built with ReactNative, and only the realm calls the above method on the native side. (RCTUtils is also called, but it shouldn’t be the reason, because there are many applications that use ReactNative and deliver to AppStore).

Is it possible to optimize the realm SDK and remove the above method call?

Version of Realm and Tooling

  • Realm JS SDK Version: 2.14.2
  • React Native: 0.53.3
  • Client OS & Version: iOS
  • Which debugger for React Native: None

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:3
  • Comments:9 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
nsyujiancommented, Aug 17, 2018

@kneth 2018-08-17 17 08 15 The file system_configuration.cpp in the above image calls dlopen(), dlsym()

This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations()

This is the method that is prohibited from being called in the apple reply.

1reaction
LeoLeBrascommented, Aug 16, 2018

Does the problem also occur in version 2.13.x of realm-js ? (I plan to make a submission to Apple soon 😊)

Read more comments on GitHub >

github_iconTop Results From Across the Web

Guideline 2.5.2 - Performance - So… | Apple Developer Forums
Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program...
Read more >
reject by app store because of App Store Review Guideline 2.5.2
Your app, extension, or linked framework appears to contain code designed explicitly with the capability to change your app's behavior or ...
Read more >
Fixing Section 2.5.2 - Saagar Jha
Apps that include explicit content are forbidden on the App Store, for example, but drawing apps are not rejected because they allow the...
Read more >
Apple cracking down on developers who use SDKs ... - 9to5Mac
... which is not in compliance with section 3.3.2 of the Apple Developer Program License Agreement and App Store Review Guideline 2.5.2.
Read more >
Apple Begins Rejecting Apps With 'Hot Code Push' Feature
But that's changing now. ... 2 of the Apple Developer Program License Agreement and App Store Review Guideline 2.5.2. This code, combined with...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found