Browse Source

feat: add github actions config

0.73.0
zhiqingchen 3 years ago
committed by tony chen
parent
commit
324cfe1a50
  1. 16
      .github/scripts/import-certificate.sh
  2. 6
      .github/scripts/import-profile.sh
  3. 100
      .github/workflows/assemble_android_debug.yml
  4. 105
      .github/workflows/assemble_android_release.yml
  5. 113
      .github/workflows/assemble_ios_debug.yml
  6. 131
      .github/workflows/assemble_ios_release.yml
  7. 1
      Gemfile
  8. 7
      README.md
  9. 7
      android/Gemfile
  10. 222
      android/Gemfile.lock
  11. 2
      android/app/build.gradle
  12. 2
      android/fastlane/Appfile
  13. 43
      android/fastlane/Fastfile
  14. 5
      android/fastlane/Pluginfile
  15. 1
      android/gradle.properties
  16. 0
      ios/assets/.gitkeep
  17. 6
      ios/fastlane/Appfile
  18. 56
      ios/fastlane/Fastfile
  19. 48
      ios/fastlane/README.md
  20. 2
      ios/taroDemo/Images.xcassets/AppIcon.appiconset/Contents.json
  21. BIN
      ios/taroDemo/Images.xcassets/AppIcon.appiconset/icon-1024.png
  22. BIN
      ios/taroDemo/Images.xcassets/AppIcon.appiconset/icon-60@2x.png
  23. 2
      ios/taroDemo/Info.plist

16
.github/scripts/import-certificate.sh

@ -0,0 +1,16 @@
#!/bin/bash
set -euo pipefail
security create-keychain -p "" build.keychain
security list-keychains -s build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "" build.keychain
security set-keychain-settings
echo $SIGNING_CERTIFICATE_P12_DATA | base64 --decode > signingCertificate.p12
security import signingCertificate.p12 \
-f pkcs12 \
-k build.keychain \
-P $SIGNING_CERTIFICATE_PASSWORD \
-T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple: -s -k "" build.keychain

6
.github/scripts/import-profile.sh

@ -0,0 +1,6 @@
#!/bin/bash
set -euo pipefail
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
echo "$PROVISIONING_PROFILE_DATA" | base64 --decode > ~/Library/MobileDevice/Provisioning\ Profiles/profile.mobileprovision

100
.github/workflows/assemble_android_debug.yml

@ -0,0 +1,100 @@
# 工作流名称
name: Assemble Android Debug
# 触发工作流程的事件
on:
push:
branches: [ master ]
tags: [ v* ]
pull_request:
branches: [ master ]
workflow_dispatch:
# 工作流环境变量
env:
# 应用的application_id
APP_ID: com.tarodemo
# 应用名称
APP_NAME: Taro Demo
# 打包类型
BUILD_TYPE: debug
# 版本名称
VERSION_NAME: 1.0.0
# 版本号
VERSION_CODE: 10
# 密钥库文件
KEYSTORE_FILE: debug.keystore
# 密钥库口令
KEYSTORE_PASSWORD: android
# 密钥库别名
KEYSTORE_KEY_ALIAS: androiddebugkey
# 密钥库别名口令
KEYSTORE_KEY_PASSWORD: android
# 工作流作业
jobs:
assemble:
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v2
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Cache node_modules Folder
uses: actions/cache@v2
with:
path: ${{ github.workspace }}/node_modules
key: ${{ runner.os }}-node_modules
restore-keys: ${{ runner.os }}-node_modules
- name: Get Yarn Cache Directory Path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache Yarn
uses: actions/cache@v2
env:
cache-name: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: |
yarn
# - name: Build Taro React Native Bundle
# run: |
# yarn build:rn --platform android
- name: Cache Gradle
uses: actions/cache@v2
env:
cache-name: gradle-cache
with:
path: ~/.gradle
key: ${{ runner.os }}-gradle
restore-keys: |
${{ runner.os }}-gradle
- name: Assemble Android ${{ env.BUILD_TYPE }}
run: |
sudo apt install -y ruby-bundler
cd android
bundle update
bundle exec fastlane assemble
env:
KEYSTORE_FILE: ${{ github.workspace }}/android/app/${{ env.KEYSTORE_FILE }}
- name: Upload Android Products
uses: actions/upload-artifact@v2
with:
name: app-${{ env.BUILD_TYPE }}
path: ${{ github.workspace }}/android/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk
- name: Upload release assets
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
prerelease: ${{ contains(github.ref, 'beta') }}
files: |
android/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

105
.github/workflows/assemble_android_release.yml

