Can't compile after updating to new iOS SDK 2.0

Hi there,

My project was working perfectly until I replaced the Estimote SDK with the new one. I made sure to delete the old headers folder, removed the libEstimoteSDK.a library, added it again and included the SystemConfiguration.framework. The header search paths are still the same (I'm using the same folder structure, but with the new headers folder).

I noticed the new method name changes of connectToBeacon, readBeaconBatteryWithCompletion, writeBeaconProximityUUID, etc. All of those were fixed accordingly.

I'm getting this error at the end of the compilation process:

Undefined symbols for architecture arm64:
"OBJCCLASS$ASIdentifierManager", referenced from:
objc-class-ref in libEstimoteSDK.a(ESTRequestTrack.o)
ld: symbol(s) not found for architecture arm64

I'm compiling against standard architectures (armv7, 7s and 64) to latest iOS 7.1 base SDK, just as before.

Any ideas?

Thank you.

HI Ricardo, I fixed this problem by doing some research :)
First of all, you will need to add the AdSupport.framework into your project as well as in the General Page of your Projects Target, remove the interface stated in the Main Interface section of your Deployment Information. This fixed my issue :) All the best.

Hi Lewis, thanks for sharing that. Yes, indeed I found that later after trying a lot :) Somehow, that detail was missing from Github installation instructions. Hopefully they will include/update that. Cheers!

Hi Lewis,

Have you seen this before?

Hi Ricardo,

That sounds very strange, I couldn't get the project to work without using the AdSupport.framework. Are you making web requests to resources in your app? If so Apple may be requesting an explanation as to what the API is requesting? If not, it may be good to receive a reply from one of the Estimote developers regarding this issue as I haven't as yet uploaded anything to iTunes Connect to verify this. Please keep me updated if you manage to solve this issue :)

Yes, these are very strange:

  1. Previous, without including AdSupport, it wouldn't compile. After adding the framework, I could compile and submit to the app store.

  2. After trying to submit a new version, Apple rejects because of the reason mentioned.

  3. I removed the framework (Estimote 2.0 SDK now compiles without it!), but Apple still rejects when trying to upload the binary or validate the app.

  4. But the most strange: I got my previously accepted bundle, renamed its version number to the new one that I'm trying to upload. Theoretically, Apple should accept. But it doesn't...

No web requests are made by me or my app, only normal URL requests that users define by themselves.

Finally, I removed all references to Estimote SDK. The app can validated and the binary can be accepted.

Afternoon Ricardo,

I found this:

Let me know how you get on :)

Hey Lewis,

Thanks! Yes, I've seen that when I researching about the issue. I did that too.

Doing that doesn't solve the problem, but it lets you change the (new?) IDFA iTunes option when you prepare the binary to be uploaded.

Even if you choose 'yes' for the IDFA option, it still won't let you upload. Now, when I remove all references to Estimote SDK 2.0, it uploads normally.

As I mentioned on my previous answer here, item #4 is really weird - Apple didn't let me upload the exact same bundle I had uploaded before, which already included Estimote SDK 2.0... Something has changed @Apple.

Hmm, as you can see from this link: the 2.0 SDK contains AdSupport whereas without I am still getting the error so it is definitely required: Estimote wouldn't actually know if the app could be uploaded to the store as they haven't tried yet because the app is still on the first version.

The only suggestion is to continue waiting for an SDK update or a reply like I am

To confirm did apple previously accept your app with the 2.0 estimote SDK?

Yes, without AdSupport it doesn't compile (even though I was able to compile afterwards after removing the framework). Yes, Apple did approve a binary with it before. Now it doesn't. Thanks Lewis!

Olá Ricardo,
Are you still working with Estimote Beacon projects?
Where are you from?
Best regards