Automatically building and deploying React Native app using Jenkins? - xcode

Packaging my little react native app for Android so that it runs e.g. with Expo on an online App testing service like Appetize or Runthatapp is easy. Up to now I relied on online services to do the building for me, but that is no sustainable solution, that's why I want to do it on my own now.
I understand that for compiling my react native app for iOS I have to somehow run Xcode (on a virtual box). I am able use Android Studio to build my APK files using the GUI, but how do I do that automatically?
I am looking for a way how to automatize that process using Jenkins (either under Ubuntu or under Windows). How would I approach that? My architectural idea looks as follows:
Step 1. Jenkins pulls source code and additional artwork (i.e. logos) from GIT
Step 2. Building and packaging.
2.1 Jenkins initiates the Android Studio and starts building the .apk-file, ideally via command line.
2.2 Jenkins initiates Xcode with some fancy long command line, and out comes
a nice .ipa file.
Step 3. Jenkins takes both files and archives them
Step 4. Deployment
4.1 Jenkins automatically deploys to Google Play Store using their API
4.2 Jenkins automatically deploys to Apple App Store using their API
4.3 Jenkins automatically deploys it to the Amazon App Store.
I am struggling with step 2 and 4, but the priority is the automatic building (step 2). Any help is appreciated, even links to tutorials. What I am after is an explanation on who to steer Android Studio and Xcode by command line.
Resources
How to run apk file online?
What is the (file) format of iOS/iPhone apps?
Deploy to Google Play Store via API
Automatic app deployment to Amazon store
https://stackoverflow.com/questions/57107024/is-there-any-official-way-or-api-to-get-app-reviews-for-ios-apps
Deploy/Publish Android app made with React Native
Unable to build APK file on Jenkins (react native)

Related

React Native newbie

I want to build a game with React Native. I am doing my testing locally on a personal Android device using the Expo app but ideally would love for the app to be cross platform. I do want to release it to a public store or have it be available for folks to play in some format.
Is it OK if I am using Visual Studio Code (on a Windows machine) to build my app, using node.js command line to run expo commands and testing with live reloading on my Expo app? Do I need to have a Mac + XCode if I want to edit iOS code?
What is the typical development process/toolset used?
React Native IS cross-platform, building the apps for production on different platforms, however, requires a different procedure. What makes it cross platform is that you write the source codes including all of the components (Well most of them) one time, and it automatically generates the native codes for Android and IOS.
There's no typical toolset for writing code, you can use any code editor you prefer (I use Sublime for example), but you should have the needed requirements listed in the getting started page in the official official docs including node.js.
Expo helps in testing the app on both android and ios without the need of a Mac (it has some other cool features too!). So if you want to release to apple store, you'll definitely need a mac (or a virtual machine running MacOS like VMWare)
In order to generate the release apk for android: Android Release APK
and for IOS: IOS

How to automate adding a framework to "Embedded Binaries"

We're building a Unity game for a client that has provided us with an iOS framework. The framework is required to be added as an Embedded Binary. This is simple to do manually, however, we are using Jenkins to automatically make our builds.
Note: this is an example image I found on Google.
Is there a way to automate this through a script be it with XCode, Unity, or 3rd party tools?

How to add fast lane tools in VSTS for Xamarin iOS and Android deployment

I want to automate the release for my xamarin iOS and android apps into the stores. I was wondering, if I can use fast lane tools via VSTS to do it.
Right now I directly add the playstore step in VSTS to deploy the android app into playstore. But, I want to make use of snapshot,snap grab, spaceship, supply and various other fastlane tools. Is it possible? If yes can anyone provide steps of how to do it? I tried searching the marketplace in vsts but the fastlane tools are not available.
Thanks.
FYI, VSTS released extensions to release iOS app on App Store or test flights.
Extension
Microsoft Visual Studio Team Services (VSTS) and Team Foundation
Server (TFS) use fastlane in their Apple App Store extension.
Getting Started
Once you have created or retrieved credentials for
your App Store account, then perform the following steps to automate
releasing updates from a VSTS build or release definition:
Install the App Store extension from the VSTS Marketplace
Go to your VSTS or TFS project, click on the Build tab, and create a new build
definition (the "+" icon) that is hooked up to your project's appropriate
source repo
Click Add build step... and select the
necessary tasks to generate your release assets (e.g. Gulp, Cordova
Build)
Click Add build step... and select App Store Release from the
Deploy category
Configure the App Store Release task with the desired
authentication method, the generated IPA file path, and the desired
release track.
Now when you build, your app will automatically be
published to iTunes Connect!
Fastlane Docs

How to deploy a Mono console app on Mac?

I wrote a C# console app using a new Console Project in Xamarin Studio. Now, how do I deploy it without requiring other users to manually install Mono on their machines? Ideally, I'd like to just distribute a binary executable (not using the Mac App Store).
You should use the mkbundle tool to include all dependencies within your binary. Scroll down to "Bundles" in the below link.
http://www.mono-project.com/Guide:Running_Mono_Applications

Adding PhoneGap onto Xcode Project Without Using XCode

I was running Windows 7 desktop only. My next project is about a social network app created from my fellow programmer. Check out his XCode project at GitHUB repository right here.
He asked me to convert this iOS compatibile into an Android compatible app so that his created app can now run on Android.
I discovered PhoneGap Build, an online app converter that requires to copy the URL of a GitHub repository and in order to make the conversion successful, I have to implement some kind of PhoneGap engine (Cordova.jar, HTML5 [index.html], and a simple Javascript).
It's preferred to do this in Xcode, but Xcode requires Mac OS X. Is there another way, if it's possible, to add a PhoneGap engine without Xcode?
Here's the reason why I have to update and added the PhoneGap without using XCode since I'm running on Windows 7 before taking a second attempt to convert it using PhoneGap Build. Here's the picture:
PhoneGap allows a developer to build a native application using HTML5 - essentially, the web application is packaged into a native application container that simply renders a webview then loads the index.html from the web app into that webview and passes control to the web app.
There is no conversion of a native iOS application into an Android application.
You do not need Xcode to package PhoneGap apps using PhoneGap Build - all you need is the web content for your app. When you initiate the build process, the Build service packages your web app into native apps for Android, BlackBerry, iOS, webOS, Windows Phone.
You can learn a lot about PhoneGap in my book PhoneGap Essentials - www.phonegapessentials.com.

Resources