Files
firebase-ios-sdk/Firestore
Gil e404054a9f Refactor and clean up the CMake build ahead of CMake/iOS support (#5051)
* Use early exit in objc_framework CMakeLists.txt

* Clean up objc_framework CMakeLists.txt

  * Use `version` consistently
  * Use `firebase_ios_version` for the repo-level version
  * Remove INCLUDE directories that are no longer needed
  * Sort dependencies

* Simplify Example/App/CMakeLists.txt

  * Add `OBJC_FLAGS` directly, avoiding a separate `sources` variable.
  * Add resources directly

* Rename test host app to firebase_firestore_example_app

* Add a firebase_ios prefix to functions and variables

This reduces the chance of collision with other projects.

* Simplify compiler_setup

Now that compiler_setup.cmake no longer has side-effects, fold
compiler_id.cmake and archive_options.cmake into it and move
the include of compiler_setup up to the top of the main build.
2020-03-10 20:50:13 -07:00
..

Usage

  • Install prerequisite software
  • Set up a workspace via CocoaPods
    $ cd Firestore/Example
    $ pod update
    $ open Firestore.xcworkspace
    
  • Select the Firestore_Tests_iOS scheme
  • ⌘-u to build and run the unit tests

Running Integration Tests

  • Set up a GoogleServices-Info.plist file in Firestore/Example/App.
  • In Xcode select the Firestore_IntegrationTests_iOS scheme
  • ⌘-u to build and run the integration tests

Running Integration Tests - using the Firestore Emulator

Note: this does not give full coverage, but is much faster than above. b/hotlists/1578399 tracks outstanding issues.

  • Ensure that GoogleServices-Info.plist is back in its default state (git checkout Firestore/Example/App/GoogleServices-Info.plist).
  • Install the Firebase CLI. Essentially:
    npm install -g firebase-tools
    
  • Install the Firestore emulator. Essentially:
    firebase setup:emulators:firestore
    
  • Run the emulator
    firebase serve --only firestore
    
  • In Xcode select the Firestore_IntegrationTests_iOS scheme
  • ⌘-u to build and run the integration tests

Building Protos

Typically you should not need to worrying about regenerating the C++ files from the .proto files. If you do, see instructions at Protos/README.md.