Gh action android (#1081)

* android n ios

* set this branch gh actions

* set this branch gh actions2

* set this branch gh actions3

* set this branch gh actions4

* set this branch gh actions4.1

* set this branch gh actions5

* made executable

* ...

* ...2

* ...3

* ...4

* ...5

* ...6

* ...7

* ...88

* ios test keys

* ios test keys2

* changed some fluufychat stuff

* reset activation

* pic update

* reverted integrate to run again

* ios-build1

* ios-build2

* android space clearing

* another attempt

* another attempt

* another attempt2

* another attempt3

* android downgrade

* undo cleanup

* remove cache

* sdk version force?

* sdk version force remove

* r8 fix

* material

* material remove agian

* reset gradle, up flutter

* downgfrade to 21

* android ndk up agian

* android ndk up agian2

* with disk spcae r4emove agian...

* allow ios modules

* allow ios modules2

* updated version to compile on ios

* how baout this

* ios generated files

* removed exclude group

---------

Co-authored-by: ggurdin <ggurdin@gmail.com>
Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com>
This commit is contained in:
Brord van Wierst 2024-12-13 18:02:58 +01:00 committed by GitHub
parent d41dd35075
commit 609eff1100
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 318 additions and 259 deletions

79
.github/workflows/build-ios.yml vendored Normal file
View file

@ -0,0 +1,79 @@
name: build-ios
on:
workflow_call:
inputs:
screenshot:
type: string
required: true
ipa:
description: 'Run IPA build'
type: string
required: true
workflow_dispatch:
inputs:
screenshot:
description: 'Run screenshot build'
type: choice
options: ['true', 'false']
required: true
ipa:
description: 'Run IPA build'
type: choice
options: ['true', 'false']
required: true
jobs:
build-ios:
runs-on: macos-latest
timeout-minutes: 20
defaults:
run:
working-directory: ios
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: 'echo "$API_KEY" | base64 --decode > AuthKey.p8'
shell: bash
env:
API_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY }}
- run: bundle install
- run: bundle exec fastlane versioning
- name: Flutter
uses: subosito/flutter-action@v2
with:
cache: true
cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:'
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- run: flutter build ios --simulator --target=integration_test/screenshot_test.dart
if: ${{ inputs.screenshot == 'true' }}
- name: Archive integration ipa
if: ${{ inputs.screenshot == 'true' }}
uses: actions/upload-artifact@v4
with:
name: app-simulator-build
path: build/ios/iphonesimulator/Runner.app
if-no-files-found: error
retention-days: 3
# Build ios Release
- run: flutter build ios --release --config-only --no-codesign --target=lib/main.dart
if: ${{ inputs.ipa == 'true' }}
- run: bundle exec fastlane build
if: ${{ inputs.ipa == 'true' }}
- name: Archive ipa
if: ${{ inputs.ipa == 'true' }}
uses: actions/upload-artifact@v4
with:
name: Runner.ipa
path: ios/Runner.ipa
if-no-files-found: error
retention-days: 3

View file

@ -28,7 +28,7 @@ jobs:
- run: flutter analyze
- run: flutter test
build_debug_apk:
build_apk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@ -40,11 +40,18 @@ jobs:
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache: false
- run: flutter pub get
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
android: false
- run: flutter build apk --debug
build_debug_web:
build_web:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@ -52,7 +59,7 @@ jobs:
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache: false
- run: flutter pub get
- name: Prepare web
run: ./scripts/prepare-web.sh
@ -90,4 +97,4 @@ jobs:
xcode-version: latest
- run: brew install sqlcipher
- run: flutter pub get
- run: flutter build ios --no-codesign
- run: flutter build ipa --no-codesign

View file

