diff --git a/.gitea/workflows/frontend_deploy-beta.yaml b/.gitea/workflows/frontend_deploy-beta.yaml new file mode 100644 index 0000000..6eb6c95 --- /dev/null +++ b/.gitea/workflows/frontend_deploy-beta.yaml @@ -0,0 +1,51 @@ +on: + pull_request: + branches: + - main + paths: + - frontend/** + +name: Build and release release apps to production track + +jobs: + get-version: + name: Get version + runs-on: macos + steps: + - uses: https://gitea.com/actions/checkout@v4 + - name: Fetch tags from main branch + # since this workflow is triggered by a pull request, we want to match the latest tag of the main branch + id: version + run: | + git fetch origin main --tags + LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) + # remove the 'v' prefix from the tag name + echo "BUILD_NAME=${LATEST_TAG//v}" >> $GITHUB_ENV + + build-android: + name: Build and upload android app + uses: ./.gitea/workflows/workflow_build-app-android.yaml + with: + build_type: beta + build_name: ${{ env.BUILD_NAME }} + secrets: + ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }} + ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }} + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }} + needs: get-version + + build-ios: + name: Build and upload ios app + uses: ./.gitea/workflows/workflow_build-app-ios.yaml + with: + build_type: beta + build_name: ${{ env.BUILD_NAME }} + secrets: + IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} + IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} + IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }} + IOS_MATCH_REPO_SSH_KEY_BASE64: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }} + IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }} + IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }} + needs: get-version diff --git a/.gitea/workflows/frontend_deploy-release.yaml b/.gitea/workflows/frontend_deploy-release.yaml new file mode 100644 index 0000000..f4262fa --- /dev/null +++ b/.gitea/workflows/frontend_deploy-release.yaml @@ -0,0 +1,49 @@ +on: + push: + tags: + - v* + +name: Build and release release apps to production track + +jobs: + get-version: + name: Get version + runs-on: macos + steps: + - uses: https://gitea.com/actions/checkout@v4 + - name: Get version from git tag + id: version + env: + REF_NAME: ${{ gitea.ref_name }} + # remove the 'v' prefix from the tag name + run: | + echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV + + + build-android: + name: Build and upload android app + uses: ./.gitea/workflows/workflow_build-app-android.yaml + with: + build_type: release + build_name: ${{ env.BUILD_NAME }} + secrets: + ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }} + ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }} + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }} + needs: get-version + + build-ios: + name: Build and upload ios app + uses: ./.gitea/workflows/workflow_build-app-ios.yaml + with: + build_type: release + build_name: ${{ env.BUILD_NAME }} + secrets: + IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} + IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} + IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }} + IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }} + IOS_MATCH_REPO_SSH_KEY_BASE64: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }} + IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }} + needs: get-version diff --git a/.gitea/workflows/frontend_build-app-android.yaml b/.gitea/workflows/workflow_build-app-android.yaml similarity index 71% rename from .gitea/workflows/frontend_build-app-android.yaml rename to .gitea/workflows/workflow_build-app-android.yaml index bf234ed..2455bfb 100644 --- a/.gitea/workflows/frontend_build-app-android.yaml +++ b/.gitea/workflows/workflow_build-app-android.yaml @@ -1,18 +1,30 @@ on: - pull_request: - branches: - - main - paths: - - frontend/** + workflow_call: + inputs: + build_type: + description: 'Release type (release, beta)' + required: true + type: string + build_name: + description: 'Build name' + required: true + type: string + secrets: + ANDROID_SECRET_PROPERTIES_BASE64: + required: true + ANDROID_GOOGLE_PLAY_JSON_BASE64: + required: true + ANDROID_KEYSTORE_BASE64: + required: true + ANDROID_GOOGLE_MAPS_API_KEY: + required: true - -name: Build and release debug APK +name: Build and release android appbundle to specfied track defaults: run: working-directory: frontend/android - jobs: build: runs-on: macos @@ -52,14 +64,6 @@ jobs: ruby-version: 3.3 bundler-cache: true # runs 'bundle install' and caches installed gems automatically - - name: Infer version number from git tag - id: version - env: - REF_NAME: ${{ gitea.ref_name }} - run: - # remove the 'v' prefix from the tag name - echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV - - name: Add required secret files run: | echo "${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}" | base64 -d > secrets.properties @@ -67,8 +71,8 @@ jobs: echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > release.keystore - name: Run fastlane lane - run: bundle exec fastlane deploy_beta + run: bundle exec fastlane deploy_${{ inputs.build_type }} env: BUILD_NUMBER: ${{ gitea.run_number }} - # BUILD_NAME is implicitly available + BUILD_NAME: ${{ inputs.build_name }} ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }} diff --git a/.gitea/workflows/frontend_build-app-ios.yaml b/.gitea/workflows/workflow_build-app-ios.yaml similarity index 67% rename from .gitea/workflows/frontend_build-app-ios.yaml rename to .gitea/workflows/workflow_build-app-ios.yaml index bb60e79..6384c86 100644 --- a/.gitea/workflows/frontend_build-app-ios.yaml +++ b/.gitea/workflows/workflow_build-app-ios.yaml @@ -1,11 +1,29 @@ on: - pull_request: - branches: - - main - paths: - - frontend/** + workflow_call: + inputs: + build_type: + description: 'Release type (release, beta)' + required: true + type: string + build_name: + description: 'Build name' + required: true + type: string + secrets: + IOS_ASC_KEY_ID: + required: true + IOS_ASC_ISSUER_ID: + required: true + IOS_ASC_KEY: + required: true + IOS_MATCH_REPO_SSH_KEY_BASE64: + required: true + IOS_MATCH_PASSWORD: + required: true + IOS_GOOGLE_MAPS_API_KEY: + required: true -name: Build and release debugging app to ios testflight +name: Build and release ipa to specified track defaults: run: @@ -29,26 +47,18 @@ jobs: architecture: x64 cache: true - - name: Install dependencies and clean up - run: | - flutter pub get - bundle exec pod install - flutter clean - bundle exec pod cache clean --all - - name: Set up ruby env uses: https://github.com/ruby/setup-ruby@v1 with: ruby-version: 3.3 bundler-cache: true # runs 'bundle install' and caches installed gems automatically - - name: Infer version number from git tag - id: version - env: - REF_NAME: ${{ gitea.ref_name }} - run: - # remove the 'v' prefix from the tag name - echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV + - name: Install dependencies and clean up + run: | + flutter pub get + bundle exec pod install --allow-root + flutter clean + bundle exec pod cache clean --all --allow-root - name: Setup SSH key for match git repo # and mark the host as known @@ -60,11 +70,10 @@ jobs: MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }} - name: Run fastlane lane - run: bundle exec fastlane deploy_beta + run: bundle exec fastlane deploy_${{ inputs.build_type }} env: BUILD_NUMBER: ${{ gitea.run_number }} - # BUILD_NAME is implicitly available - GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }} + BUILD_NAME: ${{ inputs.build_name }} IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }} diff --git a/frontend/README.md b/frontend/README.md index 740cf1e..dc91aeb 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -17,15 +17,9 @@ flutter pub get ``` ## Development -### ... -### Icons and logos -The application uses a custom launcher icon and splash screen. These are managed platform-independently using the `flutter_launcher_icons` package. - -To update the icons, change the `flutter_launcher_icons.yaml` configuration file. Especially the `image_path` is relevant. Then run -```bash -dart run flutter_launcher_icons -``` +### TODO +## Deployment and metadata ### Deploying a new version To truly deploy a new version of the application, i.e. to the official app stores, a special CI step is required. This listens for new tags. To create a new tag position yourself on the main branch and run ```bash @@ -34,6 +28,18 @@ git push origin v ``` We adhere to the [Semantic Versioning](https://semver.org/) standard, so the tag should be of the form `v0.1.8` for example. +### Icons and logos +The application uses a custom launcher icon and splash screen. These are managed platform-independently using the `flutter_launcher_icons` package. + +To update the icons, change the `flutter_launcher_icons.yaml` configuration file. Especially the `image_path` is relevant. Then run +```bash +dart run flutter_launcher_icons +``` +### Other metadata +Fastlane provides mechanisms to update the metadata of the application. This includes the name, description, screenshots, etc. The metadata is stored in the `fastlane/metadata` directory of both the `android`and the `ios` version of the application. Both versions have different structures but **they should be kept in sync**. For more information see the [fastlane documentation](https://docs.fastlane.tools/): +- https://docs.fastlane.tools/actions/deliver/ +- https://docs.fastlane.tools/actions/supply/ + ## Fastlane - in depth The application is deployed to the Google Play Store and the Apple App Store using fastlane: [https://docs.fastlane.tools/](https://docs.fastlane.tools/) @@ -46,16 +52,17 @@ bundle exec fastlane ``` This is reused in the CI/CD pipeline to automate the deployment process. -Secrets used by fastlane are stored on hashicorp vault and are fetched by the CI/CD pipeline. See below. ## Secrets -These are mostly used by the CI/CD pipeline to deploy the application. The main usage for github actions is documented under [https://github.com/hashicorp/vault-action](https://github.com/hashicorp/vault-action). +These are used by the CI/CD pipeline to deploy the application. **Platform-specific secrets** are used by the CI/CD pipeline to deploy to the respective app stores. -- `GOOGLE_MAPS_API_KEY` is used to authenticate with the Google Maps API and is scoped to the android platform +- `ANDROID_GOOGLE_MAPS_API_KEY` is used to authenticate with the Google Maps API and is scoped to the android platform - `ANDROID_KEYSTORE` is used to sign the android apk - `ANDROID_GOOGLE_KEY` is used to authenticate with the Google Play Store api - `IOS_GOOGLE_MAPS_API_KEY` is used to authenticate with the Google Maps API and is scoped to the ios platform -- `IOS_GOOGLE_...` -- `IOS_GOOGLE_...` -- `IOS_GOOGLE_...` \ No newline at end of file +- `IOS_ASC_ISSUER_ID` is used to authenticate with the App Store Connect API +- `IOS_ASC_KEY` as well +- `IOS_ASC_KEY_ID` as well +- `IOS_MATCH_PASSWORD` is used by fastlane match to download the certificates +- `IOS_MATCH_REPO_SSH_KEY_BASE64` is used to authenticate with the git repository where the certificates are stored diff --git a/frontend/android/fastlane/Fastfile b/frontend/android/fastlane/Fastfile index 326cf13..d61c34c 100644 --- a/frontend/android/fastlane/Fastfile +++ b/frontend/android/fastlane/Fastfile @@ -48,6 +48,7 @@ platform :android do skip_upload_apk: true, skip_upload_changelogs: true, aab: "../build/app/outputs/bundle/release/app-release.aab", + metadata_path: "fastlane/metadata", ) end end diff --git a/frontend/android/fastlane/metadata/android/en-US/full_description.txt b/frontend/android/fastlane/metadata/android/en-US/full_description.txt index 9091b15..bd47d23 100644 --- a/frontend/android/fastlane/metadata/android/en-US/full_description.txt +++ b/frontend/android/fastlane/metadata/android/en-US/full_description.txt @@ -1,7 +1,7 @@ -AnyWay - plan city trips your way +AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify preferences and constraints and anyway generates a personalized itinerary just for you. -AnyWay is a mobile application that helps users plan city trips. The app allows users to specify their preferences and constraints, and then generates a personalized itinerary for them. The planning follows some guiding principles: -- **Personalization**:The user's preferences should be reflected in the choice of destinations. -- **Efficiency**:The itinerary should be optimized for the user's constraints. -- **Flexibility**: We aknowledge that tourism is a dynamic activity, and that users may want to change their plans on the go. -- **Discoverability**: Tourism is an inherently exploratory activity. Once a rough itinerary is generated, detours and spontaneous decisions should be encouraged. \ No newline at end of file +Anyway follows these core principles: +- **Personalization**: Trips should be match your interests - not just the most popular destinations. +- **Efficiency**: Don't just walk in circles! Anyway creates the most efficient route for you. +- **Flexibility**: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go. +- **Discoverability**: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions. diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-01.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-01.png new file mode 100644 index 0000000..d40a5d2 Binary files /dev/null and b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-01.png differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-02.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-02.png new file mode 100644 index 0000000..6d5c37d Binary files /dev/null and b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-02.png differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-03.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-03.png new file mode 100644 index 0000000..20f391c Binary files /dev/null and b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-03.png differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-04.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-04.png new file mode 100644 index 0000000..d0c3bc1 Binary files /dev/null and b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Android Phones 169-04.png differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161254_anyway.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161254_anyway.png deleted file mode 100755 index 92bf43c..0000000 Binary files a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161254_anyway.png and /dev/null differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161325_anyway.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161325_anyway.png deleted file mode 100755 index 10475c4..0000000 Binary files a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161325_anyway.png and /dev/null differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161337_anyway.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161337_anyway.png deleted file mode 100755 index b8e7044..0000000 Binary files a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161337_anyway.png and /dev/null differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161641_anyway.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161641_anyway.png deleted file mode 100755 index bd41dea..0000000 Binary files a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161641_anyway.png and /dev/null differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161653_anyway.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161653_anyway.png deleted file mode 100755 index 20e6e06..0000000 Binary files a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161653_anyway.png and /dev/null differ diff --git a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161848_anyway.png b/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161848_anyway.png deleted file mode 100755 index 9dff511..0000000 Binary files a/frontend/android/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_20240925-161848_anyway.png and /dev/null differ diff --git a/frontend/ios/fastlane/Deliverfile b/frontend/ios/fastlane/Deliverfile new file mode 100644 index 0000000..74739f7 --- /dev/null +++ b/frontend/ios/fastlane/Deliverfile @@ -0,0 +1,3 @@ +# The Deliverfile allows you to store various App Store Connect metadata +# For more information, check out the docs +# https://docs.fastlane.tools/actions/deliver/ diff --git a/frontend/ios/fastlane/Fastfile b/frontend/ios/fastlane/Fastfile index 9d10687..f78bd61 100644 --- a/frontend/ios/fastlane/Fastfile +++ b/frontend/ios/fastlane/Fastfile @@ -99,8 +99,9 @@ platform :ios do ) upload_to_app_store( - skip_screenshots: true, - skip_metadata: true, + overwrite_screenshots: true, + metadata_path: "fastlane/metadata", + screenshot_path: "fastlane/screenshots", precheck_include_in_app_purchases: false, submit_for_review: true, diff --git a/frontend/ios/fastlane/metadata/copyright.txt b/frontend/ios/fastlane/metadata/copyright.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/copyright.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/en-US/apple_tv_privacy_policy.txt b/frontend/ios/fastlane/metadata/en-US/apple_tv_privacy_policy.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/apple_tv_privacy_policy.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/en-US/description.txt b/frontend/ios/fastlane/metadata/en-US/description.txt new file mode 100644 index 0000000..0869024 --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/description.txt @@ -0,0 +1,7 @@ +AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify preferences and constraints and anyway generates a personalized itinerary just for you. + +Anyway follows these core principles: +- **Personalization**: Trips should be match your interests - not just the most popular destinations. +- **Efficiency**: Don't just walk in circles! Anyway creates the most efficient route for you. +- **Flexibility**: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go. +- **Discoverability**: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions. diff --git a/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-01.png b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-01.png new file mode 100644 index 0000000..b1bae54 Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-01.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-02.png b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-02.png new file mode 100644 index 0000000..c2f81be Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-02.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-03.png b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-03.png new file mode 100644 index 0000000..a60d8bd Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-03.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-04.png b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-04.png new file mode 100644 index 0000000..19b2b99 Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS Phones 6.9-04.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-01.png b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-01.png new file mode 100644 index 0000000..b93f272 Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-01.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-02.png b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-02.png new file mode 100644 index 0000000..96f2e4b Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-02.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-03.png b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-03.png new file mode 100644 index 0000000..7fa77e9 Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-03.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-04.png b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-04.png new file mode 100644 index 0000000..1006ea0 Binary files /dev/null and b/frontend/ios/fastlane/metadata/en-US/iOS iPad 13-ipadPro129-04.png differ diff --git a/frontend/ios/fastlane/metadata/en-US/keywords.txt b/frontend/ios/fastlane/metadata/en-US/keywords.txt new file mode 100644 index 0000000..0da5646 --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/keywords.txt @@ -0,0 +1 @@ +tourism, cities, travel, guide diff --git a/frontend/ios/fastlane/metadata/en-US/marketing_url.txt b/frontend/ios/fastlane/metadata/en-US/marketing_url.txt new file mode 100644 index 0000000..427469c --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/marketing_url.txt @@ -0,0 +1 @@ +https://anydev.info diff --git a/frontend/ios/fastlane/metadata/en-US/name.txt b/frontend/ios/fastlane/metadata/en-US/name.txt new file mode 100644 index 0000000..4366249 --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/name.txt @@ -0,0 +1 @@ +AnyWay \ No newline at end of file diff --git a/frontend/ios/fastlane/metadata/en-US/privacy_url.txt b/frontend/ios/fastlane/metadata/en-US/privacy_url.txt new file mode 100644 index 0000000..648281d --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/privacy_url.txt @@ -0,0 +1 @@ +https://anydev.info/privacy diff --git a/frontend/ios/fastlane/metadata/en-US/promotional_text.txt b/frontend/ios/fastlane/metadata/en-US/promotional_text.txt new file mode 100644 index 0000000..77a635f --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/promotional_text.txt @@ -0,0 +1 @@ +AnyWay - plan city trips your way! diff --git a/frontend/ios/fastlane/metadata/en-US/release_notes.txt b/frontend/ios/fastlane/metadata/en-US/release_notes.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/release_notes.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/en-US/subtitle.txt b/frontend/ios/fastlane/metadata/en-US/subtitle.txt new file mode 100644 index 0000000..42d9940 --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/subtitle.txt @@ -0,0 +1 @@ +Plan city trips your way! diff --git a/frontend/ios/fastlane/metadata/en-US/support_url.txt b/frontend/ios/fastlane/metadata/en-US/support_url.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/en-US/support_url.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/primary_category.txt b/frontend/ios/fastlane/metadata/primary_category.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/primary_category.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/primary_first_sub_category.txt b/frontend/ios/fastlane/metadata/primary_first_sub_category.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/primary_first_sub_category.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/primary_second_sub_category.txt b/frontend/ios/fastlane/metadata/primary_second_sub_category.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/primary_second_sub_category.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/review_information/demo_password.txt b/frontend/ios/fastlane/metadata/review_information/demo_password.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/review_information/demo_password.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/review_information/demo_user.txt b/frontend/ios/fastlane/metadata/review_information/demo_user.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/review_information/demo_user.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/review_information/email_address.txt b/frontend/ios/fastlane/metadata/review_information/email_address.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/review_information/email_address.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/review_information/first_name.txt b/frontend/ios/fastlane/metadata/review_information/first_name.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/review_information/first_name.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/review_information/last_name.txt b/frontend/ios/fastlane/metadata/review_information/last_name.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/review_information/last_name.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/review_information/notes.txt b/frontend/ios/fastlane/metadata/review_information/notes.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/review_information/notes.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/review_information/phone_number.txt b/frontend/ios/fastlane/metadata/review_information/phone_number.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/review_information/phone_number.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/secondary_category.txt b/frontend/ios/fastlane/metadata/secondary_category.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/secondary_category.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/secondary_first_sub_category.txt b/frontend/ios/fastlane/metadata/secondary_first_sub_category.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/secondary_first_sub_category.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/metadata/secondary_second_sub_category.txt b/frontend/ios/fastlane/metadata/secondary_second_sub_category.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/ios/fastlane/metadata/secondary_second_sub_category.txt @@ -0,0 +1 @@ + diff --git a/frontend/ios/fastlane/screenshots/README.txt b/frontend/ios/fastlane/screenshots/README.txt new file mode 100644 index 0000000..948c580 --- /dev/null +++ b/frontend/ios/fastlane/screenshots/README.txt @@ -0,0 +1,30 @@ +## Screenshots Naming Rules + +Put all screenshots you want to use inside the folder of its language (e.g. `en-US`). +The device type will automatically be recognized using the image resolution. + +The screenshots can be named whatever you want, but keep in mind they are sorted +alphabetically, in a human-friendly way. See https://github.com/fastlane/fastlane/pull/18200 for more details. + +### Exceptions + +#### iPad Pro (3rd Gen) 12.9" + +Since iPad Pro (3rd Gen) 12.9" and iPad Pro (2nd Gen) 12.9" have the same image +resolution, screenshots of the iPad Pro (3rd gen) 12.9" must contain either the +string `iPad Pro (12.9-inch) (3rd generation)`, `IPAD_PRO_3GEN_129`, or `ipadPro129` +(App Store Connect's internal naming of the display family for the 3rd generation iPad Pro) +in its filename to be assigned the correct display family and to be uploaded to +the correct screenshot slot in your app's metadata. + +### Other Platforms + +#### Apple TV + +Apple TV screenshots should be stored in a subdirectory named `appleTV` with language +folders inside of it. + +#### iMessage + +iMessage screenshots, like the Apple TV ones, should also be stored in a subdirectory +named `iMessage`, with language folders inside of it. diff --git a/status b/status deleted file mode 100644 index 61bfc53..0000000 --- a/status +++ /dev/null @@ -1,48 +0,0 @@ -error: wrong number of arguments, should be from 1 to 2 -usage: git config [] - -Config file location - --[no-]global use global config file - --[no-]system use system config file - --[no-]local use repository config file - --[no-]worktree use per-worktree config file - -f, --[no-]file - use given config file - --[no-]blob read config from given blob object - -Action - --[no-]get get value: name [value-pattern] - --[no-]get-all get all values: key [value-pattern] - --[no-]get-regexp get values for regexp: name-regex [value-pattern] - --[no-]get-urlmatch get value specific for the URL: section[.var] URL - --[no-]replace-all replace all matching variables: name value [value-pattern] - --[no-]add add a new variable: name value - --[no-]unset remove a variable: name [value-pattern] - --[no-]unset-all remove all matches: name [value-pattern] - --[no-]rename-section rename section: old-name new-name - --[no-]remove-section remove a section: name - -l, --[no-]list list all - --[no-]fixed-value use string equality when comparing values to 'value-pattern' - -e, --[no-]edit open an editor - --[no-]get-color find the color configured: slot [default] - --[no-]get-colorbool find the color setting: slot [stdout-is-tty] - -Type - -t, --[no-]type - value is given this type - --bool value is "true" or "false" - --int value is decimal number - --bool-or-int value is --bool or --int - --bool-or-str value is --bool or string - --path value is a path (file or directory name) - --expiry-date value is an expiry date - -Other - -z, --[no-]null terminate values with NUL byte - --[no-]name-only show variable names only - --[no-]includes respect include directives on lookup - --[no-]show-origin show origin of config (file, standard input, blob, command line) - --[no-]show-scope show scope of config (worktree, local, global, system, command) - --[no-]default - with --get, use default value when missing entry -