API call works on Android but not iOS :( Help!

I’m just completing an App that I’ve been working on and testing throughout on Android and everything works fine. I just went to test my App via the Appgyver App on iOS and an API call (10to8 service) it relies on doesn’t work or appear to return anything. The same identical call is fine on Android.

So 2 questions I guess…

  1. Why would it behave differently on iOS than Android? I thought Appgyver handled all cross platform compatibility.

  2. How can I debug the API calls on iOS to see what is happening?

Thanks!

Hey @Richard_Eaton, does this happen in the preview app?

Could you send your app id (https://platform.appgyver.com/builder/applications/<APP ID>/pages/1) so I can try to reproduce this.

Thanks! :slightly_smiling_face:

Hi @Kristian_Gerkman

Yes, I see the same behaviour in both the preview app and the published app in the app store. The ID of the app is 163895 and thanks for your help :+1:

Hi @Kristian_Gerkman

Do you have any updates on this for me please?

+1 Same issue even in my app

the other way for my App. The rest API call works on iOS and webapp but not Android…

@Kristian_Gerkman could you let me have an update please?

As above, it also seems that a few other people are having a similar issue too.

Hi! Sorry for the long response times :confused: I went and had a look at your app but could not find the place with the non-functioning API call. I tried on the page scratchpad but that API call would not work even when tested from Composer (under top navigation Data > 10to8_slot > test > run test). Please let me know where to look for the correct API call (and check that it’s working in the Composer Data configurator!)

Hi @Mevi

The screen with the issue is called “book session”. What this screen does is make an API call from “10to8” (an online booking system) to get available slots which are then shown. This works fine on Android but not on iOS as nothing is shown. I’d previously raised an issue ref the API call in the composer data configurator as that had issues with CORS so couldn’t automatically set the schema. Setting the schema manually worked fine though, and as I said, it all works fine on Android.

I’ve recorded this quick video too explaining and showing the issue Dropbox - appgyver-nwch-ios-issue.MP4 - Simplify your life

If you need any more info, please just ask.

Thanks

Richard

Thanks for the thorough video!

I went and had a look on iOS (I added some debug logs to your data flows on the 10to8_slot data logic canvas, take them out when you don’t need them) and debugger says there’s something wrong with the credentials.

I don’t know why for iOS specifically the authentication of the API is not ok, by default I would expect that to happen if you were calling an API without SSL, but that doesn’t seem to be the case here.

I’m going to investigate the matter further to find out if this would be a bug on our side or not, but I don’t know as of yet.

Ok great, and thank you. That sounds like progress that you’re able to at least see the issue. As you say, it seems strange that iOS fails the authentication but Android doesn’t.

… I fixed it for you. And you won’t believe what the fix was.

You were querying https://10to8.com/api/booking/v2/slot. This did not work on iOS, but worked on Android.

I fixed it by querying https://10to8.com/api/booking/v2/slot/, as directed by 10to8’s documentation, and it just magically started to work :thinking: I have seriously no clue, but, um, at least your problem is now solved? :sweat_smile:

2 Likes

Amazing, thank you!!!

The strange thing is that I’m sure I’d tried that previously (certainly a trailing slash somewhere!) as I’d read that may be a difference between browsers. I’d also tried changing the case of “token” and “Token” as that is apparently another gotcha.

Anyway, all sorted and working on both iOS and Android now so thanks so much again :+1:

1 Like