Compare commits
	
		
			2 Commits
		
	
	
		
			v0.0.37
			...
			89ff7591b9
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 89ff7591b9 | |||
| 892adf2a09 | 
							
								
								
									
										24
									
								
								frontend/.github/workflows/build_app_ios.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								frontend/.github/workflows/build_app_ios.yaml
									
									
									
									
										vendored
									
									
								
							@@ -6,17 +6,14 @@ on:
 | 
				
			|||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: macos-latest
 | 
					    runs-on: macos-latest
 | 
				
			||||||
    env:
 | 
					 | 
				
			||||||
      # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
 | 
					 | 
				
			||||||
      BUNDLE_GEMFILE: ios/Gemfile
 | 
					 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Set up ruby env
 | 
					      - name: Set up ruby env
 | 
				
			||||||
        uses: ruby/setup-ruby@v1
 | 
					        uses: ruby/setup-ruby@v1
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          ruby-version: 3.3
 | 
					          ruby-version: 3.2.1
 | 
				
			||||||
          bundler-cache: true # runs 'bundle install' and caches installed gems automatically
 | 
					          bundler-cache: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Install Flutter
 | 
					      - name: Install Flutter
 | 
				
			||||||
        uses: subosito/flutter-action@v2
 | 
					        uses: subosito/flutter-action@v2
 | 
				
			||||||
@@ -34,24 +31,16 @@ jobs:
 | 
				
			|||||||
          echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
 | 
					          echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Setup SSH key for match git repo
 | 
					      - name: Setup SSH key for match git repo
 | 
				
			||||||
        # and mark the host as known
 | 
					        run: echo "$MATCH_REPO_SSH_KEY" | base64 --decode > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa
 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          echo $MATCH_REPO_SSH_KEY | base64 --decode > ~/.ssh/id_rsa
 | 
					 | 
				
			||||||
          chmod 600 ~/.ssh/id_rsa
 | 
					 | 
				
			||||||
          ssh-keyscan -p 2222 git.kluster.moll.re > ~/.ssh/known_hosts
 | 
					 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
          MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
 | 
					          MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Install dependencies and clean up
 | 
					      - name: Install fastlane
 | 
				
			||||||
        run: |
 | 
					        run: bundle install
 | 
				
			||||||
          flutter pub get
 | 
					 | 
				
			||||||
          bundle exec pod install
 | 
					 | 
				
			||||||
          flutter clean
 | 
					 | 
				
			||||||
          bundle exec pod cache clean --all
 | 
					 | 
				
			||||||
        working-directory: ios
 | 
					        working-directory: ios
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Run fastlane lane
 | 
					      - name: Run fastlane lane
 | 
				
			||||||
        run: bundle exec fastlane deploy_release --verbose
 | 
					        run: bundle exec fastlane deploy_release
 | 
				
			||||||
        working-directory: ios
 | 
					        working-directory: ios
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
          BUILD_NUMBER: ${{ github.run_number }}
 | 
					          BUILD_NUMBER: ${{ github.run_number }}
 | 
				
			||||||
@@ -61,4 +50,3 @@ jobs:
 | 
				
			|||||||
          IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
 | 
					          IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
 | 
				
			||||||
          IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }}
 | 
					          IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }}
 | 
				
			||||||
          MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
 | 
					          MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
 | 
				
			||||||
          IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,15 +17,9 @@ flutter pub get
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Development
 | 
					## Development
 | 
				
			||||||
### ...
 | 
					### TODO
 | 
				
			||||||
### 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
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Deployment and metadata
 | 
				
			||||||
### Deploying a new version
 | 
					### 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
 | 
					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
 | 
					```bash
 | 
				
			||||||
@@ -34,6 +28,18 @@ git push origin v<name>
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
We adhere to the [Semantic Versioning](https://semver.org/) standard, so the tag should be of the form `v0.1.8` for example. 
 | 
					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
 | 
					## 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/)
 | 
					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,22 @@ bundle exec fastlane <lane>
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
This is reused in the CI/CD pipeline to automate the deployment process.
 | 
					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 used by fastlane are stored on the github push mirror used for builds. See below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Secrets
 | 
					## 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 mostly used by the CI/CD pipeline to deploy the application. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Global secrets** are used for both versions of the app (android and ios). 
 | 
				
			||||||
 | 
					- `GOOGLE_MAPS_API_KEY` is used to authenticate with the Google Maps API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Platform-specific secrets** are used by the CI/CD pipeline to deploy to the respective app stores.
 | 
					**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_KEYSTORE_BASE64` is used to sign the android apk
 | 
				
			||||||
- `ANDROID_KEYSTORE` is used to sign the android apk
 | 
					- `ANDROID_SECRET_PROPERTIES_BASE64` contains the keystore password and key password
 | 
				
			||||||
