codemagic-ci-cd / codemagic-docs Goto Github PK
View Code? Open in Web Editor NEWHere you’ll find some essential information for setting up CI/CD for your mobile apps with Codemagic.
Home Page: https://docs.codemagic.io
License: MIT License
Here you’ll find some essential information for setting up CI/CD for your mobile apps with Codemagic.
Home Page: https://docs.codemagic.io
License: MIT License
As requested by a customer, we should add to the docs what command to build an .apk or .aab
.aab
./gradlew bundleRelease
.apk
./gradlew assembleRelease
Currently https://docs.codemagic.io/rest-api/builds/ get build status section does not have information about what kind of statuses are available.
I have a flutter project which is fetching a package from a private repo on Github such as:
flutter_common:
git:
url: [email protected]:hoge/flutter-common.git
ref: master
When I run flutter pub get
on Github Actions which I set SSH key setting of the repository, It works.
But running on Codemagic, it fails. Even if I set this setting. I set the SSH private key of generating on my computer in an environment variable in your Codemagic configuration file.
How can I run flutter pub get
with a private repository on Codemagic? Anyone has a solution?
We may not require all the permissions that editor role provides when creating a service account in order to publish to Google Play Store. Ref: https://docs.codemagic.io/knowledge-base/google-services-authentication/#creating-a-service-account
Let's investigate it and try to reduce the amount of permissions we recommend giving if possible
Information about SSO should be added to the signup subsection in the getting started section.
SSO we support:
Business customers can add SSO for $50/month.
Enterprise plan includes SSO.
https://docs.codemagic.io/yaml-code-signing/signing-android/#signing-android-apps-using-gradle
This suggests that it's ok to put your keystore credentials in the build.gradle for local builds. You should either add the credentials on your local machine or use a properties file that is not checked into source control.
we added the variable PROJECT_BUILD_NUMBER to keep track of builds across all workflows, will probably be nice to implement it in some way under our versioning documentation as well
Add description, code template, and link to sample project to Flutter codemagic.yaml guide
Automatic signing works only for 2 workflow out of 5. The rest gives error such as == Building for iOS ==
xcode-project use-profiles
Configure code signing settings
Searching for files matching /Users/builder/Library/MobileDevice/Provisioning Profiles/.mobileprovision
Searching for files matching /Users/builder/Library/MobileDevice/Provisioning Profiles/.provisionprofile
List available code signing certificates in keychain /Users/builder/Library/codemagic-cli-tools/keychains/24-12-21_g5b4xu8j.keychain-db
Searching for files matching /Users/builder/clone/ios/**/*.xcodeproj
Completed configuring code signing settings
Did not find matching provisioning profiles for code signing!
Generated options for exporting the project
flutter build ipa --release --export-options-plist /Users/builder/export_options.plist --flavor meculium -t lib/main-meculium.dart --build-name=1.0.2 --build-number=3
Archiving com.example.com...
Automatically signing iOS for device deployment using specified development team in Xcode project: Q2N9BPD86Q
Running pod install... 7.0s
Running Xcode build...
Xcode archive done. 8.3s
Failed to build iOS app
Error output from Xcode build:
↳
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
{ platform:iOS Simulator, id:BDBAD2FC-16AD-45F2-8BA2-1B6A744CAFB6, OS:14.5, name:iPad (8th generation) }
{ platform:iOS Simulator, id:03A783D6-D52A-4FFF-B04F-6A692F09A948, OS:15.0, name:iPad (9th generation) }
{ platform:iOS Simulator, id:5E28BE25-E070-45EB-AB47-12D439953F74, OS:15.2, name:iPad (9th generation) }
{ platform:iOS Simulator, id:AF693EA2-3CEE-406E-9FD3-2AEF7C7AE4E0, OS:14.5, name:iPad Air (4th generation) }
{ platform:iOS Simulator, id:F98892BC-3737-4027-AFD2-BBDF1C17ECBF, OS:15.0, name:iPad Air (4th generation) }
{ platform:iOS Simulator, id:BF716E5F-06B8-44B6-AF79-A20FEE5CD454, OS:15.2, name:iPad Air (4th generation) }
{ platform:iOS Simulator, id:A9EBBABF-6741-4F1E-9139-E5713AF89F7E, OS:14.5, name:iPad Pro (9.7-inch) }
{ platform:iOS Simulator, id:E8CE8886-0B2C-43FF-8EEE-603A8A1685C8, OS:15.0, name:iPad Pro (9.7-inch) }
{ platform:iOS Simulator, id:5CEE762F-674E-41AD-94DF-48B807120673, OS:15.2, name:iPad Pro (9.7-inch) }
{ platform:iOS Simulator, id:CE50B412-8301-4439-86D9-218E9B520C64, OS:14.5, name:iPad Pro (11-inch) (2nd generation) }
{ platform:iOS Simulator, id:503ED4B8-9480-401C-99CC-F37B5E9DEDEE, OS:14.5, name:iPad Pro (11-inch) (3rd generation) }
{ platform:iOS Simulator, id:9FD9A6C7-96D1-427D-BBCA-DDE9DFA903BA, OS:15.0, name:iPad Pro (11-inch) (3rd generation) }
{ platform:iOS Simulator, id:13E7B931-0FA1-4DF7-A3B3-35641D91EAF0, OS:15.2, name:iPad Pro (11-inch) (3rd generation) }
{ platform:iOS Simulator, id:560D986F-3412-47DA-B037-69BBD7873E2B, OS:14.5, name:iPad Pro (12.9-inch) (4th generation) }
{ platform:iOS Simulator, id:99B14BF4-7966-4427-ACD1-34BFE4D26A01, OS:14.5, name:iPad Pro (12.9-inch) (5th generation) }
{ platform:iOS Simulator, id:EF9AE2FD-212D-4D6C-AF22-73D7491B8B7F, OS:15.0, name:iPad Pro (12.9-inch) (5th generation) }
{ platform:iOS Simulator, id:915A71A8-21B4-43E0-B8A7-54D3C19D6CCC, OS:15.2, name:iPad Pro (12.9-inch) (5th generation) }
{ platform:iOS Simulator, id:9E2823A4-64EA-4D60-A7EF-B401D4EE9D47, OS:15.0, name:iPad mini (6th generation) }
{ platform:iOS Simulator, id:062BC467-73D4-4667-A238-2207CDE338C1, OS:15.2, name:iPad mini (6th generation) }
{ platform:iOS Simulator, id:ED635705-38B8-41E4-977A-009F1893C7C8, OS:14.5, name:iPhone 8 }
{ platform:iOS Simulator, id:7C5473C2-9C4E-47E5-8282-442FDF8EB347, OS:15.0, name:iPhone 8 }
{ platform:iOS Simulator, id:557184DB-BC86-4D96-B073-EE865DFAFF8C, OS:15.2, name:iPhone 8 }
{ platform:iOS Simulator, id:6689C1EF-3619-4DE3-AF9F-4A0BAB1FD532, OS:14.5, name:iPhone 8 Plus }
{ platform:iOS Simulator, id:A634BCFD-FC7A-470C-889A-62808EDCE7B5, OS:15.0, name:iPhone 8 Plus }
{ platform:iOS Simulator, id:1328BA99-16C6-420C-AE3A-19B0C2BB0624, OS:15.2, name:iPhone 8 Plus }
{ platform:iOS Simulator, id:A8F9CFAD-11FF-46A2-B957-11CB50A189EE, OS:14.5, name:iPhone 11 }
{ platform:iOS Simulator, id:9392FD28-3E15-4CD2-B4D1-BD5B48E6238D, OS:15.0, name:iPhone 11 }
{ platform:iOS Simulator, id:A160C8D6-C529-4B7A-BB48-313FA2985D79, OS:15.2, name:iPhone 11 }
{ platform:iOS Simulator, id:1F17BDC6-F7BA-4D6C-AED3-19992BE39743, OS:14.5, name:iPhone 11 Pro }
{ platform:iOS Simulator, id:1228C53F-AD8F-494F-A7C3-4D53005062DF, OS:15.0, name:iPhone 11 Pro }
{ platform:iOS Simulator, id:829BD982-3245-4167-A2FD-1B632EBD5508, OS:15.2, name:iPhone 11 Pro }
{ platform:iOS Simulator, id:86ABCECA-0FF3-4244-925A-CEA93D003D6A, OS:14.5, name:iPhone 11 Pro Max }
{ platform:iOS Simulator, id:C47A5DA4-03E4-415C-9B28-CFE17AD81A4F, OS:15.0, name:iPhone 11 Pro Max }
{ platform:iOS Simulator, id:B325B296-9152-4C08-B195-6EE994D2F828, OS:15.2, name:iPhone 11 Pro Max }
{ platform:iOS Simulator, id:839F3C4C-B9BC-4F54-BF0F-84CE9BDF79E4, OS:14.5, name:iPhone 12 }
{ platform:iOS Simulator, id:243CD93E-F060-4413-936A-E1C717A78DBE, OS:15.0, name:iPhone 12 }
{ platform:iOS Simulator, id:4A9059CF-E08D-44B2-AAD7-D65A7BBEF166, OS:15.2, name:iPhone 12 }
{ platform:iOS Simulator, id:4E0DDFA4-6C79-4774-9616-20514A2A8714, OS:14.5, name:iPhone 12 Pro }
{ platform:iOS Simulator, id:D6C83C0B-6EF8-4866-B532-F4CF7ED69C50, OS:15.0, name:iPhone 12 Pro }
{ platform:iOS Simulator, id:D56DB4E9-00BB-461F-B67A-EE346087BB9F, OS:15.2, name:iPhone 12 Pro }
{ platform:iOS Simulator, id:EE34ECEA-7277-410B-90B2-23DEC7C06077, OS:14.5, name:iPhone 12 Pro Max }
{ platform:iOS Simulator, id:64FC4CC4-95DA-48FE-9980-8AB26CEE9892, OS:15.0, name:iPhone 12 Pro Max }
{ platform:iOS Simulator, id:D0F51A68-F863-40CD-80FD-E02290E66CFC, OS:15.2, name:iPhone 12 Pro Max }
{ platform:iOS Simulator, id:DEF97C06-7FB2-4895-9B5D-11CA40EB3213, OS:14.5, name:iPhone 12 mini }
{ platform:iOS Simulator, id:E2866178-464C-4D5C-A13D-3597F07DD133, OS:15.0, name:iPhone 12 mini }
{ platform:iOS Simulator, id:55880680-3683-47FC-958C-6631530A3721, OS:15.2, name:iPhone 12 mini }
{ platform:iOS Simulator, id:EF87D420-E8D1-4B12-B85C-4BBA52FBD220, OS:15.0, name:iPhone 13 }
{ platform:iOS Simulator, id:4535E403-5294-4602-BFD4-B1C957296A36, OS:15.2, name:iPhone 13 }
{ platform:iOS Simulator, id:AC52617F-729B-4308-8CDB-FD850720B274, OS:15.0, name:iPhone 13 Pro }
{ platform:iOS Simulator, id:DF3FDAAB-5131-45A6-A5AC-701786499EFF, OS:15.2, name:iPhone 13 Pro }
{ platform:iOS Simulator, id:25315873-BCF7-4159-B6E1-5BD7A2533650, OS:15.0, name:iPhone 13 Pro Max }
{ platform:iOS Simulator, id:E6286BC6-2669-4301-BC80-EC5EF5492B91, OS:15.2, name:iPhone 13 Pro Max }
{ platform:iOS Simulator, id:2D48F1AA-93AC-48DA-99E7-1B1D44ED5E66, OS:15.0, name:iPhone 13 mini }
{ platform:iOS Simulator, id:3DE7AA51-BDF2-409A-997E-A58DBFD669C9, OS:15.2, name:iPhone 13 mini }
{ platform:iOS Simulator, id:EA386A2D-32C2-4593-B2B9-2182F366C195, OS:14.5, name:iPhone SE (2nd generation) }
{ platform:iOS Simulator, id:B47CBB9A-B743-4983-AE42-D576BFB99930, OS:15.0, name:iPhone SE (2nd generation) }
{ platform:iOS Simulator, id:8915C15C-81AF-4B5F-BA78-2FC47CE77614, OS:15.2, name:iPhone SE (2nd generation) }
{ platform:iOS Simulator, id:14C619EC-2882-497C-A2A9-6130E2D2BF8C, OS:14.5, name:iPod touch (7th generation) }
{ platform:iOS Simulator, id:4F9DD40E-EB0B-4C05-876A-8E1FFC9BAEF8, OS:15.0, name:iPod touch (7th generation) }
{ platform:iOS Simulator, id:B3EFCA68-DC2C-4B85-BBCD-13153CE2ECCE, OS:15.2, name:iPod touch (7th generation) }
** ARCHIVE FAILED **
Xcode's output:
↳
note: Using new build system
note: Planning
note: Build preparation complete
note: Building targets in dependency order
error: No profiles for 'com.example.com' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.example.com'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'Runner' from project 'Runner')
Encountered error while archiving for device.
Build failed :|
Failed to build for iOS
This originally came from a user that wanted to use private packages in their React Native Detox tests.
For future reference before finding a home in the docs (for a React Native Project), after you’ve set up your private GitHub npm package:
GITHUB_TOKEN
and set its value to the encrypted Personal access token..npmrc
file with the following contents (where @owner is your github username)registry=https://registry.npmjs.org/
@owner:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
Source: Github private package with CI/CD and @nevercode-kevin
users can't find information about all possible status values
I have done all setups for publishing to app store connect, the app is uploaded to test flight, it is not distributed on test flight and app store.
I also got the app on email.
Issue => it does not submitted for test flight testers, maybe it is not supported, but it is also not submitted to app store for review.
Webhooks should reference to triggering section for yaml file and Build triggers for Workflow Editor (developers know about webhook to setup automatic builds but don't search for trigger word)
We need to explicitly state whether publishing to custom tracks on Google Play is possible. Can someone test it and update docs?
Users have had issues with moving repositories from personal GitHub account to organisation account.
e.g. https://codemagicio.slack.com/archives/CEKE2KZ37/p1634195217042100
Hey guys!
I’ve set up a private repository on Codemagic. I then transferred the repository to Organization, added the Codemagic app to Organization, and configured it. However, the transferred repository does not show up in the shared apps section. Instead, the repository before the transfer is shown. I assume this is because the previous information has not been updated. What should I do?
I’ll share the app I set up before the transfer.
https://codemagic.io/app/60f6f0440c5097715793bfbe/workflow/60f6f0440c5097715793bfbd/settings
would be great if we can reproduce and document this case in docs.
Customers have been asking about how the resulting .apk from flutter build apk is named and how to rename it.
Similar for iOS
problem: customers have had issues with uploading deobfuscation symbols to Firebase Crashlytics
here is an example that @VeArnold and user came up with that worked according to user:
echo "Find build artifacts"
dsymPath=$(find ~/build.xcarchive -name "*.dSYM.zip" | head -1)
if [[ -z ${dsymPath} ]]
then
echo "No debug symbols were found, skip publishing to Firebase Crashlytics"
else
echo "Publishing debug symbols from $dsymPath to Firebase Crashlytics"
ls -d -- ios/Pods/*
$FCI_BUILD_DIR/ios/Pods/Crashlytics/iOS/Crashlytics.framework/upload-symbols -gsp ios/Runner/GoogleService-Info.plist -p ios $dsymPath
fi
Based on community feedback here, let's use one group for the signing credentials.
Our Android emulator on build machines is not documented, but it should be a Pixel 2.
Verify the emulator version on build machines and then document it on machine specs pages:
https://docs.codemagic.io/specs/versions/
https://docs.codemagic.io/specs/versions2/
We should include pictures how to find In Google Play Console, navigate to Settings > API access. and what kind of permissions are required to access it
https://docs.codemagic.io/testing/ios-provisioning/
Say that if you are not using teams this has to be done manually and link to apple docs
The links on this page aren't to the sample projects on the Codemagic Github account.
https://docs.codemagic.io/integrations/browserstack-integration/
Searching Creating the App Store Connect API key
, you'll see we have duplicated in the following places:
signing-ios.md
ios-code-signing.md
build-versioning.md
It's a useful section to drop in docs, but as we all know as developers, don't repeat yourself.
Let's extract this duplication into some sort of common code.
https://docs.codemagic.io/publishing-yaml/publish-release-notes/
first paragraph leaves the impression that having .txt in repo is enough to publish release notes to Google Play and App Store Connect. I am not sure whether we require .json format in order to account for locale or we assign default locale. Looks like it is true for Google Play i.e. if .txt is present then en-US locale is used, but not for App Store Connect?
Let's use Testflight instead of App Store Connect to avoid confusion, since IIRC from discussions with @nevercode-kevin and @artemii-yanushevskyi we do not update App Store listing release notes "What's new" section, but only the Testflight part regarding "what's new" so testers know what to test. I realise App Store Connect is correct term, but in this case I fear it creates false assumption. In reality we only support TestFlight and not App Store.
In general I think we could do a better job with this section of docs.
Add common Google Play publishing errors that occur to the Knowledge Base section of the documentation.
It would be helpful to add some guide to publish to Huawei App Gallery to our knowledge base. Fastlane has this quite readily available and creating a POC or referencing how it is possible with Fastlane could be helpful to people.
Dominik Roszkowski shared this in Codemagic slack. Let's reproduce and add to knowledge base:
Just wanted to share that with fastlane’s plugin I was able to upload aab to Huawei AppGallery Connect. The only thing you need to do is to:
fastlane huawei
or bundle install && bundle exec fastlane huawei
. After that the uploaded app and draft release were waiting for me in the AppGallery Connect.Fastfile
lane :huawei do
huawei_appgallery_connect(
client_id: ENV["HUAWEI_CLIENT_ID"],
client_secret: ENV["HUAWEI_SECRET"],
app_id: "YOUR_ID_123465",
apk_path: "./build/app/outputs/bundle/prodRelease/app-prod-release.aab",
# Optional, Parameter beyond this are optional
is_aab: true,
submit_for_review: false,
)
end
codemagic.yaml
- |
# Upload to Huawei AppGallery Connect
bundle install
bundle exe
If person uses 1 SSH key to get private git submodules for example then everything works as expected, but when multiple keys are used then they get added to the SSH agent, but for git operations. In this particular case that I had and we have had before.
Flutter pub get uses the first key that was added to the agent and therefore will fail the build with the error that no such repository exists.
Possible solutions include swapping the order in which the keys get added to SSH agent, but I would like to investigate it a bit and update docs. One workaround is potentially explicitly add the key to use before the flutter pub get command.
echo "${DART_SCHEMA_VALIDATION_SSH_KEY}" > /tmp/ssh_key
chmod 600 /tmp/ssh_key
eval `ssh-agent -s`
ssh-add /tmp/ssh_key
import 'package:flutter/material.dart';
class Cart_products extends StatefulWidget {
@OverRide
_Cart_productsState createState() => _Cart_productsState();
}
class _Cart_productsState extends State<Cart_products> {
var Products_on_cart = [
{
"name": "Blazer",
"picture":"images/products/blazer1.png",
"prise":50,
"size":"M",
"color":"Black",
"quantity":1,
},
{
"name": "Pink Dress",
"picture":"images/products/dress1.png",
"prise":85,
"size":"M",
"color":"pink",
"quantity":1,
},
];
@OverRide
Widget build(BuildContext context) {
return new ListView.builder(
itemCount: 2,
itemBuilder: (context, index)
{
return Singal_cart_product(
cart_prod_name: Products_on_cart[index]["name"],
cart_prod_picture: Products_on_cart[index]["picture"],
cart_prod_prise: Products_on_cart[index]["prise"],
cart_prod_color: Products_on_cart[index]["color"],
cart_prod_size: Products_on_cart[index]["size"],
cart_prod_qty: Products_on_cart[index]["quantity"],
);
});
}
}
class Singal_cart_product extends StatelessWidget {
final cart_prod_name;
final cart_prod_picture;
final cart_prod_prise;
final cart_prod_size;
final cart_prod_color;
final cart_prod_qty;
Singal_cart_product({
this.cart_prod_name,
this.cart_prod_picture,
this.cart_prod_prise,
this.cart_prod_size,
this.cart_prod_color,
this.cart_prod_qty,
}
);
@OverRide
Widget build(BuildContext context) {
return Card(
child: ListTile(
//Leading Section//
leading: new Image.asset(
cart_prod_picture,
width:80.0,height:80.0
),
//title Section//
title:new Text(cart_prod_name),
//subtitle Section//
subtitle: new Column(
children: [
//Row Inside The Column //
new Row(
children: [
Padding(padding: const EdgeInsets.all(0.0),
child: new Text("Size:"),
),
Padding(padding: const EdgeInsets.all(0.0),
child: new Text(cart_prod_size, style: TextStyle(color: Colors.pinkAccent),),
),
new Padding(padding: const EdgeInsets.fromLTRB(16.0, 4.0, 4.0, 0.0),
child: new Text("Color:"),
),
Padding(padding: const EdgeInsets.all(1.0),
child: new Text(cart_prod_color, style: TextStyle(color:Colors.pinkAccent),),
),
],
),
//this section is product prise//
new Container(
alignment: Alignment.topLeft,
child: new Text("\$$cart_prod_prise",style: TextStyle(fontSize:17.0,
fontWeight: FontWeight.bold,
color: Colors.redAccent,
),
),
),
],
),
trailing: new Column(
children:<Widget>[
IconButton(icon: Icon(Icons.arrow_drop_up), onPressed: (){}),
IconButton(icon: Icon(Icons.arrow_drop_down),onPressed: (){},)
]
)
),
);
}
}
add details in iOS publishing and iOS code signing that when publishing you should use IOS_APP_STORE type and link to CLi docs for details
We are using Hugo to generate our docs from markdown.
For some reason, the yaml
code inserts are putting large spaces in lines after vertical pipes |
. For example: https://github.com/codemagic-ci-cd/codemagic-docs/blob/master/content/getting-started/building-an-ionic-app.md#android-ionic-capacitor-workflow-example
How can we fix this?
If CodeMagic fails due to code-signing issues, it's probably because the Flutter iOS folder was originally created with an older version of Flutter, and then never re-created from scratch (while Flutter continued to upgrade).
To fix the issue - and assuming Flavorizr package is used - execute the following steps:
After running step 4, the main-{{env}} files will be wiped-out - and will need to be restored, so you must back them up first (or simply discard the changes to these files via Git after running flavorizr).
Users have been having trouble with using fastlane match issues include for example that macOS uses default keychain, which is password protected and users should use their keychain in code signing. This is one example, but would be nice to collect more @dante8300
Quite a common issue for code signing looks like:
altool[xxx:xxx] *** Error: Unable to validate archive '/Users/builder/ipas/xxx'.
altool[xxx:xxx] *** Error: code -22020 (Unable to validate your application. We are unable to create an authentication session.)
Problem seems more related to the connection with their apple account. User should have to set App Store Connect with an App Specific Password instead of their usual Apple password.
To do so, they should go to your apple id page, down to Security, and then App Specific Password > Generate a password
Running Flutter integration tests from yaml fail because the build doesn't wait for the emulator to be launched.
Adding the adb wait-for-device
command fixes the issue.
- name: Launch emulator
script: |
flutter emulators --launch emulator
adb wait-for-device
The same command can be documented for other project types too.
Hi there,
I was recently following your tutorials about deployment to the Google Play store.
I noticed that in the section "Setting up a service account in Google Play Console" in the codemagic-docs/content/publishing/publishing-to-google-play.md tutorial, the Google Play Console have updated their process.
From step 4 is different. I have attached photos below to show the process now. They no longer have the "Role dropdown".
Instead, this can be found in step 2 after completing the details.
It then takes you to an optional 3rd step of granting users access to this service account.
After which you can download the json file.
I am quite new to the GitHub contribution world, but if you would like, I could try to update and make a pull request on your repo to include a new updated tutorial?
Thank you!
Jimmy Wilson
Hi there!
Firstly, I'd like to thank you all for your hard work at Codemagic making our CI lives so much easier!
Secondly, I'd like to kindly request some more documentation on what exactly the CERTIFICATE_PRIVATE_KEY
is in your YAML example for getting started with React Native for iOS. There aren't any other references to this variable on the page, and I'm struggling to work out what I need to upload to get the workflow to succeed.
Best wishes from the University of Southampton!
EDIT: Details about CERTIFICATE_PRIVATE_KEY
can be found here: https://docs.codemagic.io/yaml-code-signing/signing-ios/
One user reported that this script failed:
- name: Install fastlane-plugin-browserstack
script: |
gem install bundler
sudo gem install fastlane-plugin-browserstack --user-install
Does not seem to work, getting this error:
Could not find action, lane or variable 'upload_to_browserstack_app_live'
Let's try to validate and document it. He says solution was to do this
- name: Install fastlane-plugin-browserstack
script: |
cd ios
bundle add fastlane-plugin-browserstack
ref: https://codemagicio.slack.com/archives/CEKE2KZ37/p1629143385271800
Update documentation to show how to publish android apps in draft status
Feedback from one of our users. He forgot he needed to upload first build manually to Google Play when setting up a new app. This would be a great docs improvement. 🙂
Hi Chris - I eventually got it to work. Your docs could call out how to deal with the Google Play Tracks more precisely. I did not fully understand all that (internal vs open vs closed testing) and I manually uploading to the internal track when I should have to the Alpha track. Maybe it's explained, but there are so many levers and switches that a step-by-step document for morons would be really helpful.
After following the steps for using a custom key in order to access private git dependencies:
#!/usr/bin/env sh
echo "${CUSTOM_KEY_NAME}" > /tmp/ssh_key
chmod 600 /tmp/ssh_key
eval `ssh-agent -s`
ssh-add /tmp/ssh_key
This still causes the build to fail during the "Install Dependencies" step. The key is added successfully to the ssh-agent, but during the "Install Dependencies" step, it seems to be using a different shell session and does not have access to the ssh-agent and thus ssh key added in the Post-Clone script.
I tested this by trying to clone the private git repository in the Post-Clone script, which worked. But I'm unable to run code during the "Install Dependencies" step to debug further.
The only work around is to set the raw private key in an environment variable ending in _SSH_KEY, without base64 encoding it. This does the trick, but it's not ideal.
It should also be added in the docs that if you want to use the features of having environment variables ending with _SSH_KEY being automatically added to the ssh-agent throughout the entire build, they can't be base64 encoded.
Currently in the post-processing section when we get this error :"Did not find build matching uploaded version yet, it might be still processing. Waiting to try again...", it does not give any hint about what it is. And the docs also do not provide any info about it. Maybe updating the docs and linking it in the logs would be a good idea.
Originally a suggestion from @mikhail-tokarev
It would be nice to provide some docs page or guide about this error:
The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.4.99
I can see 3 cases
One example from our user:
It seems the fix is to create a podfile but I can't find any documentation on this. There was mention Codemagic was going to do a blog post or something on this. Is this available?
The variable names in the C# script do not match the variables names we advise users to create for Android code signing.
https://docs.codemagic.io/flutter-publishing/publishing-to-google-play/
I am new to Flutter and have a paid Google Play developer account so now I have two consoles: Google Play Console and the other GCP console. I am not sure if they are connected. S.O. answers were not clear on how to get this credentials json I need to have CodeMagic do the CI CD thing for my Flutter app here: https://codemagic.io/app/61496398b1c014cc2890f906/workflow/61496398b1c014cc2890f905/settings
Please walk us through step by step when the documentation from Google is not very clear on this step either.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.