DevSwitch - An iOS app for switching between countries on the App Store with ease.

Overview

Archived as of 24/04/2021.

Apple has again broken the URLs required for storefront switching. I've decided to archive DevSwitch due to this. If Apple ever allows these links again into the future, there are many other better choices to use such as Shortcuts to build a similar tool.


DevSwitch App Icon

DevSwitch for iOS

DevSwitch is a developer utility that allows developers to switch their storefront to easily check their app's rankings, features and more. With a list of every storefront available, DevSwitch is the ultimate storefront switching app. Bookmark your apps to easily change a store then check their localisations, reviews and features.

Key Features:

  • Siri Shortcuts
  • Quick Actions
  • Favoriting Storefronts
  • URL Schemes for inter-app integration
  • App Bookmarking

Note: DevSwitch does not function on iOS 13.0, but will on older versions on iOS or 13.1 onwards at this stage.

Follow me on Twitter at @aaron_pearce.

Buy Me a Coffee at ko-fi.com

Getting involved

Please feel free to participate in this open source project. I'd love to see Pull Requests, Bug Reports, ideas and any other positive contributions from the community!

Building the code

  1. Clone the repository:
    git clone https://github.com/aaronpearce/DevSwitch.git
  2. Pull in the project dependencies:
    cd DevSwitch
    sh ./bootstrap.sh
  3. Open DevSwitch.xcworkspace in Xcode.
  4. Build the DevSwitch scheme in Xcode.

Code Signing

If bootstrap.sh fails to correctly offer your Apple Team ID, please follow this guide to manually add it.

  1. After running the bootstrap.sh script in the setup instructions navigate to:
    DevSwitch/Configuration/Local/DevTeam.xcconfig
  2. Add your Apple Team ID in this file:
    LOCAL_DEVELOPMENT_TEAM = KL8N8XSYF4

Team IDs look identical to provisioning profile UUIDs, so make sure this is the correct one.

The entire Local directory is included in the .gitignore, so these changes are not tracked by source control. This allows code signing without making tracked changes. Updating this file will only sign the DevSwitch target for local builds.

Finding Team IDs

The easiest known way to find your team ID is to log into your Apple Developer account. After logging in, the team ID is currently shown at the end of the URL:
https://developer.apple.com/account/<TEAM ID>

Use this string literal in the above, DevTeam.xcconfig file to code sign

Thanks

Thanks to everyone for their support in development and throughout the initial review process that failed and a particular thanks to @kylehickinson for the suggestion to use Brave's .xcconfig based setup for local development signing. Credit to @jhreis for the initial implementation that I based this upon.

Flag icons were created by Freepik and are available here.

Open Source & Copying

DevSwitch is licensed under MIT so that you can use any code in your own apps, if you choose.

However, please do not ship this app under your own account. Paid or free. Not that Apple will accept it.

Comments
  • Country change stopped working. It seems Apple changed URL scheme, and country switching stopped working...

    Country change stopped working. It seems Apple changed URL scheme, and country switching stopped working...

    Describe the bug A clear and concise description of what the bug is.

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    Smartphone (please complete the following information):

    • Device: [e.g. iPhone6]
    • OS: [e.g. iOS8.1]
    • Browser [e.g. stock browser, safari]
    • Version [e.g. 22]

    Additional context Add any other context about the problem here.

    opened by luckyclan 3
  • Build error

    Build error

    Describe the bug When following the steps on the README.md:

    error: /Users/ben/ben_ws/mobile_dev/ios_dev/DevSwitch/Pods/Pods/Target Support Files/Pods-DevSwitch/Pods-DevSwitch.debug.xcconfig: unable to open file (in target "DevSwitch" in project "DevSwitch") (in target 'DevSwitch')

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    image

    opened by arkilis 2
  • App Search doesn't find my app by name

    App Search doesn't find my app by name

    I just tried out this app (greay idea and thank you for sharing, by the way!) and wanted to add my Prayer app. Thus I opened the "Apps" tab and clicked the plus button on the top right. Then I searched for "Prayer" – but my app didn't show up. I also tried the exact name of the app in English and German (my default storefront) – being "Prayer in English" and "Gebet auf Deutsch" – but it couldn't find my app. Only searching for my account name "Cihat Guenduez" showed up my app.

    Here's the US link to the app I'm talking about: https://itunes.apple.com/us/app/prayer-in-english/id1217136884?mt=8

    opened by Jeehut 2
  • Improve bootstrap script to ask or find local development team identifier

    Improve bootstrap script to ask or find local development team identifier

    Attempt to improve the bootstrap script to find or just ask for the user's local development team identifier to put into the codesigning setup for them

    enhancement help wanted 
    opened by aaronpearce 2
  • Bootstrap script needs better error checking

    Bootstrap script needs better error checking

    For developer team identifiers being saved to the local config files, we should check if you have done this before, if so, check and return some messaging for this.

    Not tied to bash for the script. I have debated Ruby or such as an alternative.

    enhancement 
    opened by aaronpearce 0
  • Fixes #6: Adds loading of developer certificates into the script, write to the file

    Fixes #6: Adds loading of developer certificates into the script, write to the file

    Basic concept of filling in the file using AWK and security per @shpakovski's suggestion.

    No error checking if sed's replacement call works currently, but it does aid with setup. Also no checks if you haven't already setup before.

    enhancement 
    opened by aaronpearce 0
  • Utilise local notifications to combine opening a storefront and app

    Utilise local notifications to combine opening a storefront and app

    When a user opens an app, offer to open it in a specific store, this will then create a two step process.

    • DevSwitch changes your storefront to the selected one
    • Then after X seconds it will show a push notification that can then open the correct app in that storefront.
    enhancement help wanted 
    opened by aaronpearce 0
  • Sort/Group By Options

    Sort/Group By Options

    Improve sorting of storefronts. Provide options for the following:

    • Group by store size/sales volumes (if we can find this information).
    • Group by continent.
    enhancement help wanted good first issue 
    opened by aaronpearce 0
