@Eugene a few of my contacts have tried dynamic provisioning with iOS and failed. The provisioning bin file works fine on Android but not on iOS. It appears not to present them with their own WiFi network before the step of presenting them with the AP of the ESP.
Is your provisioning template the same as the one used for Android or do you have a slightly different one?
Actually on iOS dynamic provisioning starts with selecting the AP of the device. And we can’t do this within the app (like on Android) so we guide user to go to the phone’s Wi-Fi settings and connect to a Wi-Fi named “Your app name”. When we detect that phone’s connected Wi-Fi changed, we present user a second step - enter the details of the Wi-Fi network to send to the device…
@Eugene perhaps I was misleading them a little because of the way it’s done with Android but they have tried every conceivable way.
If my firmware uses an AP name of Costas and they select an app name in My Apps of Eugene is that a problem i.e. do I need to ensure they call the My App Costas?
In Android it doesn’t matter what the names are as long as you select the AP of the ESP but obviously it makes sense to be consistent in the firmware and the App.
The actual AP name in the ESP is PeaceFairApp and I have lots of iOS screenshots from the “beta testers” showing this on their WiFi settings page.
As long as when they first set up My Apps they use a name of “PeaceFairApp” and select it at the appropriate time they will be taken to the next stage of entering their WiFi router details (SSID and PWD), right?
With this last part once they have clicked on PeaceFairApp do they manually close WiFi settings or will it close automatically and give them the next Blynk provisioning screen?
It won’t close automatically WiFi settings.
But we do a little trick here: although Blynk app is in the background at this moment, we still check if the phone’s connected Wi-Fi changes. At the moment we detect desired WiFi change, we throw push notification - usually it displays on phone’s top and when user clicks it - the Blynk app is brought back to front.
BTW, regarding AP name restrictions - we will be removing this on iOS, user will be able to select any WiFi network, same as on Android.
Eugene I’m trying out dynamic provisioning on IOS and getting all sort of weird issues I can’t seem to work out.
I have latest IOS app running. Couple of the issues described below:
My code is and setup is:
#define PRODUCT_WIFI_SSID "plantwemos"
I also create an app called “plantwemos”
I also create My App called “plantwemos”
Hardware: Wemos ESP8266 D1 mini
Question 1/Issue:
What I’d like to understand is that do any of these names for AP, app, MyApp matter i.e. do they need to have same names or subsets ?
Question 2/Issue:
When I click on “go to settings” it drops me into the “ALLOW BLYNK ACCESS PAGE” in IOS settings. I need to then manually move up the SETTINGS heirachy to Wifi. Is this a known issue ?
Question/Issue 3:
Then when I select the wifi e.g. “Plantdemo” I then correctly get returned back to the app via the notification popup.
However I cannot select any wifi access point … only one is populated. Is there no way for me to select others ? e.g. sometimes it picks a 5Ghz Wifi AP which my ESP cannot support.
Question/Issue 4:
When I select LOG OUT from “My App” and then select "“Create New Account” it simply just logs me back into the account I previously created i.e. does not allow me to create a new account. Is there a way I can create a new Account without having to create a new “My App” ?
Question/Issue 5:
On rare times it does work I receive the screen “Can’t connect Try starting over.”. I select “Close” and screen disappear and I’m in the working app.
Question/Issue 6:
Other times I get the following crash on setup:
Not sure what you mean. After getting back to the app you should enter network name (ssid) and password which you want to pass to the device. It is a text input field where you can type whatever you want if the proposed not good for you.
I’ll look into this, but as far as I remember - no, each App Preview inside Blynk app is tied to the one and only imaginary account.
Most of the times, it means that although the provisioning itself went well, the app couldn’t connect to the server to check if the provisioned device went online. It could be, for example, because the internet connection on your iPhone wasn’t established back fast enough (after provisioned device dropped its AP).
BTW we’re working on a slightly improved UI of provisioning which will have a better process/errors explanations.
@Eugene
thanks for taking the time to respond.
my remarks below in mars
Not sure what you mean. After getting back to the app you should enter network name (ssid) and password which you want to pass to the device. It is a text input field where you can type whatever you want if the proposed not good for you.
[mars: ok, I thought it would work like Android app which has a dropdown so you can pick from others if the selected option is not suitable, which is a much better experience for end-user]
I’ll look into this, but as far as I remember - no, each App Preview inside Blynk app is tied to the one and only imaginary account.
[mars: ok this is not clear how it works or how it would work in real life for published apps. I’d like to really understand the full user experience before i PUBLISH, I know there is a document from @pavel but I think it needs more details and need to explain clearly the workflow differences between IOS and Android. my example scenario is:
end user at a rental home links h/w to wifi AP and creates account
end user leaves rental home and a new family arrives. How do I ensure the new family member can now re-create a new account such that the old end-user can no longer access. I assume the process of going through the new CONFIG process will create a totally new AUTH code and therefore the old end-user can no longer access device.]
Agree. Moreover, we understand the importance of provisioning for business apps and eager to make as simple as possible. We’d love to make iOS provisioning process exact the same as on Android - but all the differences are due iOS api limitations, which Apple believes is the right thing to do: apps can’t connect to or even get a list of available networks…
On previous iOS versions we could at least send user right to the system’s Wi-Fi settings page, but unfortunately Apple restricted that and, like you mentioned above, always lands you to the app-specific settings page. Thus, working on the updated provisioning UI, we’ll have nothing left but to instruct user to manually go to system’s Wi-Fi settings.
In Blynk App Preview the login page mimics user registration/login, just for better overall UX preview. App Previews don’t handle accounts management.
Of course, in in real app you have real registration/login happening.