Skip to content

Commit f54b981

Browse files
authored
Add Rome instructions (#2014)
1 parent 9aaef71 commit f54b981

File tree

3 files changed

+100
-6
lines changed

3 files changed

+100
-6
lines changed

Carthage.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
## Context
44

55
This page introduces and provides instructions for an **experimental** Firebase
6-
[Carthage](https://github.com/Carthage/Carthage) implementation. Based on
7-
feedback and usage, the Firebase team may decide to make the Carthage
8-
distribution official.
6+
[Carthage](https://github.com/Carthage/Carthage) distribution. Based on
7+
feedback and usage, the Firebase team may decide to [make the Carthage
8+
distribution official](https://github.com/firebase/firebase-ios-sdk/issues/1862).
99

1010
Please [let us know](https://github.com/firebase/firebase-ios-sdk/issues) if you
11-
have suggestions about how best to distribute Carthage binaries that include
12-
resource bundles.
11+
have suggestions or questions.
1312

1413
## Carthage Installation
1514

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,14 @@ pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk'
6060

6161
### Carthage (iOS only)
6262

63-
An experimental Carthage distribution is now available. See
63+
Instructions for the experimental Carthage distribution are at
6464
[Carthage](Carthage.md).
6565

66+
### Rome
67+
68+
Instructions for installing binary frameworks via
69+
[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md).
70+
6671
## Development
6772

6873
Follow the subsequent instructions to develop, debug, unit test, run integration

Rome.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Firebase Rome
2+
3+
## Context
4+
5+
This page introduces and provides instructions for using Firebase via a
6+
[Rome](https://github.com/CocoaPods/Rome) distribution. Based on
7+
feedback and usage, the Firebase team may decide to make the Rome
8+
support official.
9+
10+
Please [let us know](https://github.com/firebase/firebase-ios-sdk/issues) if you
11+
have suggestions or questions.
12+
13+
## Introduction
14+
15+
Unlike regular CocoaPods, Rome does not touch the Xcode project file. It
16+
installs and builds all of the frameworks and leaves the project integration to
17+
you.
18+
19+
As a result, with Rome, the installed frameworks are all binary whether the
20+
CocoaPod itself was source or binary.
21+
22+
In comparison to Carthage, Rome supports subspecs. Therefore, you can install
23+
exactly the right frameworks customized for your requirements.
24+
25+
## Rome Installation
26+
27+
```bash
28+
$ gem install cocoapods-rome
29+
```
30+
31+
## Firebase Installation
32+
33+
1. Copy the [template Podfile](Rome/Podfile) to your project directory
34+
1. Delete any Firebase pods that you don't need
35+
1. Run `pod install`
36+
1. With the Finder `open Rome`
37+
1. Make sure you have an Xcode project open in Xcode.
38+
1. In Xcode, hit `⌘-1` to open the Project Navigator pane. It will open on
39+
left side of the Xcode window if it wasn't already open.
40+
1. Drag each framework from the Finder window into Project
41+
Navigator pane. In the dialog box that appears, make sure the target you
42+
want the framework to be added to has a checkmark next to it, and that
43+
you've selected "Copy items if needed".
44+
1. Find the dynamic frameworks: In a shell type:
45+
`file Rome/*/* | grep universal | grep dynamic`
46+
1. Drag each dynamic framework to the "Embed Frameworks" section on the
47+
Xcode Build Target's "General" page.
48+
1. If you're using FirebaseML, FirebaseInAppMessaging, FirebaseFirestore, or
49+
FirebaseInvites, find
50+
the resources to the project: `ls -ld Pods/*/Resources/*`. More details on
51+
this below.
52+
1. Drag all of those resources into the Project Navigator, just
53+
like the frameworks, again making sure that the target you want to add these
54+
resources to has a checkmark next to it, and that you've selected "Copy items
55+
if needed".
56+
1. Add the -ObjC flag to "Other Linker Settings":
57+
a. In your project settings, open the Settings panel for your target
58+
b. Go to the Build Settings tab and find the "Other Linker Flags" setting
59+
in the Linking section.
60+
c. Double-click the setting, click the '+' button, and add "-ObjC" (without
61+
quotes)
62+
1. Add Firebase.h and module support:
63+
a. In your project settings, open the Settings panel for your target
64+
b. Go to the Build Settings tab and find the "User Header Search Paths"
65+
setting in the Search Paths section.
66+
c. Double-click the setting, click the '+' button, and add
67+
`Pods/Firebase/CoreOnly/Sources`
68+
1. Make sure that the build target(s) includes your project's
69+
`GoogleService-Info.plist`
70+
([how to download config file](https://support.google.com/firebase/answer/7015592)).
71+
1. You're done! Compile your target and start using Firebase.
72+
73+
## Firebase Resource Details
74+
- If you're including a Firebase component that has resources, copy its bundles
75+
into the Xcode project and make sure they're added to the
76+
`Copy Bundle Resources` Build Phase :
77+
- For Firestore:
78+
- ./Rome/GRPCClient.framework/gRPCCertificates.bundle
79+
- For InAppMessagingDisplay:
80+
- ./Rome/FirebaseInAppMessagingDisplay.framework/InAppMessagingDisplayResources.bundle
81+
- For Invites:
82+
- ./Pods/FirebaseInvites/Resources/GINInviteResources.bundle
83+
- ./Pods/FirebaseInvites/Resources/GPPACLPickerResources.bundle
84+
- ./Pods/GoogleSignIn/Resources/GoogleSignIn.bundle
85+
- For FirebaseMLVisionFaceModel:
86+
- ./Pods/GoogleMobileVision/FaceDetector/Resources/GoogleMVFaceDetectorResources
87+
- For FirebaseMLVisionTextModel:
88+
- ./Pods/GoogleMobileVision/TextDetector/Resources/GoogleMVTextDetectorResources
89+
- For the FirebaseML resources, a bundle needs to be created. TBD better
90+
instructions here.

0 commit comments

Comments
 (0)