Sign APK in Android Studio 2.1.1 - apk

Under Build, there is no option of "Generate Signed APK". The only options are Make Module and Deploy Module to APP Engine. What should I do?
I don't know what to do.

Related

My xamarin.ios app doesn't create .ipa file

I'm trying to build a xamarin.ios console application and send it to another member of the development team. We have an Apple Developer account, but not an Enterprise account.
I went through all the provisioning steps in "Ad-Hoc Distribution for Xamarin.iOS Apps".
Tried real clean.
I get only:
bin\iphone\Debug...
bin\iphone\Release...
...but no .ipa anywhere within the project folder.
In Project > props > iOS IPA Options I set Build iTunes Package Archive (IPA)
Ensure that you are building your application in Release mode.

Integrate Crashlytics in visual studio?

I am new at VisualStudio.I am using xamarin for both iOS and Android application.
Now, If i want to integrate Crashlytics in my application then what should i do or how should i do?
Suggestions please.
There are two easy and widely use option for xamarin Crashlytics:
Hockey App
Firebase
Also if you need within the premises you can write some code.
You can use Fabric to add Crashlytics to your app.
Drungrin has built a fabulous NuGet package to connect your Xamarin iOS & Android apps to Fabric & Crashlytics (GitHub Link).
Getting it hooked up to your app is a massive hastle because Fabric don't natively support Xamarin however.. (forgive the shameless plug) I have written up a complete guide on implementing it on both platforms, link here. The long and the short of this is:
iOS (you need a mac for this)
Create a new native ios app (through xcode) with the same bundle id as your xamarin app & install it using the fabric mac app.
Forget about the xcode project (you only need to register the bundle id), add api key from sample to xamarin info.plist
add fabric & crashlytics nugets (follow github docs)
build your xamarin app for release & then archive for publishing. Open the fabric mac app and you will have your build in archives. Dysms can be automated to upload but for now you can upload them manually
Android
Create a new native Android app (using android studio), Make sure build & version numbers are the same as your xamarin app. Let the fabric plugin build & connect the sample to fabric. (once again the app need the same name)
Copy the fabric api key from sample to xam app manifest (edit the xml).
Give the android app internet permissions (if yours somehow doesnt)
Copy the crashlytics.build.properties file (found $ProjectFolder -> app -> build -> intermediates -> assets -> debug) into your xamarin app's resources, set build action to AndroidAsset.
Copy the crashlytics build number into string.xml: <string name="com.crashlytics.android.build_id">APP_BUILD_NUMBER</string>
add fabric & crashlytics nugets (follow github docs).
Archive app & publish apk
Drag apk into fabric plugin (android studio).
As of 2022 and Visual Studio 2019 for MacOS, there is now a NuGet package that handles the Firebase Crashlytics API. If you add the Xamarin.Firebase.IOS.Crashlytics package, and your GoogleService-Info.plist into the project, you can then add the updated Initialization code.

Using VSTS to build and deploy ionic app to both android and IOS

I have a ionic v1 app that I am trying to create both an android and ios version of the app using a Visual Studio Team Services build definition. The app builds out for both ios and android. I am now howerver having trouble with the Xcode IOS build of the app.
ionic cordova build ios --release
The above command creates the ios platform along with the xcode project and workspace file.
I then have the following VSTS XCode tasks to try build the ipa file for the ios app.
I have created both the p12 cert and provisioning profile and added them to the project. Both of which pass when running the build definition.
Here is my Xcode build configuration
The build definition fails at this point with the following erros
Code Signing Error: App has conflicting provisioning settings. App is automatically signed for development, but a conflicting code signing identity iPhone Distribution has been manually specified. Set the code signing identity value to "iPhone Developer" in the build settings editor, or switch to manual signing in the project editor.
and
Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.1'
After trying both manual and automatic signing with no joy, I finally got it to work with a few minor tweaks.
When installing the apple certificate, select temporary keychain and supply a password. If you don't use this the build agent will be waiting for user input to type the keychain password causing the build to timeout.
Switch to manual signing.
In the apple certificate install task and the Xcode build task to set the "Certificate Signing Identity" equal to the full name of the cert including the team name in brackets.
In my case, I was able to build, archive and export the ionic iOS App integrating a build.json file in the project structure, at root level:
{
"ios": {
"release": {
"codeSignIdentitiy": "iPhone Distribution: TEAM_NAME (TEAM_ID)",
"developmentTeam":"TEAM_ID",
"provisioningProfile": "UUID",
"packageType": "ad-hoc"
}
}
}
Notice that in my case I wanted to generate and ad-hoc distribution, but you can generate the app for the store, development or enterprise distribution.
Once the project is prepared and built, an exportOptions.plist file is generated in the iOS Cordova project with all the configuration to export the app and generate the IPA file.
Take a look at the cordova documentation about using build.json here: https://cordova.apache.org/docs/en/latest/guide/platforms/ios/
Then, In the Xcode VSTS task, I followed all the recommendations from #psyco :
Manual signing using the full name for the signing identity and the provisioning profile UUID.
Also take into account that for the provisioning profile name, Xcode 9 (the one used by default on VSTS Mac OS Agents at this moment) does not accept Xcode-generated Provisioning Profile (with "XC iOS" in the name), mine was like that and was weird to find the solution, thanks to Cœur
Xcode 9: Provisioning profile is Xcode managed, but signing settings require a manually managed profile
With all those things, finally I was able to do it, and also to send the IPA to App Center using another VSTS task, so the IC cycle was completed.

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

Resources