About iOS/Android Built versions

In the Android server the Help put about the built Version date:


In the iOS serve we can built Android ans iOS sources app, but in the Help only put the version for the iOS built:

Can you put also the Android version in this iOS server?
Thks

I'm not sure what you are asking. The version number shown under "Use Companion" is always the Android version, and that is true in the iOS test server as well.

I asked about the Built Version (not Companion versions). For example at the current time, we have Feb. 26 2025 v: nb200c in the Built Android APK server and March 7 2025 v.2.73.1-1 in the Built iOS server. But in the iOS server we can also Built as Android platform and here we don't know what is this version for the Android Built APK in the iOS server.

The Android builds go against our production server, so whatever is on ai2.appinventor.mit.edu. Only the iOS builds go to the specific iOS backend right now. Therefore, building an APK file on both ai2 and iosbuildservertest will yield the same result assuming you have the same keystore on both.

What is the function of the "Keystore"? What is the "Keystore" used for built APKs and IPAs?

Both Android and iOS rely on using asymmetric cryptography to digitally sign applications. Asymmetric encryption relies on a private key, known only to the signer, and a public key, which anyone can read (hence the naming)--this is known as a key pair. When you compile an app, your private key is used to generate a digital signature that can be mathematically verified by anyone using the public key portion of the key pair. In fact, the public key gets embedded in the app itself. Android enforces a rule that any existing app can only be upgraded to a new version that is signed by the same key. Apple of course goes through the additional step of signing a certificate that includes the public key and iOS will only allow apps signed by a certificate that itself is signed by Apple. Therefore, if you delete your keystore, or end up using two different keystores (i.e., there will be two different private keys)., the phones will not see the app as coming from the same author because the signatures will not match. See this document, particularly the section on "A Word About Keystores" for more information.

1 Like

According to your explanations, if I export my KeyStore from the Android AI2 server and then import it to the iOS AI2 server, I understand that my app's KeyStore will change my private key on this iOS server. For Android, I will continue to compile and upload the AAB app correctly with the same KeyStore I had before, but what will happen when I compile on Apple and upload my app to the Apple App Store? Will the process fail? Will iPhone users not be able to download the app? Should I change anything in the data that Apple has about my app? My goal is to work with a single server for both Android and iOS since I only have a single AIA source for my app and as mentioned above from you, the Android compiler on the iOS AI2 server is the same as the one on the Android AI2 server. Now I am unnecessarily copying my AIA source from the Android AI2 server to the iOS AI2 server in order to continue maintaining the integrity of a single AIA source.