Estimote / iOS-Fleet-Management-SDK

Estimote Fleet Management SDK for iOS
https://developer.estimote.com
MIT License
1.18k stars 397 forks source link

App rejection with Estimote SDK #267

Closed Saurman closed 5 years ago

Saurman commented 7 years ago

We are encountering subsequent app rejections with messages like

”Specifically, we found that this app or a framework embedded within it contain obfuscated selectors. These selectors contain names like ‘SDK_v2RmqtE8QRceHjTQwD3v37oOqso61QFlOFHEk:SDK_e5L7s2FNTdu8Ttv1lRdrCWv:' and 'SDK_t0deadLdPKsU8FJPMjmJ:'. We recommend that you use the "nm" tool or the command line tools "strings" or "otool -ov" to find the entities that are causing this rejection. Additionally, you may wish to contact Apple Developer Technical Support for assistance."

I've managed to nail down an issue to Estimote iOS SDK. Please advice

Mycek commented 7 years ago

@Saurman Yes, thank you for reporting that. We were doing the obfuscation to protect our IP. We are already working on the fix, that does not violate Apple App Store 2.3.1 guideline, so expect it soon :)

stevenpalomino commented 7 years ago

Same here. Rejection and was given these if it helps:

SDK_FileOperations, SDK_Utility, SDK_a0TKSvH4RUjEQ7J90tP, SDK_a4lKm1mNc, SDK_a9iKBxoHvXum, SDK_b2gYRGuByfq, SDK_b8IILx1RoC, SDK_c5PI7DJ1b, SDK_d0hMrQVSZRTCKMvW0, SDK_d2nE95twuSVRssldvEdTKBf9l, SDK_e1L90bxS9ZuuI4S3LGfDAI, SDK_e6yMd6NP4IgsiQ6Oj0FoZ, SDK_f4Pw5bTUg1AnHr39At, SDK_f6aWLhAfJMlKDIvJBZ7, SDK_g1OF4hJ, SDK_g2BjOaHXIUCBY3KQU, SDK_g7AwFQUya19c2RTBre3ikiHbSyLEHda, SDK_g7q8uuSKBKrvFQsGoK2PWCD4BXFR8, SDK_h7mBeMQs5EdHHt, SDK_i2FPDw8H5CVx0bJNtnM, SDK_i33V4ejsSbNZrdC6, SDK_i3fZ1DFu, SDK_i5MzQ2AKJrMvgK, SDK_i9njjKOfKLoEMV7CtGAzB, SDK_j0X4SlqCP20u7syzpfzSJ, SDK_j0n8rBtJbxdXMLqAFmuyYGuVX4B, SDK_j2MKFU4wh1RZiR, SDK_j32A4Tx8N2hmjuepYl, SDK_k3ETH0Q8A1Rwk2TEdnEuUuJrY8Puw, SDK_k4MpzZzfT8Rxam, SDK_k4jzA9yXn89MVc4Fkpp8Jb, SDK_l3mWB5Idhqq9imWkRGvB9KqQlLj41xc7, SDK_m68VROCoSPHFVaX4, SDK_m6NzBsNfIweXEKMPNb, SDK_m7YDEXZ5T4xtPIcaD7OdtEL3iQzBB, SDK_o1NTDmWIsMzNs, SDK_o7R1d3uHAJeJK90ZgID7OxW, SDK_p1sn2P3WFfz2JA7FaG2jbxO, SDK_p26c1sle1DgYkbKMjb5, SDK_p5PWnt0IoDVYDD0tpiDviUXwBe16m, SDK_p7HOEGz0TYgKtQsHeRlHdXqDS, SDK_q4GDV2hll5JL4tyYQpCQkowhAp, SDK_q786LFd6cxidgbCBsus5yPzHHoTP, SDK_r11mQCazAFzMVC2xlV5, SDK_s4W5tWuR16h6EHV1cWnqU5VT, SDK_t8pGeJOVC6oSsxUKxK, SDK_u06dUhFySBPfwKG5clprwzWyPHUp, SDK_u1RVjaxYpGIunhVY9LZBi6zs81vb, SDK_u2H2NfdWMqkveC, SDK_w22Lb2EfiYUSI4shzoLPyzYt, SDK_w9tkDePEBjxw, SDK_x3DZ4DjP, SDK_y1pKtF576Ap0UXB8dt0HCi

alexjuda commented 7 years ago

@Saurman, @stevenpalomino while waiting for the fix for SDK 4, you can check out 5.0.0-alpha.2 we just released. It contains a new way we deal with obfuscation - it may resolve this App Store rejection issue.

StriderHND commented 7 years ago