@ -93,3 +93,62 @@ jobs:
run: flutter pub get
- name: Update sentry
run: flutter packages pub run sentry_dart_plugin
deploy_playstore_internal:
environment: staging
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'zulu'
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Set up Android SDK
if: ${{ env.ACT }} # Only run on local act setups, as GitHub Actions provides the Android SDK on Ubuntu
uses: android-actions/setup-android@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
- name: Install Fastlane
run: gem install fastlane -NV
- name: Remove Emoji Font
run: |
rm -rf fonts/NotoEmoji
yq -i 'del( .flutter.fonts[] | select(.family == "NotoEmoji") )' pubspec.yaml
- run: flutter pub get
- name: Prepare Android Release Build
env:
PLAY_STORE_UPLOAD_KEY: ${{ secrets.PLAY_STORE_UPLOAD_KEY }}
PLAY_STORE_KEYSTORE_KEY_ALIAS: ${{ secrets.PLAY_STORE_KEYSTORE_KEY_ALIAS }}
PLAY_STORE_KEYSTORE_STORE_PASSWORD: ${{ secrets.PLAY_STORE_KEYSTORE_STORE_PASSWORD }}
PLAY_STORE_KEYSTORE_KEY_PASSWORD: ${{ secrets.PLAY_STORE_KEYSTORE_KEY_PASSWORD }}
PLAY_STORE_CONFIG_JSON: ${{ secrets.PLAY_STORE_CONFIG_JSON }}
run: ./scripts/prepare-android-release.sh
- name: Build Android Release
run: flutter build appbundle --target-platform android-arm,android-arm64,android-x64
- name: Deploy Android Release
run: |
mkdir -p build/android
cp build/app/outputs/bundle/release/app-release.aab build/android/
cd android
bundle install
bundle update fastlane
bundle exec fastlane deploy_internal_test
if [[ $GITHUB_REF_NAME == rc* ]]; then
bundle exec fastlane deploy_candidate
else
bundle exec fastlane deploy_release
fi
cd ..
deploy_ios_testflight: # stashed on old.yml
environment: staging
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

View file

@ -10,101 +10,35 @@ concurrency:
cancel-in-progress: true
jobs:
build_staging:
runs-on: ubuntu-latest
deploy_ios_internal:
runs-on: macos-latest
environment: staging
steps:
- uses: actions/checkout@v2
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- run: echo "$WEB_APP_ENV" > .env
- uses: actions/checkout@v4
- run: cat ../.github/workflows/versions.env >> $GITHUB_ENV
- name: Set up Flutter
- name: Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:'
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- name: Prepare web
run: ./scripts/prepare-web.sh
# Build ios Release
- run: flutter build ios --release --config-only --no-codesign --target=lib/main.dart
- name: Build web
run: ./scripts/build-web.sh
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: web-artifact
path: ./build/web
upload_sentry:
runs-on: ubuntu-latest
needs: build_staging
steps:
- uses: actions/checkout@v2
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- run: echo "$WEB_APP_ENV" > .env
- name: Build web
run: ./scripts/upload-sentry.sh
deploy_staging:
runs-on: ubuntu-latest
needs: build_staging
steps:
- uses: actions/checkout@v2
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- run: echo "$WEB_APP_ENV" > .env
- name: Set up AWS CLI
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
- name: Download all workflow run artifacts
uses: actions/download-artifact@v3
build_production:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v2
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- run: echo "$WEB_APP_ENV" > .env
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Prepare web
run: ./scripts/prepare-web.sh
- name: Build web
run: ./scripts/build-web.sh
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: web-artifact
path: ./build/web
deploy_production:
environment: production
runs-on: ubuntu-latest
needs: build_production
steps:
- uses: actions/checkout@v2
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- run: echo "$WEB_APP_ENV" > .env
- name: Download all workflow run artifacts
uses: actions/download-artifact@v3
- name: Set up AWS CLI
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
- name: Deploy ios
run: |
mkdir -p build/ios
cp build/app/outputs/bundle/release/app-release.aab build/ios/
cd ios
bundle install
bundle update fastlane
cd ..
- name: Execute fastlane signing
env:
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64: ${{ secrets.APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64 }}
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
run: bundle exec fastlane ios beta

View file

@ -102,7 +102,7 @@ jobs:
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: build/app/outputs/apk/release/app-release.apk
asset_name: fluffychat.apk
asset_name: pangeachat.apk
asset_content_type: application/vnd.android.package-archive
build_linux:
@ -122,15 +122,15 @@ jobs:
- run: ./flutter/bin/flutter pub get
- run: ./flutter/bin/flutter build linux --target-platform linux-${{ matrix.arch }}
- name: Create archive
run: tar -czf fluffychat-linux-${{ matrix.arch }}.tar.gz -C build/linux/${{ matrix.arch }}/release/bundle/ .
run: tar -czf pangeachat-linux-${{ matrix.arch }}.tar.gz -C build/linux/${{ matrix.arch }}/release/bundle/ .
- name: Upload to release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.PAGES_DEPLOY_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: fluffychat-linux-${{ matrix.arch }}.tar.gz
asset_name: fluffychat-linux-${{ matrix.arch }}.tar.gz
asset_path: pangeachat-linux-${{ matrix.arch }}.tar.gz
asset_name: pangeachat-linux-${{ matrix.arch }}.tar.gz
asset_content_type: application/gzip
deploy_playstore:

