mirror of
https://github.com/aljazceru/mutiny-web.git
synced 2025-12-17 06:14:21 +01:00
add testflight ios CI
This commit is contained in:
committed by
Tony Giorgio
parent
afb3ee6add
commit
0b2e3bdad3
88
.github/workflows/ios-staging.yml
vendored
Normal file
88
.github/workflows/ios-staging.yml
vendored
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
name: Release iOS Staging
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build iOS
|
||||||
|
runs-on: macos-latest
|
||||||
|
timeout-minutes: 180
|
||||||
|
steps:
|
||||||
|
- name: Checkout source
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- uses: pnpm/action-setup@v2
|
||||||
|
name: Install pnpm
|
||||||
|
id: pnpm-install
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
run_install: false
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 18.x
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
# Install dependencies using pnpm
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
- name: Build SolidJS app
|
||||||
|
env:
|
||||||
|
VITE_NETWORK: signet
|
||||||
|
VITE_PROXY: wss://p.mutinywallet.com
|
||||||
|
VITE_ESPLORA: https://mutinynet.com/api
|
||||||
|
VITE_LSP: https://signet-lsp.mutinywallet.com
|
||||||
|
VITE_RGS: https://rgs.mutinynet.com/snapshot/
|
||||||
|
VITE_AUTH: https://auth-staging.mutinywallet.com
|
||||||
|
VITE_SUBSCRIPTIONS: https://subscriptions-staging.mutinywallet.com
|
||||||
|
VITE_STORAGE: https://storage-staging.mutinywallet.com/v2
|
||||||
|
VITE_FEEDBACK: https://feedback-staging.mutinywallet.com
|
||||||
|
VITE_SCORER: https://scorer-staging.mutinywallet.com
|
||||||
|
VITE_PRIMAL: https://primal-cache.mutinywallet.com/api
|
||||||
|
run: pnpm build
|
||||||
|
|
||||||
|
- uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ios/App/Pods
|
||||||
|
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-pods-
|
||||||
|
|
||||||
|
- name: Capacitor sync
|
||||||
|
run: npx cap sync
|
||||||
|
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: '3.2.2'
|
||||||
|
bundler-cache: true
|
||||||
|
working-directory: 'ios/App'
|
||||||
|
|
||||||
|
- uses: maxim-lobanov/setup-xcode@v1
|
||||||
|
with:
|
||||||
|
xcode-version: '14.2.0'
|
||||||
|
|
||||||
|
- uses: maierj/fastlane-action@v3.0.0
|
||||||
|
env:
|
||||||
|
DEVELOPER_APP_IDENTIFIER: ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
|
||||||
|
# PROVISIONING_PROFILE_SPECIFIER: match AppStore ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
|
||||||
|
KEYCHAIN_NAME: ${{ secrets.KEYCHAIN_NAME }}
|
||||||
|
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||||
|
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
|
||||||
|
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
|
||||||
|
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
|
||||||
|
CERTIFICATE_STORE_URL: ${{ secrets.CERTIFICATE_STORE_URL }}
|
||||||
|
GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
|
||||||
|
GIT_TOKEN: ${{ secrets.GIT_TOKEN }}
|
||||||
|
FASTLANE_APPLE_ID: ${{ secrets.FASTLANE_APPLE_ID }}
|
||||||
|
MATCH_USERNAME: ${{ secrets.FASTLANE_APPLE_ID }}
|
||||||
|
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
|
||||||
|
APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
|
||||||
|
DEVELOPER_PORTAL_TEAM_ID: ${{ secrets.DEVELOPER_PORTAL_TEAM_ID }}
|
||||||
|
with:
|
||||||
|
lane: 'beta'
|
||||||
|
subdirectory: 'ios/App'
|
||||||
|
|
||||||
|
|
||||||
3
ios/.gitignore
vendored
3
ios/.gitignore
vendored
@@ -11,3 +11,6 @@ capacitor-cordova-ios-plugins
|
|||||||
# Generated Config files
|
# Generated Config files
|
||||||
App/App/capacitor.config.json
|
App/App/capacitor.config.json
|
||||||
App/App/config.xml
|
App/App/config.xml
|
||||||
|
|
||||||
|
App/App.app.dSYM.zip
|
||||||
|
App/App.ipa
|
||||||
BIN
ios/App/App.app.dSYM.zip
Normal file
BIN
ios/App/App.app.dSYM.zip
Normal file
Binary file not shown.
BIN
ios/App/App.ipa
Normal file
BIN
ios/App/App.ipa
Normal file
Binary file not shown.
@@ -351,7 +351,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 2;
|
CURRENT_PROJECT_VERSION = 11;
|
||||||
DEVELOPMENT_TEAM = X773Y823TN;
|
DEVELOPMENT_TEAM = X773Y823TN;
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
INFOPLIST_FILE = App/Info.plist;
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
|
||||||
@@ -374,9 +374,11 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
CURRENT_PROJECT_VERSION = 2;
|
CODE_SIGN_STYLE = Manual;
|
||||||
DEVELOPMENT_TEAM = X773Y823TN;
|
CURRENT_PROJECT_VERSION = 11;
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = X773Y823TN;
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
INFOPLIST_FILE = App/Info.plist;
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||||
@@ -385,6 +387,7 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mutinywallet.mutiny;
|
PRODUCT_BUNDLE_IDENTIFIER = com.mutinywallet.mutiny;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.mutinywallet.mutiny";
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>$(MARKETING_VERSION)</string>
|
<string>$(MARKETING_VERSION)</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
<string>11</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
|
|||||||
3
ios/App/Gemfile
Normal file
3
ios/App/Gemfile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem "fastlane"
|
||||||
218
ios/App/Gemfile.lock
Normal file
218
ios/App/Gemfile.lock
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
CFPropertyList (3.0.6)
|
||||||
|
rexml
|
||||||
|
addressable (2.8.5)
|
||||||
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
|
artifactory (3.0.15)
|
||||||
|
atomos (0.1.3)
|
||||||
|
aws-eventstream (1.2.0)
|
||||||
|
aws-partitions (1.843.0)
|
||||||
|
aws-sdk-core (3.185.2)
|
||||||
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
|
aws-partitions (~> 1, >= 1.651.0)
|
||||||
|
aws-sigv4 (~> 1.5)
|
||||||
|
jmespath (~> 1, >= 1.6.1)
|
||||||
|
aws-sdk-kms (1.72.0)
|
||||||
|
aws-sdk-core (~> 3, >= 3.184.0)
|
||||||
|
aws-sigv4 (~> 1.1)
|
||||||
|
aws-sdk-s3 (1.136.0)
|
||||||
|
aws-sdk-core (~> 3, >= 3.181.0)
|
||||||
|
aws-sdk-kms (~> 1)
|
||||||
|
aws-sigv4 (~> 1.6)
|
||||||
|
aws-sigv4 (1.6.1)
|
||||||
|
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.5)
|
||||||
|
rake (>= 12.0.0, < 14.0.0)
|
||||||
|
domain_name (0.5.20190701)
|
||||||
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
|
dotenv (2.8.1)
|
||||||
|
emoji_regex (3.2.3)
|
||||||
|
excon (0.104.0)
|
||||||
|
faraday (1.10.3)
|
||||||
|
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.4)
|
||||||
|
multipart-post (~> 2)
|
||||||
|
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.7)
|
||||||
|
fastlane (2.216.0)
|
||||||
|
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)
|
||||||
|
http-cookie (~> 1.0.5)
|
||||||
|
json (< 3.0.0)
|
||||||
|
jwt (>= 2.1.0, < 3)
|
||||||
|
mini_magick (>= 4.9.4, < 5.0.0)
|
||||||
|
multipart-post (>= 2.0.0, < 3.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 (~> 3)
|
||||||
|
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)
|
||||||
|
gh_inspector (1.1.3)
|
||||||
|
google-apis-androidpublisher_v3 (0.51.0)
|
||||||
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
|
google-apis-core (0.11.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.17.0)
|
||||||
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
|
google-apis-playcustomapp_v1 (0.13.0)
|
||||||
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
|
google-apis-storage_v1 (0.19.0)
|
||||||
|
google-apis-core (>= 0.9.0, < 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.3.1)
|
||||||
|
google-cloud-storage (1.44.0)
|
||||||
|
addressable (~> 2.8)
|
||||||
|
digest-crc (~> 0.4)
|
||||||
|
google-apis-iamcredentials_v1 (~> 0.1)
|
||||||
|
google-apis-storage_v1 (~> 0.19.0)
|
||||||
|
google-cloud-core (~> 1.6)
|
||||||
|
googleauth (>= 0.16.2, < 2.a)
|
||||||
|
mini_mime (~> 1.0)
|
||||||
|
googleauth (1.8.1)
|
||||||
|
faraday (>= 0.17.3, < 3.a)
|
||||||
|
jwt (>= 1.4, < 3.0)
|
||||||
|
multi_json (~> 1.11)
|
||||||
|
os (>= 0.9, < 2.0)
|
||||||
|
signet (>= 0.16, < 2.a)
|
||||||
|
highline (2.0.3)
|
||||||
|
http-cookie (1.0.5)
|
||||||
|
domain_name (~> 0.5)
|
||||||
|
httpclient (2.8.3)
|
||||||
|
jmespath (1.6.2)
|
||||||
|
json (2.6.3)
|
||||||
|
jwt (2.7.1)
|
||||||
|
mini_magick (4.12.0)
|
||||||
|
mini_mime (1.1.5)
|
||||||
|
multi_json (1.15.0)
|
||||||
|
multipart-post (2.3.0)
|
||||||
|
nanaimo (0.3.0)
|
||||||
|
naturally (2.2.1)
|
||||||
|
optparse (0.1.1)
|
||||||
|
os (1.1.4)
|
||||||
|
plist (3.7.0)
|
||||||
|
public_suffix (5.0.3)
|
||||||
|
rake (13.1.0)
|
||||||
|
representable (3.2.0)
|
||||||
|
declarative (< 0.1.0)
|
||||||
|
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||||
|
uber (< 0.2.0)
|
||||||
|
retriable (3.1.2)
|
||||||
|
rexml (3.2.6)
|
||||||
|
rouge (2.0.7)
|
||||||
|
ruby2_keywords (0.0.5)
|
||||||
|
rubyzip (2.3.2)
|
||||||
|
security (0.1.3)
|
||||||
|
signet (0.18.0)
|
||||||
|
addressable (~> 2.8)
|
||||||
|
faraday (>= 0.17.5, < 3.a)
|
||||||
|
jwt (>= 1.5, < 3.0)
|
||||||
|
multi_json (~> 1.10)
|
||||||
|
simctl (1.6.10)
|
||||||
|
CFPropertyList
|
||||||
|
naturally
|
||||||
|
terminal-notifier (2.0.0)
|
||||||
|
terminal-table (3.0.2)
|
||||||
|
unicode-display_width (>= 1.1.1, < 3)
|
||||||
|
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.2)
|
||||||
|
unicode-display_width (2.5.0)
|
||||||
|
webrick (1.8.1)
|
||||||
|
word_wrap (1.0.0)
|
||||||
|
xcodeproj (1.23.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
|
||||||
|
arm64-darwin-23
|
||||||
|
x86_64-darwin-20
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
fastlane
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.4.10
|
||||||
1
ios/App/fastlane/.gitignore
vendored
Normal file
1
ios/App/fastlane/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
report.xml
|
||||||
7
ios/App/fastlane/Appfile
Normal file
7
ios/App/fastlane/Appfile
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
app_identifier(ENV["DEVELOPER_APP_IDENTIFIER"]) # The bundle identifier of your app
|
||||||
|
apple_id(ENV["FASTLANE_APPLE_ID"]) # Your Apple Developer Portal username
|
||||||
|
itc_team_id(ENV["APP_STORE_CONNECT_TEAM_ID"]) # App Store Connect Team ID
|
||||||
|
team_id(ENV["DEVELOPER_PORTAL_TEAM_ID"]) # Developer Portal Team ID
|
||||||
|
|
||||||
|
# For more information about the Appfile, see:
|
||||||
|
# https://docs.fastlane.tools/advanced/#appfile
|
||||||
59
ios/App/fastlane/Fastfile
Normal file
59
ios/App/fastlane/Fastfile
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# 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)
|
||||||
|
|
||||||
|
ISSUER_ID = ENV["APPLE_ISSUER_ID"]
|
||||||
|
KEY_ID = ENV["APPLE_KEY_ID"]
|
||||||
|
KEY_CONTENT = ENV["APPLE_KEY_CONTENT"]
|
||||||
|
|
||||||
|
KEYCHAIN_NAME = ENV["KEYCHAIN_NAME"]
|
||||||
|
KEYCHAIN_PASSWORD = ENV["KEYCHAIN_PASSWORD"]
|
||||||
|
|
||||||
|
platform :ios do
|
||||||
|
desc "Push a new beta build to TestFlight"
|
||||||
|
lane :beta do
|
||||||
|
api_key = app_store_connect_api_key(
|
||||||
|
key_id: KEY_ID,
|
||||||
|
issuer_id: ISSUER_ID,
|
||||||
|
key_content: KEY_CONTENT
|
||||||
|
)
|
||||||
|
|
||||||
|
# In CI we don't want to be prompted for a password
|
||||||
|
create_keychain(
|
||||||
|
name: KEYCHAIN_NAME,
|
||||||
|
password: KEYCHAIN_PASSWORD,
|
||||||
|
default_keychain: true,
|
||||||
|
unlock: true,
|
||||||
|
timeout: 3600,
|
||||||
|
add_to_search_list: true
|
||||||
|
)
|
||||||
|
|
||||||
|
match(
|
||||||
|
type: "appstore",
|
||||||
|
keychain_name: KEYCHAIN_NAME,
|
||||||
|
keychain_password: KEYCHAIN_PASSWORD,
|
||||||
|
readonly: is_ci
|
||||||
|
)
|
||||||
|
|
||||||
|
increment_build_number(xcodeproj: "App.xcodeproj")
|
||||||
|
build_app(
|
||||||
|
workspace: "App.xcworkspace",
|
||||||
|
scheme: "App",
|
||||||
|
xcargs: "-allowProvisioningUpdates"
|
||||||
|
)
|
||||||
|
upload_to_testflight(api_key: api_key, skip_waiting_for_build_processing: true)
|
||||||
|
end
|
||||||
|
end
|
||||||
20
ios/App/fastlane/Matchfile
Normal file
20
ios/App/fastlane/Matchfile
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
CERTIFICATE_STORE_URL = ENV["CERTIFICATE_STORE_URL"]
|
||||||
|
GIT_USERNAME = ENV["GIT_USERNAME"]
|
||||||
|
GIT_TOKEN = ENV["GIT_TOKEN"]
|
||||||
|
FASTLANE_APPLE_ID = ENV["FASTLANE_APPLE_ID"]
|
||||||
|
|
||||||
|
git_url(CERTIFICATE_STORE_URL)
|
||||||
|
|
||||||
|
storage_mode("git")
|
||||||
|
type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
|
||||||
|
|
||||||
|
git_basic_authorization(Base64.strict_encode64("#{GIT_USERNAME}:#{GIT_TOKEN}"))
|
||||||
|
username(FASTLANE_APPLE_ID)
|
||||||
|
|
||||||
|
# app_identifier(["tools.fastlane.app", "tools.fastlane.app2"])
|
||||||
|
# username("user@fastlane.tools") # Your Apple Developer Portal username
|
||||||
|
|
||||||
|
# For all available options run `fastlane match --help`
|
||||||
|
# Remove the # in the beginning of the line to enable the other options
|
||||||
|
|
||||||
|
# The docs are available on https://docs.fastlane.tools/actions/match
|
||||||
32
ios/App/fastlane/README.md
Normal file
32
ios/App/fastlane/README.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
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 beta
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane ios beta
|
||||||
|
```
|
||||||
|
|
||||||
|
Push a new beta build to TestFlight
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
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).
|
||||||
@@ -58,15 +58,17 @@ export const WarningModal: ParentComponent<{
|
|||||||
<Dialog.Overlay class={OVERLAY} />
|
<Dialog.Overlay class={OVERLAY} />
|
||||||
<div class={DIALOG_POSITIONER}>
|
<div class={DIALOG_POSITIONER}>
|
||||||
<Dialog.Content class={DIALOG_CONTENT}>
|
<Dialog.Content class={DIALOG_CONTENT}>
|
||||||
<Dialog.Title class="mb-2 flex items-center justify-between">
|
<div class="p-4">
|
||||||
<SmallHeader>{props.title}</SmallHeader>
|
<Dialog.Title class="mb-2 flex items-center justify-between">
|
||||||
<Dialog.CloseButton>
|
<SmallHeader>{props.title}</SmallHeader>
|
||||||
<ModalCloseButton />
|
<Dialog.CloseButton>
|
||||||
</Dialog.CloseButton>
|
<ModalCloseButton />
|
||||||
</Dialog.Title>
|
</Dialog.CloseButton>
|
||||||
<Dialog.Description class="flex flex-col gap-4">
|
</Dialog.Title>
|
||||||
<div>{props.children}</div>
|
<Dialog.Description class="flex flex-col gap-4">
|
||||||
</Dialog.Description>
|
<div>{props.children}</div>
|
||||||
|
</Dialog.Description>
|
||||||
|
</div>
|
||||||
</Dialog.Content>
|
</Dialog.Content>
|
||||||
</div>
|
</div>
|
||||||
</Dialog.Portal>
|
</Dialog.Portal>
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import { Directory, Encoding, Filesystem } from "@capacitor/filesystem";
|
|||||||
import { Share } from "@capacitor/share";
|
import { Share } from "@capacitor/share";
|
||||||
import { Toast } from "@capacitor/toast";
|
import { Toast } from "@capacitor/toast";
|
||||||
|
|
||||||
|
import { eify } from "./eify";
|
||||||
|
|
||||||
export async function downloadTextFile(
|
export async function downloadTextFile(
|
||||||
content: string,
|
content: string,
|
||||||
fileName: string,
|
fileName: string,
|
||||||
@@ -35,10 +37,18 @@ export async function downloadTextFile(
|
|||||||
"Error creating or sharing the file: ",
|
"Error creating or sharing the file: ",
|
||||||
JSON.stringify(error)
|
JSON.stringify(error)
|
||||||
);
|
);
|
||||||
await Toast.show({
|
|
||||||
text: `Error while saving or sharing file`,
|
const err = eify(error);
|
||||||
duration: "long"
|
|
||||||
});
|
if (err.message.includes("Share canceled")) {
|
||||||
|
// Do nothing
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
await Toast.show({
|
||||||
|
text: `Error while saving or sharing file`,
|
||||||
|
duration: "long"
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// https://stackoverflow.com/questions/34156282/how-do-i-save-json-to-local-text-file
|
// https://stackoverflow.com/questions/34156282/how-do-i-save-json-to-local-text-file
|
||||||
|
|||||||
Reference in New Issue
Block a user