Hello We are having the same issue with the Estimote SDK on the AppStore review, there is a estimated time to deliver the fix? @Mycek @airalex, with SDK 5 there are many changes that can affect the code, In my case I use the SDK for the iBeacon functionality.

@stevenpalomino @Saurman did the SDK 5 Alpha help you with the rejection issue?

Saurman commented 7 years ago

@StriderHND we've just dropped Estimote SDK for now. The only thing we've used it for is flashing beacons with our own configs. As for geofencing we are using Apple's native code so we do not really need estimote code here. User can still flash their beacons using other apps, we provide instructions screen.

hams-takashi-kato commented 7 years ago

Hello, @Mycek . I'm developing an app in Objective-c for iOS devices.

I was similarly rejected by Apple.

Did you solve with iOS SDK 4.25.1 ? Or have not you settled yet?

Apple rejects my app. Apple review team says:

  1. Guideline 2.3.1 - Performance

We discovered that your app contains hidden features.

It would be appropriate to remove all code obfuscation and selector mangling from this app before resubmitting for review. These selectors include 'SDK_v2RmqtE8QRceHjTQwD3v37oOqso61QFlOFHEk:protocolVersion:' and 'SDK_t0deadLdPKsU8FJPMjmJ:'.

The next submission of this app may require a longer review time.

StriderHND commented 7 years ago

Hello @hams-takashi-kato ,

This is not resolve in 4.25.1, they are releasing a new version tomorrow fixing this issue. As their product manager said in the Estimote forums: https://forums.estimote.com/t/status-update-from-estimote-app-store-rejection-issues/7423

We have to wait

matsuklili commented 7 years ago

Hello @Saurman, @StriderHND, @stevenpalomino , @hams-takashi-kato!

The new version has been released just now. https://github.com/Estimote/iOS-SDK/releases/tag/4.25.3

StriderHND commented 7 years ago

Thanks @matsuklili

We are going to update our App right away and check if everything is OK

If something happens I'll let you know.

hams-takashi-kato commented 7 years ago

Thank you for @matsuklili .

I will check it from now. I will report it if there is something.

yo113 commented 5 years ago

Have any body got any solution? i am having the same following issue : We discovered that your app contains obfuscated code, selector mangling, or features meant to subvert the App Review process by changing this app's concept after approval to the App Store.

My app got rejected yestarday i have also used following estimote SDK's.

can any one tell me which sdk having problem

heypiotr commented 5 years ago

@yo113, it's the EstimoteSDK. Solved by updating to 4.25.3 (or later). And since EstimoteIndoorSDK depends on the EstimoteSDK, you'll also need to update it to to 3.0.0-alpha.2.

yo113 commented 5 years ago

When i upgraded it to latest as you suggested apple rejected again saying your app contains ARSession and ARWorldTrackingConfiguration and they suggested to remove this and resubmit app again.This is very frustrating and i am stuck in between these two conditions.

heypiotr commented 5 years ago

Can try using Indoor SDK 2.7.1 (= no ARKit) with Estimote SDK >= 4.25.3 (= fixed obfuscation)?

shymolts commented 5 years ago

Have any body got any solution? i am having the same following issue : We discovered that your app contains obfuscated code, selector mangling, or features meant to subvert the App Review process by changing this app's concept after approval to the App Store.

My app got rejected yestarday i have also used following estimote SDK's.

  • EstimoteBluetoothScanning (0.3.0)
  • EstimoteIndoorSDK (2.7.1):

    • EstimoteSDK (~> 4.16.0)
  • EstimoteProximitySDK (1.2.0):

    • EstimoteBluetoothScanning (~> 0.2)
  • EstimoteSDK (4.16.2)

can any one tell me which sdk having problem

Is this got resolved?

shymolts commented 5 years ago

Can try using Indoor SDK 2.7.1 (= no ARKit) with Estimote SDK >= 4.25.3 (= fixed obfuscation)?

No,app got rejected with Indoor SDK Version 2.7.1 Estimote SDK :4.26.3.

heypiotr commented 5 years ago

@shymolts, you post states EstimoteSDK (4.16.2). You need to update that to at least 4.25.3, where the reason for this "obfuscated code" rejection got fixed.

I'm not sure if CocoaPods would allow you to override the EstimoteSDK version that the EstimoteIndoorSDK technically depends on (~> 4.16.0), so you might need to install the two manually.

shymolts commented 5 years ago

@shymolts, you post states EstimoteSDK (4.16.2). You need to update that to at least 4.25.3, where the reason for this "obfuscated code" rejection got fixed.

I'm not sure if CocoaPods would allow you to override the EstimoteSDK version that the EstimoteIndoorSDK technically depends on (~> 4.16.0), so you might need to install the two manually.

Yes, got fixed after updating Indoor SDK to 3.0.0-alpha.2.