@ -0,0 +1,105 @@
# 工作流名称
name: Assemble Android Release
# 触发工作流程的事件
on:
push:
branches: [ master ]
tags: [ v* ]
pull_request:
branches: [ master ]
workflow_dispatch:
# 工作流环境变量
env:
# 应用的application_id
APP_ID: com.tarodemo
# 应用名称
APP_NAME: Taro Demo
# 打包类型
BUILD_TYPE: release
# 版本名称
VERSION_NAME: 1.0.0
# 版本号
VERSION_CODE: 10
# 密钥库文件
KEYSTORE_FILE: debug.keystore
# 密钥库口令
KEYSTORE_PASSWORD: android
# 密钥库别名
KEYSTORE_KEY_ALIAS: androiddebugkey
# 密钥库别名口令
KEYSTORE_KEY_PASSWORD: android
# 工作流作业
jobs:
assemble:
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v2
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Cache node_modules Folder
uses: actions/cache@v2
with:
path: ${{ github.workspace }}/node_modules
key: ${{ runner.os }}-node_modules
restore-keys: ${{ runner.os }}-node_modules
- name: Get Yarn Cache Directory Path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache Yarn
uses: actions/cache@v2
env:
cache-name: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: |
yarn
# - name: Build Taro React Native Bundle
# run: |
# yarn build:rn --platform android
# - name: Upload Taro React Native Bundle
# uses: actions/upload-artifact@v2
# with:
# name: taro-android-bundle
# path: ${{ github.workspace }}/android/app/src/main/assets/index.android.bundle
- name: Cache Gradle
uses: actions/cache@v2
env:
cache-name: gradle-cache
with:
path: ~/.gradle
key: ${{ runner.os }}-gradle
restore-keys: |
${{ runner.os }}-gradle
- name: Assemble Android ${{ env.BUILD_TYPE }}
run: |
sudo apt install -y ruby-bundler
cd android
bundle update
bundle exec fastlane assemble
env:
KEYSTORE_FILE: ${{ github.workspace }}/android/app/${{ env.KEYSTORE_FILE }}
- name: Upload Android Products
uses: actions/upload-artifact@v2
with:
name: app-${{ env.BUILD_TYPE }}
path: ${{ github.workspace }}/android/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk
- name: Upload release assets
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
prerelease: ${{ contains(github.ref, 'beta') }}
files: |
android/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

113
.github/workflows/assemble_ios_debug.yml

@ -0,0 +1,113 @@
# 工作流名称
name: Assemble Ios Debug
# 触发工作流程的事件
on:
push:
branches: [ master ]
tags: [ v* ]
pull_request:
branches: [ master ]
workflow_dispatch:
# 工作流环境变量
env:
# 应用的application_id
APP_ID: ${{secrets.APP_ID}}
APP_NAME: Taro Demo
VERSION_NUMBER: 1.0.0
BUILD_TYPE: debug
TEAM_ID: ${{secrets.TEAM_ID}}
PROVISIONING_PROFILE_SPECIFIER: ${{secrets.DEBUG_PROVISIONING_PROFILE_SPECIFIER}}
CODE_SIGN_IDENTITY: Apple Development
SIGNING_CERTIFICATE_P12_DATA: ${{secrets.DEBUG_SIGNING_CERTIFICATE_P12_DATA}}
SIGNING_CERTIFICATE_PASSWORD: ${{secrets.DEBUG_SIGNING_CERTIFICATE_PASSWORD}}
PROVISIONING_PROFILE_DATA: ${{secrets.DEBUG_PROVISIONING_PROFILE_DATA}}
jobs:
assemble:
runs-on: macos-13
steps:
- name: Checkout Project
uses: actions/checkout@v2
- name: Cache node_modules Folder
uses: actions/cache@v2
with:
path: ${{ github.workspace }}/node_modules
key: ${{ runner.os }}-node_modules
restore-keys: ${{ runner.os }}-node_modules
- name: Get Yarn Cache Directory Path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache Yarn
uses: actions/cache@v2
env:
cache-name: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Cache Pods
uses: actions/cache@v2
with:
path: ios/Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- name: Install Dependencies
run: |
yarn
# - name: Build Taro React Native Bundle
# run: |
# yarn build:rn --platform ios
- name: Install pods
run: cd ios && pod update --no-repo-update
- name: Import signing certificate
env:
SIGNING_CERTIFICATE_P12_DATA: ${{ env.SIGNING_CERTIFICATE_P12_DATA }}
SIGNING_CERTIFICATE_PASSWORD: ${{ env.SIGNING_CERTIFICATE_PASSWORD }}
run: |
exec .github/scripts/import-certificate.sh
- name: Import provisioning profile
env:
PROVISIONING_PROFILE_DATA: ${{ env.PROVISIONING_PROFILE_DATA }}
run: |
exec .github/scripts/import-profile.sh
- name: Build app
env:
SKIP_BUNDLING: 1
FL_APP_IDENTIFIER: ${{ env.APP_ID }}
FL_UPDATE_PLIST_DISPLAY_NAME: ${{ env.APP_NAME }}
FL_UPDATE_PLIST_PATH: taroDemo/Info.plist
FL_VERSION_NUMBER_VERSION_NUMBER: ${{ env.VERSION_NUMBER }}
FL_BUILD_NUMBER_BUILD_NUMBER: ${{ env.BUILD_NUMBER }}
FL_CODE_SIGN_IDENTITY: ${{ env.CODE_SIGN_IDENTITY }}
FL_PROVISIONING_PROFILE_SPECIFIER: ${{ env.PROVISIONING_PROFILE_SPECIFIER }}
FASTLANE_TEAM_ID: ${{ env.TEAM_ID }}
run: |
cd ios
bundle update
bundle exec fastlane build_dev
- name: Upload Ios Products
uses: actions/upload-artifact@v2
with:
name: app-${{ env.BUILD_TYPE }}
path: |
${{ github.workspace }}/ios/taroDemo.ipa
${{ github.workspace }}/ios/taroDemo.app.dSYM.zip
- name: Rename release assets
run: |
mv ios/taroDemo.ipa ios/app-${{ env.BUILD_TYPE }}.ipa
mv ios/taroDemo.app.dSYM.zip ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip
- name: Upload release assets
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
prerelease: ${{ contains(github.ref, 'beta') }}
files: |
ios/app-${{ env.BUILD_TYPE }}.ipa
ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

