Chuyển đến nội dung chính

Setup CI/CD for Flutter: Auto upload build to Store use Codemagic.io

I. Create API key access Store 

1. Create google service account and download file credentials 

 Step 1: In Google Play Console, navigate to Settings > API access.
 Step 2: Click on the Create Service Account button.
Step 3: Click on the link to Google API Console.

Step 4: In Google API Console, click on the Create Service Account button.
Step 5: Enter service acttount name and click CREATE
Step 6: cick Select a role, select Service Account User and click CONTINUE
Step 7: click CREATE KEY
  • Choose JSON and click CRATE to download file credenticials
Step 8: Back in Google Play Console, click Done to close the dialog.
  • Click GRANT ACCESS
  • Choose Role is Release manager and Add an app. Final click ADD USER 

2. Create key store app android

  • Create keystore
keytool -genkey -v -keystore nameKey.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias name_alias_key

  • Create file key.properties
storePassword=password
keyPassword=password
keyAlias=name_alias_key
storeFile=nameKey.keystore

3. Setup code magic 

 Build Trigger
Setup variable environment
FCI_KEY_ALIAS
FCI_KEYSTORE_PASSWORD
FCI_KEY_PASSWORD
FCI_KEYSTORE_FILE
  • Create FCI_KEYSTORE_FILE 
    • by terminal 
      •  run  command:
openssl base64 -in <nameKey.keystore> -out <reuslt.txt>
      • After run comment, open file result.txt and copy content add to FCI_KEYSTORE_FILE in codemagic
    • by codemagic 
      • Step 1: Open the project settings page in codemagic and do the following:

      • Step 2: Choose a file keystore of android 

      • Step 3: copy data after encode file keystore 


 Dependecy caching 
Add script create key store 
  • Before option Text, click to button ADD
  • Add script 
#!/usr/bin/env sh
set -e # exit on first failed commandset
echo $FCI_KEYSTORE_FILE | base64 --decode > $FCI_BUILD_DIR/nameKey.keystore
 Publishing ANDROID 
  • Add android code signing

 Publishing  IOS 
 
  • Add info certificate and provisioning profiles 
    • Provisioning profiles get in https://developer.apple.com/
    • Certificate is the file that was taken from the MAC computer that built the app for the first time. Specifically, this certificate must be registered in the provisioning profiles.
 
  • Add Info App with 
    • Apple ID is the iCloud login email of the APP registered account
    • App-specific password: It is the code generated by apple after you enter the App-specific password. It has the following form: xxxx-xxxx-xxxx-xxxx

    • App ID 

Run build

Nhận xét

Bài đăng phổ biến từ blog này

Thiết kế giao diện với DotNetBar (Phần 1)

Đây là phiên bản DotNetBar hỗ trợ C# và Visual Basic https://www.dropbox.com/s/wx80jpvgnlrmtux/DotNetBar.rar  , phiên bản này hỗ trợ giao diện Metro cực kỳ “dễ thương” Các bạn load về và cài đặt, khi cài đặt xong sẽ có source code mẫu của tất cả các control. Để sử dụng được các control của DotNetBar các bạn nhớ add item vào controls box. Thiết kế giao diện với DotNetBar, giao diện sẽ rất đẹp. Link các video hướng dẫn chi tiết cách sử dụng và coding: http://www.devcomponents.com/dotnetbar/movies.aspx Hiện tại DotNetBar có rất nhiều công cụ cực mạnh, trong đó có 3 công cụ dưới đây: DotNetBar for Windows Forms Requires with Visual Studio 2003, 2005, 2008, 2010 or 2012.   DotNetBar for WPF Requires with Visual Studio 2010 or 2012 and Windows Presentation Foundation.   DotNetBar for Silverlight Requires with Visual Studio 2010 or 2012 and Silverlight. Dưới đây là một số hình ảnh về các control trong DotnetBar.   Metro User Interface  controls with Metro Tiles, toolba...

Jetpack Compose: Lists

  Hai cách chúng ta có thể triển khai Lists trong Jetpack Compose. Lưu ý: Tôi đang sử dụng Jetpack Compose phiên bản 0.1.0-dev08 tại thời điểm viết bài này. Sử dụng AdapterList Chúng ta có thể sử dụng AdapterList composable - nó tương đương với RecyclerViews + RecyclerViewAdapters - nhưng với ít mã hơn đáng kể 😍 Phương thức khởi tạo AdapterList nhận dữ liệu, là danh sách các mục bạn muốn hiển thị và chuyển các mục riêng lẻ đến lambda. Ở đó bạn có thể xác định mục danh sách. Hiện tại, nó chỉ giới hạn ở việc cuộn dọc. Điều này có thể thay đổi trong các bản phát hành trong tương lai. Multiple Types Chúng ta có thể dễ dàng phân biệt giữa các loại chế độ xem khác nhau - chỉ cần thêm điều kiện if. Dưới đây là một ví dụ nếu chúng tôi muốn hiển thị một tiêu đề ở đầu danh sách: 2.Using Vertical and Horizontal Scrollers Một cách khác để triển khai danh sách là sử dụng các Scrollers đơn giản - những công cụ này sẽ không sử dụng các chế độ xem tái chế. Vì vậy, không thực sự lý tưởng cho lists...

5 concepts every Flutter dev should know

  Phụ lục: State management architecture Testing IDE Shortcuts Platform channel Maintaining a project Tôi đã làm việc với Flagship trong một thời gian dài, và đây là những điều mà tôi phát hiện ra là điều cần phải có đối với bất kỳ nhà phát triển Flagship nào, về tổng thể nó sẽ khiến bạn trở thành một nhà phát triển Flagship giỏi trong thời gian dài. 1. State management architecture Đây là một trong những chủ đề quan trọng nhất trong cộng đồng thiết bị rung, nó khá quan trọng nếu bạn muốn duy trì một dự án rung kích thước trung bình hoặc lớn. Nó sẽ giúp tạo một dự án suôn sẻ và thêm các tính năng mới một cách hoàn hảo.  2. Testing Đây là một chủ đề duy nhất mà tôi không hiểu tại sao nó lại quan trọng trước đó trong sự nghiệp của tôi, nhưng khi tôi tiến lên trong sự nghiệp của mình và có kinh nghiệm với nhiều dự án và vấn đề xảy ra trong môi trường sản xuất. Tôi đã nhận ra một cách khó khăn, tại sao điều này lại quan trọng như vậy. Nếu bạn vẫn muốn có thêm lý do để cân nhắc thử...