How to publish Appcelerator app to google playstore / Apple store? - titanium

Helo Everyone.
I'm newbie in Appcelerator Titanium and mobile apps development as well, and trying to know on how to publish or distribute my appcelerator apps to google playstore / apple store?
thank you.

Once you create a distribution build you can look up the normal App Store/Play Store documentation on how to publish your app inside the store.
The only think in Titanum you have to do is to create those builds (IPA, APK). You can have a look here
https://wiki.appcelerator.org/display/guides2/Distributing+Android+apps
https://wiki.appcelerator.org/display/guides2/Distributing+iOS+apps
or use the packages for Atom/VS Code
https://marketplace.visualstudio.com/items?itemName=axway.vscode-titanium
https://atom.io/packages/appcelerator-titanium
where you can use the GUI to create those builds.
To create your certificates I recommend looking at the official documentation:
https://developer.android.com/studio/publish/app-signing
https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api
Once you have those keys you can select them in Atom/Vscode and click the distribution buttons.
Of course you can also use the CLI:
https://github.com/m1ga/from_zero_to_app/blob/master/installation.md#the-cli-way
# android to store/file
appc ti build -p android -K /home/user/keyfile.keystore -T dist-playstore
# iOS ipa/device/store: will show you a menu to select the different profiles
appc ti build -p ios --target ?

Related

Impossible to update expo project inside Expo Go after switching to EAS Build

I have the need to run a project from Expo Go without being connected to PC. We are developing an app that require GPS and needs to be tested in open field.
Before EAS became the standard to create projects i used
expo build:android
ad this created not only the apk, but uploaded the project to my account and i was able to start it from Expo Go projects section just like the app was installed on phisical device. That worked also fo iOS and was a great testing feature.
After i moved to EAS Build
eas build -p android --profile preview --clear-cache
my project inside Expo Go does not update anymore and its stucked at sdk 44 even if now i'm working (and creating builds) with sdk 46.
I went through the official documentation many times but i don't get how to make the app start from Expo Go (project sction) as i did before. Maybe i'm missing some configuration.
Thank you all for any kind reply.
Have a good day.
EDIT
I found the solution to this problem and now my builds are working and uploading to Expo Go.
Check out this information: https://github.com/expo/fyi/blob/main/eas-build-archive.md
Basically EAS Updates will not bundle anything inside your .gitignore, in my case it needed specific config files. Did a quick test by taking them off the .gitignore and now it's working. Will move to GitHub SECRETS in the future.
Hope that helps.

React Native, build for iOS

I have an app made with React Native that is already working on for Android.
I'm working on Debian 10.
For Android I build my app-release.aab file with this command:
bash android/gradlew --project-dir android --project-prop MYAPP_UPLOAD_STORE_FILE=my-key.keystore --project-prop MYAPP_UPLOAD_KEY_ALIAS=my-key --project-prop MYAPP_UPLOAD_STORE_PASSWORD=mypassword --project-prop MYAPP_UPLOAD_KEY_PASSWORD=mypassword clean bundleRelease
I've been creating this bundle for like a year with no problems, but now I have a task that is "now we want the iOS version"
What do I need to create this iOS version? I'm pretty lost, I have never created nothing for iOS, I just have this React Native app that works ok on Android.
I've been reading some mediums, youtube videos, and some questions here in Stackoverflow but they talk about that it's possible to create the app for both Android and iOS but I can't find a source of clear information about what I need for.
Do I need a Mac?
How should I create the bundle for iOS?
First, if you want to publish to the iOS app store, you need to buy a paid Apple Developer Program, regardless if you have a Mac or not.
Okay, if you have a Mac there is a good amount of documentation: https://reactnative.dev/docs/next/publishing-to-app-store and more. The below is if you do not have a Mac, or do not want to develop on it.
No Mac
You cannot build macOS apps locally without a Mac.
That being said, you could look at CI/CD, for example, Github Actions or Travis CI, as running macOS on them is possible. If you are already pushing your code to Github, I recommend Github Actions. If you do not want to use CI/CD, you can use Expo. With Expo, you can build your app on their servers, and all you need is a paid Apple Developer Program (no Mac).
With vanilla react-native for local development/builds you will need a Mac as Xcode (free) is required for iOS builds. It's propriety software to macOS. You will also need an Apple Developer account to setup development/distribution certificates for deployments.
You can then use Xcode and the iOS certificates/provisions to generate a bundle for iOS.

How to fix optimazition error publish in play store

my apk is 1.4MB but error is "This APK results in unused code and resources being sent to users. Your app could be smaller if you used the Android App Bundle. By not optimizing your app for device configurations, your app is larger to download and install on users' devices than it needs to be. Larger apps see lower install success rates and take up storage on users' devices."
how to fix this error
It's only a warning, not an error.
For an app that small I wouldn't worry.
It's not something that's made its way into the Ionic ecosystem yet but I heard that if you open up your project in Android Studio and then do the build through there you can create an app bundle.
I'm not totally sure that its fully tested for Ionic so you might have issues with this, but Android have published a full guide:
https://developer.android.com/guide/app-bundle#get_started
This is what they say:
Download Android Studio 3.2 or higher—it's the easiest way
to add dynamic feature modules and build app bundles.
Add support for Dynamic Delivery
by including a base module, organizing code and resources for configuration
APKs, and, optionally, adding dynamic feature modules.
Build an Android App Bundle using Android Studio.
If you're not using the IDE, you can instead build an app bundle from the
command line.
Test your Android App Bundle by using it to generate APKs that
you deploy to a device.
Enroll into app signing by Google Play.
Otherwise, you can't upload your app bundle to the Play Console.
Publish your app bundle to Google Play.

Expo release channels and project folder

I am using Expo’s managed workflow. My app uses google authentication to sign in. During development I was using the Expo client for android and as per the docs I used 'Expo.Google' to achieve google authentication and it worked as intended.
After developing the app, I built a staging version of my app (standalone app) by typing 'expo build:android -t apk --release-channel staging-v1' in my project directory. After the build was finished, I downloaded and installed the apk on my android phone. Only then I realized that I didn’t change 'Expo.Google' to 'GoogleSignIn' which is required for standalone apps.
I can change that in my project files and then publish it to the staging-v1 channel. I think this would make google authentication work in the standalone app but it would also change my project files and then it won’t work in the Expo client. So, do I need to create and maintain two different project folders which would basically be the same except for the google authentication part? In general, how should I manage the channels and the corresponding project files?

Build standalone app from React native projects

How do i create a standalone app for iOS (*.ipa) so that i can distribute it to friends / testers?
Is there a way to do this without paying 99$/annum to Apple?
I tried the solution where you have to create a directory called "Payload", archive it and then rename it to *.ipa. But, this did not work.
Expo has created a great solution to this problem. It's also great for development. They have a huge community on their slack channel. Download the expo app, and you can test on your own device, and send your app to your friends.
https://expo.io/
You could ask your friends to install the Expo App to test it
If you ask your friends to install the Expo app and you keep your Expo XDE open with your host selected as tunnel it should work. But if you switch of you xde the app will not work anymore. This is the only way.
The android apk can still be circulated to your friends without the license but for ios you will need to get the developers certificate and upload your app/get approval and only then can you ask people to test it out.