View file

@ -0,0 +1,39 @@
name: upload-release-ios
on:
workflow_call:
inputs:
new_release:
required: true
type: string
description: "The new release version number"
new_release_notes:
required: true
type: string
description: "The release notes for the new release"
jobs:
build:
runs-on: macos-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download app
uses: actions/download-artifact@v4
with:
name: Runner.ipa
path: ios/
- run: 'echo "$API_KEY" | base64 --decode > AuthKey.p8'
shell: bash
env:
API_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY }}
- run: bundle install
- run: bundle exec fastlane upload_testflight
env:
RELEASE_NOTES: ${{ inputs.new_release_notes }}
- run: bundle exec fastlane upload_metadata_app_store

4
.gitignore vendored
View file

@ -11,6 +11,10 @@
.history
.svn/
prime
# act; local github actions
*.secrets
# Android keys file
keys.json
!/public/.env
*.env.local_choreo
*.env.prod

View file

@ -30,6 +30,8 @@ if (keystorePropertiesFile.exists()) {
}
android {
ndkVersion = "25.1.8937393"
namespace "com.talktolearn.chat"
compileSdkVersion 34
sourceSets {

View file

@ -30,7 +30,7 @@ platform :android do
config = File.read("./pubspec.yaml")
version_name = config.match(re).captures
subst = "version: #{version_name[0]}+#{last_version+2}"
subst = "version: #{version_name[0]}+#{last_version+1}"
result = config.gsub(re, subst)

View file

@ -1,68 +0,0 @@
FluffyChat 1.6.0 features a lot of bug fixes and improvements. The code base has been
simplified and the drawer on the chat list page got a come-back. Some new features like
the space hierarchy and session dump have been implemented.
- feat: Added monochrome entry for themed icon support in Android 13 (James Reilly)
- feat: Display timeline of messages in android notification (Christian Pauly)
- feat: Emoji related fixes (TheOneWithTheBraid)
- feat: Implement deleting pushers in app (Christian Pauly)
- feat: New material 3 design (Christian Pauly)
- feat: Redesign bootsstrap and offer secure storage support (Christian Pauly)
- feat: Send multiple images at once (Christian Pauly)
- feat: implement session dump (TheOneWithTheBraid)
- feat: implement space hierarchy (TheOneWithTheBraid)
- feat: introduce extended integration tests (TheOneWithTheBraid)
- feat: libhandy integration (TheOneWithTheBraid)
- fix: Clearing push triggered when only one room got seen (Christian Pauly)
- fix: Dont display loading dialog when adding reaction (Christian Pauly)
- fix: Follow up for spaces hierarchy (TheOneWithTheBraid)
- fix: Missing null checks in chat details view (Christian Pauly)
- fix: Non FCM Android builds crash on start (Christian Pauly)
- fix: Permission chooser dialog on iOS (Christian Pauly)
- fix: Set avatar on only single action available (Christian Pauly)
- fix: Sharing on iOS and iPad (Christian Pauly)
- fix: Unread bubble is invisible in dark mode (Christian Pauly)
- fix: appimage builds (TheOneWithTheBraid)
- fix: only use custom http client on android (Jayesh Nirve)
- fix: pass isrg cert to http client (Jayesh Nirve)
- refactor: Chat view (Christian Pauly)
- refactor: Encryption button (Christian Pauly)
- refactor: Remove duplicated imports (Christian Pauly)
- refactor: Remove legacy store (Christian Pauly)
- refactor: Remove presence status feature (Christian Pauly)
- refactor: Simplify MxcImage and replace CachedNetworkImage (Christian Pauly)
- refactor: Switch to Hive Collections DB (Christian Pauly)
- refactor: move start chat FAB to implementation file (TheOneWithTheBraid)
- Translated using Weblate (Catalan) (Alfonso Montero López)
- Translated using Weblate (Catalan) (Auri B.P)
- Translated using Weblate (Chinese (Simplified)) (Eric)
- Translated using Weblate (Croatian) (Milo Ivir)
- Translated using Weblate (Dutch) (Jelv)
- Translated using Weblate (English) (Raatty)
- Translated using Weblate (Estonian) (Priit Jõerüüt)
- Translated using Weblate (Finnish) (Aminda Suomalainen)
- Translated using Weblate (Galician) (Xosé M)
- Translated using Weblate (Indonesian) (Linerly)
- Translated using Weblate (Persian) (Amir Hossein Maher)
- Translated using Weblate (Polish) (Przemysław Romanik)
- Translated using Weblate (Russian) (Nikita Epifanov)
- Translated using Weblate (Turkish) (Oğuz Ersen)
- Translated using Weblate (Ukrainian) (Ihor Hordiichuk)
- chore: Add border to avatars (Christian Pauly)
- chore: Add fancy hero animations (Christian Pauly)
- chore: Adjust appbar design (Christian Pauly)
- chore: Adjust design (Christian Pauly)
- chore: Adjust search bar design (Christian Pauly)
- chore: Always display header elevation in chat (Christian Pauly)
- chore: Design follow up fixes (Christian Pauly)
- chore: Design follow up fixes (Christian Pauly)
- chore: Disable integration tests without runners (Krille Fear)
- chore: Enhance invitiation UX (Christian Pauly)
- chore: Make push helper more fail safe (Christian Pauly)
- chore: Make push helper more stable (Christian Pauly)
- chore: Minor design improvements (Christian Pauly)
- chore: Pinned events design (Christian Pauly)
- chore: Remove permission handler dependency and increase compileSdkVersion (Christian Pauly)
- chore: Switch to flutter 3.0.5 (Krille Fear)
- chore: Update SDK (Christian Pauly)
- chore: remove snapping sheet (TheOneWithTheBraid)

View file

@ -1 +0,0 @@
Check out https://gitlab.com/ChristianPauly/fluffychat-flutter/-/blob/main/CHANGELOG.md for the changelog.

View file

@ -1,32 +1 @@
FluffyChat is an open, nonprofit and cute Matrix messenger app for Ubuntu Touch, Android and iOS.
Open
Opensource and open development where everyone can join.
Nonprofit
FluffyChat is donation funded.
Cute ♥
Cute design and many theme settings including a dark mode.
One-to-one and group chats
Unlimited groups and direct chats.
Easy
FluffyChat is made as simple to use as possible.
Free
Free to use for everyone without ads.
Decentralized
There is no "FluffyChat server" you are forced to use. Use the server you find trustworthy or host your own.
Compatible
Compatible with Element, Fractal, Nheko and all Matrix messengers.
FluffyChat comes with a dream
Imagine a world where everyone can choose the messenger they like and is still able to chat with all of their friends.
A world where there are no companies spying on you when you send selfies to friends and your loved.
And a world where apps are made for fluffyness and not for profit. ♥
Real conversation is the best way to learn a language, and students don't need years of study before they do it. Even if they are just beginning, with Pangea Chat they can start using their new language from day one!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View file

@ -1 +1 @@
Chat with your friends with FluffyChat.
Learn a language while texting your friends!

View file

@ -1 +1 @@
FluffyChat
PangeaChat

View file

@ -16,10 +16,22 @@ pluginManagement {
}
}
buildscript {
repositories {
mavenCentral()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath("com.android.tools:r8:8.2.24")
}
}
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.1.2" apply false
id "org.jetbrains.kotlin.android" version "1.8.0" apply false
id "com.android.application" version "7.1.3" apply false
id "org.jetbrains.kotlin.android" version "2.0.21" apply false
// id "com.google.gms.google-services" version "4.3.8" apply false
}