131
.github/workflows/assemble_ios_release.yml

@ -0,0 +1,131 @@
# 工作流名称
name: Assemble Ios Release
# 触发工作流程的事件
on:
push:
branches: [ master ]
tags: [ v* ]
pull_request:
branches: [ master ]
workflow_dispatch:
# 工作流环境变量
env:
# 应用的application_id
APP_ID: ${{secrets.APP_ID}}
APP_NAME: Taro Demo
VERSION_NUMBER: 1.0.0
BUILD_NUMBER: 1.0.0.0
BUILD_TYPE: release
TEAM_ID: ${{secrets.TEAM_ID}}
PROVISIONING_PROFILE_SPECIFIER: ${{secrets.RELEASE_PROVISIONING_PROFILE_SPECIFIER}}
CODE_SIGN_IDENTITY: Apple Distribution
SIGNING_CERTIFICATE_P12_DATA: ${{secrets.RELEASE_SIGNING_CERTIFICATE_P12_DATA}}
SIGNING_CERTIFICATE_PASSWORD: ${{secrets.RELEASE_SIGNING_CERTIFICATE_PASSWORD}}
PROVISIONING_PROFILE_DATA: ${{secrets.RELEASE_PROVISIONING_PROFILE_DATA}}
APP_STORE_CONNECT_USERNAME: ${{secrets.APP_STORE_CONNECT_USERNAME}}
APP_STORE_CONNECT_PASSWORD: ${{secrets.APP_STORE_CONNECT_PASSWORD}}
jobs:
assemble:
runs-on: macos-13
steps:
- name: Get current date
id: date
run: echo "::set-output name=timestamp::$(date +'%s')"
- name: Checkout Project
uses: actions/checkout@v2
- name: Cache node_modules Folder
uses: actions/cache@v2
with:
path: ${{ github.workspace }}/node_modules
key: ${{ runner.os }}-node_modules
restore-keys: ${{ runner.os }}-node_modules
- name: Get Yarn Cache Directory Path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache Yarn
uses: actions/cache@v2
env:
cache-name: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Cache Pods
uses: actions/cache@v2
with:
path: ios/Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- name: Install Dependencies
run: |
yarn
# - name: Build Taro React Native Bundle
# run: |
# yarn build:rn --platform ios
# - name: Upload Taro React Native Bundle
# uses: actions/upload-artifact@v2
# with:
# name: taro-ios-bundle
# path: ${{ github.workspace }}/ios/main.jsbundle
- name: Install pods
run: cd ios && pod update --no-repo-update
- name: Import signing certificate
env:
SIGNING_CERTIFICATE_P12_DATA: ${{ env.SIGNING_CERTIFICATE_P12_DATA }}
SIGNING_CERTIFICATE_PASSWORD: ${{ env.SIGNING_CERTIFICATE_PASSWORD }}
run: |
exec .github/scripts/import-certificate.sh
- name: Import provisioning profile
env:
PROVISIONING_PROFILE_DATA: ${{ env.PROVISIONING_PROFILE_DATA }}
run: |
exec .github/scripts/import-profile.sh
- name: Build app
env:
SKIP_BUNDLING: 1
FL_APP_IDENTIFIER: ${{ env.APP_ID }}
FL_UPDATE_PLIST_DISPLAY_NAME: ${{ env.APP_NAME }}
FL_UPDATE_PLIST_PATH: taroDemo/Info.plist
FL_VERSION_NUMBER_VERSION_NUMBER: ${{ env.VERSION_NUMBER }}
FL_BUILD_NUMBER_BUILD_NUMBER: ${{ env.BUILD_NUMBER }}.${{steps.date.outputs.timestamp}}
FL_CODE_SIGN_IDENTITY: ${{ env.CODE_SIGN_IDENTITY }}
FL_PROVISIONING_PROFILE_SPECIFIER: ${{ env.PROVISIONING_PROFILE_SPECIFIER }}
FASTLANE_TEAM_ID: ${{ env.TEAM_ID }}
run: |
cd ios
bundle update
bundle exec fastlane build_release
- name: Upload Ios Products
uses: actions/upload-artifact@v2
with:
name: app-${{ env.BUILD_TYPE }}
path: |
${{ github.workspace }}/ios/taroDemo.ipa
${{ github.workspace }}/ios/taroDemo.app.dSYM.zip
- name: Upload app to App Store Connect
env:
APP_STORE_CONNECT_USERNAME: ${{ env.APP_STORE_CONNECT_USERNAME }}
APP_STORE_CONNECT_PASSWORD: ${{ env.APP_STORE_CONNECT_PASSWORD }}
run: |
cd ios
xcrun altool --upload-app -t ios -f "taroDemo.ipa" -u "$APP_STORE_CONNECT_USERNAME" -p "$APP_STORE_CONNECT_PASSWORD"
- name: Rename release assets
run: |
mv ios/taroDemo.ipa ios/app-${{ env.BUILD_TYPE }}.ipa
mv ios/taroDemo.app.dSYM.zip ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip
- name: Upload release assets
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
prerelease: ${{ contains(github.ref, 'beta') }}
files: |
ios/app-${{ env.BUILD_TYPE }}.ipa
ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