- `ANDROID_GOOGLE_KEY` is used to authenticate with the Google Play Store api
 | 
					- `ANDROID_GOOGLE_PLAY_JSON_BASE64` 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_ASC_ISSUER_ID` is used to authenticate with the App Store Connect API
 | 
				
			||||||
- `IOS_GOOGLE_...`
 | 
					- `IOS_ASC_KEY` as well
 | 
				
			||||||
- `IOS_GOOGLE_...`
 | 
					- `IOS_ASC_KEY_ID` as well
 | 
				
			||||||
- `IOS_GOOGLE_...`
 | 
					- `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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 <our> 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:
 | 
					Anyway follows these core principles:
 | 
				
			||||||
- **Personalization**:The user's preferences should be reflected in the choice of destinations.
 | 
					- **Personalization**: Trips should be match your interests - not just the most popular destinations.
 | 
				
			||||||
- **Efficiency**:The itinerary should be optimized for the user's constraints.
 | 
					- **Efficiency**: Don't just walk in circles! Anyway creates the most efficient route for you.
 | 
				
			||||||
- **Flexibility**: We aknowledge that tourism is a dynamic activity, and that users may want to change their plans on the go.
 | 
					- **Flexibility**: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go.
 | 
				
			||||||
- **Discoverability**: Tourism is an inherently exploratory activity. Once a rough itinerary is generated, detours and spontaneous decisions should be encouraged.
 | 
					- **Discoverability**: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,15 +4,17 @@ PODS:
 | 
				
			|||||||
    - Flutter
 | 
					    - Flutter
 | 
				
			||||||
  - geolocator_apple (1.2.0):
 | 
					  - geolocator_apple (1.2.0):
 | 
				
			||||||
    - Flutter
 | 
					    - Flutter
 | 
				
			||||||
  - Google-Maps-iOS-Utils (6.1.0):
 | 
					  - Google-Maps-iOS-Utils (6.0.0):
 | 
				
			||||||
    - GoogleMaps (~> 9.0)
 | 
					    - GoogleMaps (~> 9.0)
 | 
				
			||||||
  - google_maps_flutter_ios (0.0.1):
 | 
					  - google_maps_flutter_ios (0.0.1):
 | 
				
			||||||
    - Flutter
 | 
					    - Flutter
 | 
				
			||||||
    - Google-Maps-iOS-Utils (< 7.0, >= 5.0)
 | 
					    - Google-Maps-iOS-Utils (< 7.0, >= 5.0)
 | 
				
			||||||
    - GoogleMaps (< 10.0, >= 8.4)
 | 
					    - GoogleMaps (< 10.0, >= 8.4)
 | 
				
			||||||
  - GoogleMaps (9.2.0):
 | 
					  - GoogleMaps (9.1.1):
 | 
				
			||||||
    - GoogleMaps/Maps (= 9.2.0)
 | 
					    - GoogleMaps/Maps (= 9.1.1)
 | 
				
			||||||
  - GoogleMaps/Maps (9.2.0)
 | 
					  - GoogleMaps/Base (9.1.1)
 | 
				
			||||||
 | 
					  - GoogleMaps/Maps (9.1.1):
 | 
				
			||||||
 | 
					    - GoogleMaps/Base
 | 
				
			||||||
  - map_launcher (0.0.1):
 | 
					  - map_launcher (0.0.1):
 | 
				
			||||||
    - Flutter
 | 
					    - Flutter
 | 
				
			||||||
  - path_provider_foundation (0.0.1):
 | 
					  - path_provider_foundation (0.0.1):
 | 
				
			||||||
@@ -72,9 +74,9 @@ SPEC CHECKSUMS:
 | 
				
			|||||||
  Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
 | 
					  Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
 | 
				
			||||||
  geocoding_ios: bcbdaa6bddd7d3129c9bcb8acddc5d8778689768
 | 
					  geocoding_ios: bcbdaa6bddd7d3129c9bcb8acddc5d8778689768
 | 
				
			||||||
  geolocator_apple: d981750b9f47dbdb02427e1476d9a04397beb8d9
 | 
					  geolocator_apple: d981750b9f47dbdb02427e1476d9a04397beb8d9
 | 
				
			||||||
  Google-Maps-iOS-Utils: 0a484b05ed21d88c9f9ebbacb007956edd508a96
 | 
					  Google-Maps-iOS-Utils: cfe6a0239c7ca634b7e001ad059a6707143dc8dc
 | 
				
			||||||
  google_maps_flutter_ios: 0291eb2aa252298a769b04d075e4a9d747ff7264
 | 
					  google_maps_flutter_ios: 0291eb2aa252298a769b04d075e4a9d747ff7264
 | 
				
			||||||
  GoogleMaps: 634ec3ca99698b31ca2253d64f017217d70cfb38
 | 
					  GoogleMaps: 80ea184ed6bf44139f383a8b0e248ba3ec1cc8c9
 | 
				
			||||||
  map_launcher: fe43bda6720bb73c12fcc1bdd86123ff49a4d4d6
 | 
					  map_launcher: fe43bda6720bb73c12fcc1bdd86123ff49a4d4d6
 | 
				
			||||||
  path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
 | 
					  path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
 | 
				
			||||||
  permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
 | 
					  permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
 | 
				
			||||||