View file

@ -202,4 +202,4 @@ DEPENDENCIES
fastlane
BUNDLED WITH
2.1.4
2.1.4

View file

@ -1,6 +1,5 @@
# Uncomment this line to define a global platform for your project
platform :ios, '13.0'
platform :ios, '16.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@ -54,6 +53,7 @@ post_install do |installer|
# see https://github.com/flutter-webrtc/flutter-webrtc/issues/1054
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = 'arm64 i386'
config.build_settings["CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"] = 'YES'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',

View file

@ -8,13 +8,13 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
18EB8101724ECEB31DC90D37 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4823A1A443F8115651A6C0E8 /* Pods_Runner.framework */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
609046320A2D7D2B0D36583B /* Pods_FluffyChat_Share.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EB6E6475A19949A37A2634 /* Pods_FluffyChat_Share.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
AB0F2865DE230DE37373E0E0 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50DEFC207B70632D9C56ED78 /* Pods_Runner.framework */; };
C1005C45261071B5002F4F32 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1005C44261071B5002F4F32 /* ShareViewController.swift */; };
C1005C48261071B5002F4F32 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C1005C46261071B5002F4F32 /* MainInterface.storyboard */; };
C1005C4C261071B5002F4F32 /* FluffyChat Share.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = C1005C42261071B5002F4F32 /* FluffyChat Share.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
@ -65,7 +65,7 @@
58F7B95D036AD8E67B27588D /* Pods-FluffyChat Share.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FluffyChat Share.profile.xcconfig"; path = "Target Support Files/Pods-FluffyChat Share/Pods-FluffyChat Share.profile.xcconfig"; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
76737C9A857D5FD6D2634A3F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
759F206BF204861B5B71F335 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
@ -74,7 +74,6 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9DB2F3524376810E74C799A8 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
C1005C42261071B5002F4F32 /* FluffyChat Share.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "FluffyChat Share.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
C1005C44261071B5002F4F32 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = "<group>"; };
C1005C47261071B5002F4F32 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = "<group>"; };
@ -93,7 +92,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
AB0F2865DE230DE37373E0E0 /* Pods_Runner.framework in Frameworks */,
18EB8101724ECEB31DC90D37 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -136,7 +135,7 @@
C1005C43261071B5002F4F32 /* FluffyChat Share */,
97C146EF1CF9000F007C117D /* Products */,
E89DCAC000D371640E94E65B /* Pods */,
075EE1BE25359E34308E0B78 /* Frameworks */,
E4B51FC6310E8231ADAAC605 /* Frameworks */,
);
sourceTree = "<group>";
};
@ -178,6 +177,14 @@
path = "FluffyChat Share";
sourceTree = "<group>";
};
E4B51FC6310E8231ADAAC605 /* Frameworks */ = {
isa = PBXGroup;
children = (
4823A1A443F8115651A6C0E8 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
E89DCAC000D371640E94E65B /* Pods */ = {
isa = PBXGroup;
children = (
@ -198,7 +205,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
8C9CCA7C5C45651F90C7BFDD /* [CP] Check Pods Manifest.lock */,
57BA887B93F55975BC09DE22 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
@ -300,21 +307,21 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
064CBD7CE0D4CD6850C6880A /* [CP] Copy Pods Resources */ = {
1060C2E30AD33D0478B4AC6F /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
@ -355,7 +362,7 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
8C9CCA7C5C45651F90C7BFDD /* [CP] Check Pods Manifest.lock */ = {
57BA887B93F55975BC09DE22 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -392,21 +399,21 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
};
F9C8EE392B9AB471149C306E /* [CP] Embed Pods Frameworks */ = {
AC8E42A36E415621723720E8 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@ -472,6 +479,7 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;

View file

@ -1,8 +1,8 @@
app_identifier("im.fluffychat.app") # The bundle identifier of your app
apple_id("christian-kussowski@posteo.de") # Your Apple email address
app_identifier("com.talktolearn.chat") # The bundle identifier of your app
apple_id("wcjord@email.wm.edu") # Your Apple email address
itc_team_id("122628977") # App Store Connect Team ID
team_id("4NXF6Z997G") # Developer Portal Team ID
itc_team_id("118720606") # App Store Connect Team ID
team_id("PJ8L5H7L7H") # Developer Portal Team ID
# For more information about the Appfile, see:
# https://docs.fastlane.tools/advanced/#appfile

View file

@ -18,6 +18,16 @@ default_platform(:ios)
platform :ios do
desc "Push a new beta build to TestFlight"
lane :beta do
api_key = app_store_connect_api_key(
key_id: ENV["APP_STORE_CONNECT_API_KEY_KEY_ID"],
issuer_id: ENV["APP_STORE_CONNECT_API_KEY_ISSUER_ID"],
key_content: ENV["APP_STORE_CONNECT_API_KEY_KEY"],
is_key_content_base64: ENV["APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64"],
duration: 500, # maximum 1200
in_house: false # optional but may be required if using match/sigh
)
# TODO: latest_testflight_build_number Not working
increment_build_number(
xcodeproj: "Runner.xcodeproj",
build_number: latest_testflight_build_number + 1
@ -28,9 +38,10 @@ platform :ios do
increment_version_number(version_number: version_name)
build_app(workspace: "Runner.xcworkspace", scheme: "Runner")
upload_to_testflight(
ipa: "../build/ios/ipa/pangeachat.ipa", # Verify location
distribute_external: true,
groups: "FluffyChat Betatest",
changelog: "This is a release candidate for FluffyChat. Please test if the app is overall in a good condition before we push this to production.",
groups: "App Store Connect Users",
changelog: "This is a release candidate for PangeaChat. Please test if the app is overall in a good condition before we push this to production.",
)
end
end

View file

@ -1,37 +1,43 @@
fastlane documentation
================
----
# Installation
Make sure you have the latest version of the Xcode command line tools installed:
```
```sh
xcode-select --install
```
Install _fastlane_ using
```
[sudo] gem install fastlane -NV
```
or alternatively using `brew install fastlane`
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
# Available Actions
### release
```sh
[bundle exec] fastlane release
```
fastlane release
```
----
## iOS
### ios beta
```sh
[bundle exec] fastlane ios beta
```
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).
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).

View file

@ -39,13 +39,13 @@ def getRootProjectExtOrCoreProperty(name, firebaseCoreProject) {
}
android {
compileSdkVersion 30
compileSdkVersion 34
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
minSdkVersion 16
minSdkVersion 21
}
lintOptions {
disable 'InvalidPackage'

View file

@ -604,10 +604,10 @@ packages:
dependency: "direct main"
description:
name: firebase_messaging
sha256: "2d0ea2234ce46030eda2e6922611115ce603adc614ebd8c00e7db06a8929efbb"
sha256: "4d0968ecb860d7baa15a6e2af3469ec5b0d959e51c59ce84a52b0f7632a4aa5a"
url: "https://pub.dev"
source: hosted
version: "15.0.1"
version: "15.1.5"
firebase_messaging_platform_interface:
dependency: transitive
description:

View file

@ -118,7 +118,7 @@ dependencies:
fl_chart: ^0.67.0
firebase_analytics: ^11.0.1
firebase_core: ^3.1.0
firebase_messaging: ^15.0.1
firebase_messaging: ^15.1.5
flutter_dotenv: ^5.1.0
fcm_shared_isolate:
path: pangea_packages/fcm_shared_isolate

View file

@ -1,11 +1,11 @@
#!/usr/bin/env bash
cd android
echo $FDROID_KEY | base64 --decode --ignore-garbage > key.jks
echo "storePassword=${FDROID_KEY_PASS}" >> key.properties
echo "keyPassword=${FDROID_KEY_PASS}" >> key.properties
echo "keyAlias=key" >> key.properties
echo $PLAY_STORE_UPLOAD_KEY | base64 --decode > key.jks
echo "storePassword=${PLAY_STORE_KEYSTORE_STORE_PASSWORD}" >> key.properties
echo "keyPassword=${PLAY_STORE_KEYSTORE_KEY_PASSWORD}" >> key.properties
echo "keyAlias=${PLAY_STORE_KEYSTORE_KEY_ALIAS}" >> key.properties
echo "storeFile=../key.jks" >> key.properties
echo $PLAYSTORE_DEPLOY_KEY >> keys.json
echo $PLAY_STORE_CONFIG_JSON | base64 --decode > keys.json
ls | grep key
bundle install
bundle update fastlane

View file

@ -1,5 +1,5 @@
#!/bin/sh -ve
git apply ./scripts/enable-android-google-services.patch
# git apply ./scripts/enable-android-google-services.patch
rm -rf fonts/NotoEmoji
yq -i 'del( .flutter.fonts[] | select(.family == "NotoEmoji") )' pubspec.yaml
flutter clean
@ -7,8 +7,6 @@ flutter pub get
cd ios
rm -rf Pods
rm -f Podfile.lock
arch -x86_64 pod install
arch -x86_64 pod update
cd ..
flutter build ios --release
cd ios