1
Gemfile

@ -3,5 +3,6 @@ source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"
gem 'fastlane'
gem 'cocoapods', '~> 1.13'
gem 'activesupport', '>= 6.1.7.3', '< 7.1.0'

7
README.md

@ -43,6 +43,13 @@ yarn
yarn upgradePeerdeps
```
5. 添加打包脚本,此部分可以直接 cherry-pick
- [fastlane] 添加 Android、iOS fastlane 配置
- [actions] 添加 Android、iOS 打包脚本
- [ios] 添加默认图标
- [ios] 添加 ITSAppUsesNonExemptEncryption false
- [ios] 添加 main.jsbundle assets 引用
## React Native 小版本更新
https://react-native-community.github.io/upgrade-helper/

7
android/Gemfile

@ -0,0 +1,7 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem 'fastlane'
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

222
android/Gemfile.lock

@ -0,0 +1,222 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.5)
rexml
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.587.0)
aws-sdk-core (3.130.2)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.56.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
declarative (0.0.20)
digest-crc (0.6.4)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.6)
emoji_regex (3.2.3)
excon (0.92.3)
faraday (1.10.0)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.3)
multipart-post (>= 1.2, < 3)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
fastlane (2.205.2)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0)
colored
commander (~> 4.6)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0)
faraday (~> 1.0)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (~> 2.0.0)
naturally (~> 2.2)
optparse (~> 0.1.1)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (>= 1.4.5, < 2.0.0)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
fastlane-plugin-update_android_strings (0.1.0)
ox
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.20.0)
google-apis-core (>= 0.4, < 2.a)
google-apis-core (0.4.2)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.10.0)
google-apis-core (>= 0.4, < 2.a)
google-apis-playcustomapp_v1 (0.7.0)
google-apis-core (>= 0.4, < 2.a)
google-apis-storage_v1 (0.13.0)
google-apis-core (>= 0.4, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.2.0)
google-cloud-storage (1.36.2)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.1)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.1.3)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.4)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.1)
json (2.6.1)
jwt (2.3.0)
memoist (0.16.2)
mini_magick (4.11.0)
mini_mime (1.1.2)
multi_json (1.15.0)
multipart-post (2.0.0)
nanaimo (0.3.0)
naturally (2.2.1)
optparse (0.1.1)
os (1.1.4)
ox (2.14.11)
plist (3.6.0)
public_suffix (4.0.7)
rake (13.0.6)
representable (3.1.1)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.5)
rouge (2.0.7)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.3)
signet (0.16.1)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.0)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.8)
CFPropertyList
naturally
terminal-notifier (2.0.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.1)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.1)
unicode-display_width (1.8.0)
webrick (1.7.0)
word_wrap (1.0.0)
xcodeproj (1.21.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
universal-darwin-21
DEPENDENCIES
fastlane
fastlane-plugin-update_android_strings
BUNDLED WITH
2.2.27

2
android/app/build.gradle

@ -76,7 +76,7 @@ android {
namespace "com.tarodemo"
defaultConfig {
applicationId "com.tarodemo"
applicationId app_id
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1

2
android/fastlane/Appfile

@ -0,0 +1,2 @@
json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
package_name("com.tarodemo") # e.g. com.krausefx.app

43
android/fastlane/Fastfile

@ -0,0 +1,43 @@
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:android)
platform :android do
desc "assemble"
lane :assemble do
update_android_strings(
xml_path: 'app/src/main/res/values/strings.xml',
block: lambda { |strings|
strings['app_name'] = ENV['APP_NAME']
}
)
gradle(
task: "assemble",
build_type: ENV['BUILD_TYPE'],
properties: {
"app_id" => ENV['APP_ID'],
"android.injected.version.code" => ENV['VERSION_CODE'].to_i,
"android.injected.version.name" => ENV['VERSION_NAME'],
"android.injected.signing.store.file" => ENV['KEYSTORE_FILE'],
"android.injected.signing.store.password" => ENV['KEYSTORE_PASSWORD'],
"android.injected.signing.key.alias" => ENV['KEYSTORE_KEY_ALIAS'],
"android.injected.signing.key.password" => ENV['KEYSTORE_KEY_PASSWORD'],
}
)
end
end

5
android/fastlane/Pluginfile

@ -0,0 +1,5 @@
# Autogenerated by fastlane
#
# Ensure this file is checked in to source control!
gem 'fastlane-plugin-update_android_strings'

1
android/gradle.properties

@ -39,3 +39,4 @@ newArchEnabled=false
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
app_id=com.tarodemo

0
ios/assets/.gitkeep

6
ios/fastlane/Appfile

@ -0,0 +1,6 @@
# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
# apple_id("[[APPLE_ID]]") # Your Apple email address
# For more information about the Appfile, see:
# https://docs.fastlane.tools/advanced/#appfile

56
ios/fastlane/Fastfile

@ -0,0 +1,56 @@
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
desc "Description of what the lane does"
lane :custom_lane do
# add actions here: https://docs.fastlane.tools/actions
end
desc "development"
lane :build_dev do |options|
update_info_plist
update_code_signing_settings
increment_version_number
build_app(
scheme: "taroDemo",
workspace: "taroDemo.xcworkspace",
export_method: "development",
configuration: "Debug",
clean: true,
xcargs: "GCC_PREPROCESSOR_DEFINITIONS='$(inherited) DEBUG=1'",
export_options: {
method: "development",
compileBitcode: false
}
)
end
desc "release"
lane :build_release do |options|
update_info_plist
update_code_signing_settings
increment_version_number
increment_build_number
build_app(
scheme: "taroDemo",
# clean: true,
workspace: "taroDemo.xcworkspace"
)
end
end

48
ios/fastlane/README.md

@ -0,0 +1,48 @@
fastlane documentation
----
# Installation
Make sure you have the latest version of the Xcode command line tools installed:
```sh
xcode-select --install
```
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
# Available Actions
## iOS
### ios custom_lane
```sh
[bundle exec] fastlane ios custom_lane
```
Description of what the lane does
### ios build_dev
```sh
[bundle exec] fastlane ios build_dev
```
development
### ios build_release
```sh
[bundle exec] fastlane ios build_release
```
release
----
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).

2
ios/taroDemo/Images.xcassets/AppIcon.appiconset/Contents.json

@ -31,6 +31,7 @@
"size" : "40x40"
},
{
"filename" : "icon-60@2x.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
@ -41,6 +42,7 @@
"size" : "60x60"
},
{
"filename" : "icon-1024.png",
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"

BIN
ios/taroDemo/Images.xcassets/AppIcon.appiconset/icon-1024.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
ios/taroDemo/Images.xcassets/AppIcon.appiconset/icon-60@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

2
ios/taroDemo/Info.plist

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>

Loading…
Cancel
Save