Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/martiigarcia/gesdeportiva/llms.txt

Use this file to discover all available pages before exploring further.

iOS development for gesDeportiva requires a Mac running macOS. The native layer is managed by Xcode and CocoaPods, while the JavaScript layer is served by Metro — the same bundler used for Android. The ios/Podfile declares all native iOS dependencies and wires in React Native’s CocoaPods integration scripts.
iOS development is only possible on macOS. You cannot build or run the iOS target from Linux or Windows.

Prerequisites

  • macOS — required by Xcode and the iOS build toolchain
  • Xcode — install from the Mac App Store; includes the iOS Simulator and command-line tools
  • CocoaPods — the dependency manager for native iOS libraries (gem install cocoapods)
  • Node.js and npm — to run the React Native CLI and Metro bundler
  • Ruby — CocoaPods is a Ruby gem; the project includes a .ruby-version file specifying Ruby 2.7.5 (used with rbenv, rvm, or asdf)
After installing Xcode, open it once to accept the licence agreement, then install the command-line tools:
xcode-select --install

Podfile setup

The ios/Podfile configures the CocoaPods target for gesDeportiva. It uses the React Native helpers to wire in all required native modules:
ios/Podfile
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '12.4'
install! 'cocoapods', :deterministic_uuids => false

production = ENV["PRODUCTION"] == "1"

target 'gesDeportiva' do
  config = use_native_modules!

  # Flags change depending on the env values.
  flags = get_default_flags()

  use_react_native!(
    :path => config[:reactNativePath],
    :production => production,
    :hermes_enabled => flags[:hermes_enabled],
    :fabric_enabled => flags[:fabric_enabled],
    :flipper_configuration => FlipperConfiguration.enabled,
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )

  target 'gesDeportivaTests' do
    inherit! :complete
    # Pods for testing
  end

  post_install do |installer|
    react_native_post_install(installer)
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
  end
end
Key points:
  • platform :ios, '12.4' sets the minimum deployment target to iOS 12.4
  • hermes_enabled and fabric_enabled are read from default flags — to enable Hermes, set the flag to true in the Podfile and re-run pod install
  • FlipperConfiguration.enabled wires in the Flipper debug client for debug builds
  • The post_install hook applies a workaround for Xcode 12.5 on Apple Silicon Macs

Installing pods

Whenever you first clone the repository, add a new native dependency, or update React Native, you must install (or re-install) the CocoaPods dependencies:
cd ios && pod install
This generates the ios/Pods/ directory and the gesDeportiva.xcworkspace file. Always open the .xcworkspace in Xcode — never the .xcodeproj.
If pod install fails with a Ruby or gem error, check that your Ruby version matches the version in .ruby-version (Ruby 2.7.5) and that CocoaPods is installed for that Ruby version.

Running the app

1

Install pods

cd ios && pod install
2

Start Metro (optional)

Metro starts automatically when you run the app, but you can start it separately for more control over the output:
npm start
3

Build and launch

From the project root, build and launch on the default simulator:
npm run ios
This runs react-native run-ios, which compiles the Xcode project and boots the simulator.

Simulator vs physical device

npm run ios boots the default simulator (typically the latest iPhone model). To target a specific simulator, pass the --simulator flag:
npm run ios -- --simulator="iPhone 14"
List all available simulators with:
xcrun simctl list devices

Code signing

To run gesDeportiva on a physical device or to archive for distribution, you must configure a team and bundle identifier in Xcode.
1

Open the workspace in Xcode

open ios/gesDeportiva.xcworkspace
2

Select the gesDeportiva target

In the project navigator, click on the gesDeportiva project, then select the gesDeportiva target.
3

Configure signing

Under the Signing & Capabilities tab:
  • Set Team to your Apple Developer account
  • Confirm the Bundle Identifier matches com.gesdeportiva (or update it to a unique identifier registered in your account)
For personal testing on a physical device, a free Apple ID works with automatic signing. Distribution to the App Store or TestFlight requires a paid Apple Developer Program membership.

Common issues

If pod install fails, try the following steps in order:
  1. Delete ios/Pods/ and ios/Podfile.lock, then re-run pod install
  2. Ensure your Ruby version matches .ruby-version (use rbenv install or rvm use)
  3. Update CocoaPods with gem install cocoapods and retry
On Apple Silicon Macs, you may need to run arch -x86_64 pod install if a pod does not yet have an ARM binary.
If the specified simulator name is not recognised, list available devices:
xcrun simctl list devices
Use the exact name shown in the output as the --simulator argument.
No signing certificate found or Provisioning profile not found errors indicate Xcode cannot locate a valid certificate for the selected team. Open Xcode, go to Preferences → Accounts, sign in with your Apple ID, and click Manage Certificates to create a development certificate.
Enabling or disabling Hermes requires reinstalling pods and a full clean build. After editing the Podfile:
cd ios && pod install
Then clean the build folder in Xcode with Product → Clean Build Folder (⇧⌘K) before running again.

Build docs developers (and LLMs) love