@@ -82,6 +84,6 @@ SPEC CHECKSUMS:
 | 
				
			|||||||
  sqflite: c35dad70033b8862124f8337cc994a809fcd9fa3
 | 
					  sqflite: c35dad70033b8862124f8337cc994a809fcd9fa3
 | 
				
			||||||
  url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
 | 
					  url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PODFILE CHECKSUM: bd1a78910c05ac1e3a220e80f392c61ab2cc8789
 | 
					PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COCOAPODS: 1.10.2
 | 
					COCOAPODS: 1.10.2
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,9 @@ import GoogleMaps
 | 
				
			|||||||
    _ application: UIApplication,
 | 
					    _ application: UIApplication,
 | 
				
			||||||
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
 | 
					    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
 | 
				
			||||||
  ) -> Bool {
 | 
					  ) -> Bool {
 | 
				
			||||||
    GMSServices.provideAPIKey("IOS_GOOGLE_MAPS_API_KEY")
 | 
					    // load the key from env
 | 
				
			||||||
 | 
					    let key = ProcessInfo.processInfo.environment["GOOGLE_MAPS_API_KEY"]!
 | 
				
			||||||
 | 
					    GMSServices.provideAPIKey(key)
 | 
				
			||||||
    GeneratedPluginRegistrant.register(with: self)
 | 
					    GeneratedPluginRegistrant.register(with: self)
 | 
				
			||||||
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
 | 
					    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,4 +10,4 @@ IOS_ASC_ISSUER_ID="sample"
 | 
				
			|||||||
SIGNING_KEY_FILE_PATH="sample"
 | 
					SIGNING_KEY_FILE_PATH="sample"
 | 
				
			||||||
SIGNING_KEY_PASSWORD="sample"
 | 
					SIGNING_KEY_PASSWORD="sample"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IOS_GOOGLE_MAPS_API_KEY="sample"
 | 
					GOOGLE_MAPS_API_KEY="sample"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								frontend/ios/fastlane/Deliverfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								frontend/ios/fastlane/Deliverfile
									
									
									
									
									
										Normal file
									
								
							@@ -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/
 | 
				
			||||||
@@ -33,7 +33,7 @@ platform :ios do
 | 
				
			|||||||
      "flutter",
 | 
					      "flutter",
 | 
				
			||||||
      "build",
 | 
					      "build",
 | 
				
			||||||
      "ipa",
 | 
					      "ipa",
 | 
				
			||||||
      "--debug",
 | 
					      "--release",
 | 
				
			||||||
      "--build-name=#{build_name}",
 | 
					      "--build-name=#{build_name}",
 | 
				
			||||||
      "--build-number=#{build_number}",
 | 
					      "--build-number=#{build_number}",
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
@@ -44,9 +44,7 @@ platform :ios do
 | 
				
			|||||||
      archive_path: "../build/ios/archive/Runner.xcarchive"
 | 
					      archive_path: "../build/ios/archive/Runner.xcarchive"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    upload_to_testflight(
 | 
					    upload_to_testflight
 | 
				
			||||||
      skip_waiting_for_build_processing: true,
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -64,16 +62,6 @@ platform :ios do
 | 
				
			|||||||
      readonly: true,
 | 
					      readonly: true,
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # replace secrets by real values, the stupid way
 | 
					 | 
				
			||||||
    sh(
 | 
					 | 
				
			||||||
      "sed",
 | 
					 | 
				
			||||||
      "-i",
 | 
					 | 
				
			||||||
      "",
 | 
					 | 
				
			||||||
      "s/IOS_GOOGLE_MAPS_API_KEY/#{ENV["IOS_GOOGLE_MAPS_API_KEY"]}/g",
 | 
					 | 
				
			||||||
      "../Runner/AppDelegate.swift"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sh(
 | 
					    sh(
 | 
				
			||||||
      "flutter",
 | 
					      "flutter",
 | 
				
			||||||
      "build",
 | 
					      "build",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/copyright.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/copyright.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								frontend/ios/fastlane/metadata/en-US/description.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								frontend/ios/fastlane/metadata/en-US/description.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify <our> 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.
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/keywords.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/keywords.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					tourism, cities, travel, guide
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/marketing_url.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/marketing_url.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					https://anydev.info
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/name.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/name.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					AnyWay
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/privacy_url.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/privacy_url.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					https://anydev.info/privacy
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					AnyWay - plan city trips your way!
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/release_notes.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/release_notes.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/subtitle.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/subtitle.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					Plan city trips your way!
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/support_url.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/en-US/support_url.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/primary_category.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/primary_category.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								frontend/ios/fastlane/metadata/secondary_category.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/ios/fastlane/metadata/secondary_category.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								frontend/ios/fastlane/screenshots/README.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								frontend/ios/fastlane/screenshots/README.txt
									
									
									
									
									
										Normal file
									
								
							@@ -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.
 | 
				
			||||||
		Reference in New Issue
	
	Block a user