How to upload android Apk file to fabric using jenkins - jenkins

I built an Android project within Jenkins using Gradle. After a successful build a signed apk file is created. Now I want to upload this signed apk file to fabric with Jenkins.
Any ideas ?

sorry for late answer but search for fabric beta's jenkins plugin you can simply arrange that sort of upload in post-build actions

Related

How to Generate Gradlew on to Jenkins?

How to generate gradlew file to Jenkins Android Project? My project is not Android Native. My project is Flutter.
I try to create CD with Jenkins and I got some errors.
this is my pipeline code (JenkinsFile)
stage('Build Release APK') {
sh "ls ./android"
sh "./android/gradlew clean assembleRelease"
}
ls output is,(There is not gradlew file)
ls ./android
app
build.gradle
gradle
gradle.properties
key.properties
settings.gradle
This is an error I got
./android/gradlew clean assembleRelease
/Users/donperera/.jenkins/workspace/demo#tmp/durable-b0592b49/script.sh: line 1: ./android/gradlew: No such file or directory
Is there any way to build apk/aap with Jenkins?
Is it possible to use this plugin? but I already added this one. But not in this my script. https://guides.gradle.org/executing-gradle-builds-on-jenkins/
gradlew or gradlew.bat is an executable of Gradle that can be used to execute gradle commands.
gradlew or gradlew.bat uses gradle/wrapper/gradle-wrapper.jar file for execution.
So there are 3 files in play:
gradlew for mac and linux
gradlew.bat for windows
gradle/wrapper/gradle-wrapper.jar
The thing here is, these files already exists when you create your flutter project. But these files are ignored by .gitignore of the project by default. so these files won't be available in your CI/CD server.
METHOD 1 [RECOMMENDED]
You don't need them to build your project when it is a flutter project. You need flutter SDK to be installed. You can use flutter SDK to build your project. Use following command for release build [you might need to set flutter SDK for your Jenkins server]:
flutter build apk --release
It will run assembleRelease internally and will generate your APK file.
METHOD 2 [NOT RECOMMENDED]
If you want to do it your way then you can add those 3 files to version control by removing their references from .gitignore file and push it to your repository. Then you'll have those file in your Jenkins workspace. You'll have to grant execution permissions to gradlew if you are on mac or linux which can be done by following command.
chmod +x ./gradlew
then you can use following command to build your app:
./gradlew clean assembleRelease
NOTICE: Method 2 is not recommended because when you run flutter commands, it sets some properties to gradle from pubspec.yaml file like version name, version code. So if you made changes to pubspec.yaml file and haven't run flutter command after that, then running gradlew directly won't include those changes. In this case, your apk might built with older version or might not even built as it reads version info from local.properties file which is auto-modified by flutter commands and it is excluded by default from version control. So, you'll also have to add local.properties file by removing its reference from .gitignore file which is very very dirty because it has location reference of android SDK and your server might not have android SDK on that location. Again you need to tackle that. so don't use this method.
You should not do that "on Jenkins". You should do that in your codebase. Execute the wrapper command (gradle wrapper), add wrapper files to Git, commit and push.

jenkins with iOS

I am new to jenkins and I refer 4-5 links for integration jenkins with my iOS project. Right now I got successfully retrive repo from gitlab and after that pod installation is completed.
Now, as a configure xcode build configuration, it will give me error like -scheme is not available. I tried too many option and I select xcode scheme file as "Pods-projectname".
It will take successfully and at last give me error like You have to provide a value for either the marketing or technical version. Found neither.”
Now, I am confuse to configure jenkins with my project.
So, please some one help me to configure my project with jenkins that how can I build .ipa with jenkins. Right now I have mac mini and run jenkins as a localhost:8080.
Thanks in advance..!!

Building the Facebook 3.x+ SDK on iOS

