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.

@ewpatton can you tell me if the previous question is possible?

When the iOS build feature has been merged into the production system (i.e., ai2 and code), you will continue to build your Android app using your existing keystore there. For iOS builds, you will generate a new certificate signing request, upload that to Apple, and then update the corresponding provisioning profiles with the new certificate. Since certificates expire after 1 year anyway this is something you will regularly have to do with Apple. Your users should see no impact.

1 Like

When is it estimated (more or less) that the iOS compiler will be unified or merged with AI2 production systems?

@ewpatton To avoid having to manually copy the AIA sources from the AI2-Android platform to the AI2-iOS platform to can generate their respective compiled objects for Apple, would it be possible to include a compiler-builder link in the AI2-Android platform that would allow generating compiled iOS IPAs (beta)? Whith this link we will can build for iOS whith the same AIa (of course in beta form) from the same site.

Yes, I'm hoping that this will get done this summer. At the moment there are some incompatible changes in the buildserver I need to resolve before we can merge it into our upstream repository.

1 Like