Toxic Tom
Member
I have hit upon a very serious issue in my iOS deployment workflow with GMS2.
Normally I would test the app on an iPhone using the play button (built using the VM), then when I'm happy everything is working as expected, I would clean the build folder (using the brush icon), switch to the YYC compiler, then click Build > Create Executable. The Xcode deployment wizard then signs the app and sends it to Apple for review (using App Store Connect).
Last time I pushed an update for my iOS app, I followed that routine, and once the new version was accepted by Apple, I downloaded it from the App Store to test it on my device. I was very disappointed to see that the app crashed immediately due to a dodgy build:
The build is also crashing for all of my users. I would like to reiterate that there are no errors in the code, as the app is running just fine on the test device when testing in GMS2. There was clearly some problem during compilation that has broken the build.
Once I realised the problem I pushed a fix immediately, which is still waiting for review from Apple. In the meantime my iOS users are completely unable to use the app! This is clearly unacceptable for my users.
So my question is - how can I avoid this pitfall? When building for Android I always first build a .apk file, then immediately build a .aab file so that I can test the .apk on my device, and upload the .aab to Google Play. This seems to work well and I have never experienced an issue with the .aab build that was not present in the .apk build, so I have much more confidence in pushing updates for Android. Is there any way to use a similar workflow when publishing for iOS? That is, some way to test the actual application package that is being sent to App Store Connect. It seems to me that this feature should exist.
Thanks for any suggestions you guys may have!
Normally I would test the app on an iPhone using the play button (built using the VM), then when I'm happy everything is working as expected, I would clean the build folder (using the brush icon), switch to the YYC compiler, then click Build > Create Executable. The Xcode deployment wizard then signs the app and sends it to Apple for review (using App Store Connect).
Last time I pushed an update for my iOS app, I followed that routine, and once the new version was accepted by Apple, I downloaded it from the App Store to test it on my device. I was very disappointed to see that the app crashed immediately due to a dodgy build:
The build is also crashing for all of my users. I would like to reiterate that there are no errors in the code, as the app is running just fine on the test device when testing in GMS2. There was clearly some problem during compilation that has broken the build.
Once I realised the problem I pushed a fix immediately, which is still waiting for review from Apple. In the meantime my iOS users are completely unable to use the app! This is clearly unacceptable for my users.
So my question is - how can I avoid this pitfall? When building for Android I always first build a .apk file, then immediately build a .aab file so that I can test the .apk on my device, and upload the .aab to Google Play. This seems to work well and I have never experienced an issue with the .aab build that was not present in the .apk build, so I have much more confidence in pushing updates for Android. Is there any way to use a similar workflow when publishing for iOS? That is, some way to test the actual application package that is being sent to App Store Connect. It seems to me that this feature should exist.
Thanks for any suggestions you guys may have!