Owner
Aaron Pearce
iOS Developer. HomeKit enthusiast.
Aaron Pearce
Buglife-iOS - Awesome bug reporting for iOS apps

Buglife is an awesome bug reporting SDK & web platform for iOS apps. Here's how it works: User takes a screenshot, or stops screen recording User anno

Buglife 498 Dec 17, 2022
AppLove - View iOS app reviews in multiple selected territories with translation option.

App Love Note: Swift Version 2.2 currently, will update to Swift 3/XCode 8 after cocoapods are updated to Swift 3. Features View iOS Customer App Revi

Woodie Dovich 52 Nov 19, 2022
IOS - Unofficial app for Swift Evolution

EVOlution - iOS The goal of this project is for the version 1.0 was: bring to iOS the experience provided by Swift Evolution website. Now we are shift

EVOlution App 235 Dec 19, 2022
A native Jellyfin client for Apple platforms (iOS, macOS and tvOS)

Jellyfin Swift (working title) is a native Swift app targeting all modern Apple devices (iOS, ipadOS, tvOS and macOS).

Julien Machiels 3 Jun 7, 2021
Awesome-ML - Discover, download, compile & launch different image processing & style transfer CoreML models on iOS.

⚠️ ⚠️ ⚠️ IMPORTANT: I'm no longer maintaining Awesome-ML. Awesome ML is an iOS app that is made to demonstrate different image processing CoreML model

eugene 171 Nov 8, 2022
BaseConverter-iOS - The fast and easy way to convert numbers with tons of possibilities!

BaseConverter-iOS The fast and easy way to convert numbers with tons of possibilities! With BaseConverter, convert your numbers from and to: Decimal B

Groupe MINASTE 3 Feb 8, 2022
Dash-iOS - Dash gives your iPad and iPhone instant offline access to 200+ API documentation sets

Discontinued Dash for iOS was discontinued. Please check out Dash for macOS instead. Dash for iOS Dash gives your iPad and iPhone instant offline acce

Bogdan Popescu 7.1k Dec 29, 2022
Countries - The application lists countries parsed from GeoDB Cities API and lets the user see the details of countries

Countries The application lists countries parsed from GeoDB Cities API and lets

Tuncer 0 Jan 8, 2022
Countries - Simple iOS Project for search on Countries

Do like Countries ??‍☠️ Simple iOS Project for search on Countries The project c

Amir Ardalan 0 Feb 27, 2022
📱📲 Navigate between view controllers with ease. 💫 🔜 More stable version (written in Swift 5) coming soon.

CoreNavigation ?? ?? Navigate between view controllers with ease. ?? ?? More stable version (written in Swift 5) coming soon. Getting Started API Refe

Aron Balog 69 Sep 21, 2022
A TimeZonePicker UIViewController similar to the iOS Settings app. Search and select from a range of cities and countries to find your most suitable time zone.

TimeZonePicker A TimeZonePicker UIViewController similar to the iOS Settings app. Search and select from a range of cities and countries to find your

Gligor Kotushevski 125 Dec 13, 2022
Convert Countries, Country Codes, Continents,... with a single line of code.

iOS · macOS · watchOS · tvOS A pure Swift library that allows you to easily convert Countries to Country Codes and Country Codes to Countries. There i

Novem 1 Feb 22, 2022
A μlibrary in Swift containing all the countries with their localized name, ISO code, phone code, country code, flag image and emoji.

CountryKit CountryKit A μlibrary in Swift containing all the countries with their localized name, ISO code, phone code, country code, flag image and e

Alessandro 24 Nov 11, 2021
An unintrusive & light-weight iOS app-theming library with support for animated theme switching.

Gestalt Gestalt is an unintrusive and light-weight framework for application theming with support for animated theme switching. Usage Let's say you wa

Vincent Esche 327 Nov 8, 2022
🍎 An App to check whether a non-App Store app is in App Store.

AppStorify ?? An App to check whether a non-App Store app is in App Store. Benfits Use App Store's upgrade mechanism instead of app's. App Store apps

seedgou 58 Dec 7, 2022
Store-App - Store app made for IOS using Swift programming language

Store-App Store app views products, cart, and using login from https://fakestore

Anas Khalil 2 Jan 1, 2022
LaiFeng IOS Live Kit,H264 and AAC Hard coding,support GPUImage Beauty, rtmp transmission,weak network lost frame,Dynamic switching rate

LFLiveKit LFLiveKit is a opensource RTMP streaming SDK for iOS. Features Background recording Support horizontal vertical recording Support Beauty Fac

null 4.3k Jan 6, 2023
Swift friendly localization and i18n with in-app language switching

Localize-Swift Localize-Swift is a simple framework that improves i18n and localization in Swift iOS apps - providing cleaner syntax and in-app langua

Roy Marmelstein 2.9k Dec 29, 2022
Simple Catalyst example (Mac idiom) of a grid-based app populated with photos, with dynamic cell layout switching

Catalyst Photo Grid Simple Catalyst example (Mac idiom) of a grid-based app populated with photos that can animate its cells between two different lay

Steven Troughton-Smith 56 Nov 14, 2022
Simple command line utility for switching audio inputs and outputs on macOS

Switch Audio Simple command line utility for switching audio inputs and outputs

Daniel Hladík 3 Nov 22, 2022