I just downloaded the Facebook 3.27 SDK from the Facebook's developer account.
In the getting started section (https://developers.facebook.com/docs/ios/getting-started), it mentions "Then build the SDK from source before you compile and run any samples".
It does not mention how to build the source. Is this done through Xcode, or through a shell script? If done through either, there is an error message where the build chokes on building "Bolts" with a "Directory not found".
Any ideas on how I'm supposed to build the SDK?
It does actually mention how to build it:
Then build the SDK from source before you compile and run any samples:
./scripts/build_framework.sh
But I would just download it from the link provided and skip the build step... It's not an 'AND'. It's there if you'd rather download it from github / install it via cocoapods. That step is not needed if you just download the .PKG file

Error in installing plugin for Phonegap 3.1 (iOS)

I am trying to create a new project, following:
$ phonegap create test com.temp testX
$ cd test
$ phonegap build ios
$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
The plugin (device) is successfully downloaded to test/plugins/, but not successfully install to test/platforms/ios/testX/Plugins/. Opening the project in Xcode will show those files are missing. Manually copy and reference them won't completely fix it.
What is the cause of this?
PS: It works if I dont specify the project's name:
//project name will be HelloWorld.xcodeproj
$ phonegap create test
Add the plugin before you build iOS by switching the order of your last 2 commands
Hi "git" is also a node module. Simplest way want i found is.
npm install -g git
This will install git in you node source location as a module.
Restart the machine.
Install phonegap plugin:
C:\Users\user1\yourprojectname>cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git
You will get response as:
Fetching plugin from "https://git-wip-us.apache.org/repos/asf/cordova-plugin-cam
era.git"...
Starting installation of "org.apache.cordova.camera" for android
Preparing android project
org.apache.cordova.camera installed on android.
Hope this will be very helpful. If any issue reply.

Xcode, Git, Jenkins, PhoneGap 1.5.0 Build Error

I have developed an application with phonegap 1.5.0 previously and now we just pushed into git repository. The app was build successfully in xCode and I was able to install the app and run it on the iPad but when we tried to build it from Jenkins, we got this error
/Users/...../Classes/AppDelegate.m:28:
/Users/......./Classes/AppDelegate.h:31:13: fatal error: 'Cordova/CDVViewController.h' file not found
#import <Cordova/CDVViewController.h>
I really don't know why is this happening. Did I not include any file into gitt that causes this problem? or is there any extra steps that I need to take to put the codes into git? Any advice on this is deeply appreciated.
My PhoneGap project is able to build and generates .ipa.
Here's what I have done for my CI integration using Jenkins:
Install Xcode integration plugin for Jenkins (manage Jenkins --> Manage Plugins --> Available --> Xcode integration).
In your Job configuration, click the Add build Step button and choose Xcode.
In Xcode configuration:
3.1. Add Clean before build.
3.2. Add Target of your project (e.g.: SamplePhonegap).
3.3. Add SDK (e.g.: iphoneos6.1).
3.4. Add Configuration as Debug or Release.
3.5. Add Xcode Project Directory which contain .xcodeproj (e.g.: ${WORKSPACE}).
3.6. Build output directory (e.g.: ${WORKSPACE}/build) [Mandatory Step for PhoneGap App].
3.7. Add Build IPA.
3.8. Add Code Signing Identity (e.g.: iPhone Developer: S*** ** (6**)).
3.9. Add Unlock KeyChain.
3.10. Add keyChain Path (e.g.: ${HOME}/Library/Keychains/login.keychain).
3.11. Add Keychain password.
Finally build your app - it will build and generate the .ipa file.
Note:
3.6 step is mandatory because a PhoneGap project has two build paths: one is our project build path and another one is cordova build path. Jenkins tough to find the path default (In native not need to specify, because it has only one build path Jenkins can easily find). So it's mandatory to provide Build output directory path.
What you can do is to try to clone the git repo to your local machine and build from there. If it's ok, it means that you need to check Jenkins setting/configuration.
This by far the best solution i found.Original Answer
Xcode 6.x
add $(OBJROOT)/UninstalledProducts/include to BuildSettings->Header Search Paths
Xcode 7.x
add $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include to BuildSettings->Header Search Paths
1.Double click the and you can add this in.
2.Change $(OBJROOT)/UninstalledProducts/include to $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

Resources