CocoaPods를 사용하지 않고 React Native 프로젝트를 Firebase와 연결

하고 싶은 일



ReactNative로 구축한 앱을 Firebase와 연계하고 싶습니다!
결국 DynamicLink를 사용하고 싶다는 이유입니다.
(DynamicLink 자체는 다른 기사에 쓰려고 생각한다)

그리고 이번에는 CocoaPods를 사용하지 않는다는 묶음이 있습니다. ← 이것 중요
보통 구구하면 pod install 를 겨우 죽을 정도로 나옵니다.

그러나! !

CocoaPods 넣으면 불필요한 의존성이 증가한다는 큰 단점이 있습니다.
그래도, yarn이나 npm라든지로 관리하고 있는 패키지의 의존관계가 조금이라도 이상하다고 ReactNative는 빌드로 곧 죽습니다만, CocoaPods 넣은 날에는 이미 릴리스 빌드는 30년 정도 걸립니다.

그래서 이번에는 CocoaPods를 사용하지 않고 firebase와 연계합니다.
(Firebase의 공식에서는 추천은 pod install

아래 준비


react-native init 에서 react-native run-ios에서 빌드 성공을 확인한 프로젝트를 준비했습니다.
↓ 아무것도 없는 사람은 이 기사의 순서로 만들어 보세요. 이것이 계속됩니다.
htps : // 코 m / 우미 보 ws / ms / 175 066c1259 f4b0158

아래와 같은 화면이 나옵니다.



협력 절차



ht tp // 렌노스케씨. 하테나 bぉg. 코m/엔트리/2018/05/29/235733
↑기본적으로는 이 사이트의 순서로 OK!

다만, 모두 말합니다만 CocoaPods는 사용하지 않습니다! 그래서
firebase 콘솔에서 설정하는 동안이 "firebase SDK 추가"는 수동으로 수행됩니다.


htps : // 푹 빠져라. 오, ぇ. 코 m / 두 cs / 이오 s / 세츠 p
1. 먼저 ↑에서 SDK를 zip으로 다운로드하여 배포
2. 펼친 "Firebase"라는 폴더를 아래 xcode 사이드바의 프로젝트 파일 바로 아래로 드래그 앤 드롭


3. 아래와 같은 화면이 나오므로 체크를 이 이미지와 같이 붙여 Finish한다
(자신은 추가한 framework의 파일군을 git에 올리고 싶었기 때문에 이렇게 했지만, 기호로, create folder reference에 체크해도 좋다고 생각한다. 하지만, search path를 정비할 필요가 생긴다)


이 상태라면 링크가 잘 되지 않아 빌드가 실패합니다.

4. 프로젝트 파일의 General → linked frameworks and libraries → +를 클릭 → Add Other → Firebase 폴더에서 필요한 라이브러리를 모두 선택하고 open


5.  AppDelegate.m#import "Firebase.h" 추가 (firebase 콘솔에서는 @import Firebase;
6.  AppDelegate.m 의 didFinishLaunchingWithOptions 안에 [FIRApp configure]; 추가 (이것은 콘솔의 지시대로 OK)

AppDelegate.m
#import "AppDelegate.h"
#import "Firebase.h"  <--------追記
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSURL *jsCodeLocation;
  [FIRApp configure];  <--------追記

  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"AwesomeApp"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

@end

여기까지 제대로 들어가면 콘솔의 마지막 설정으로 아래와 같이 제휴 완료할 것! !



덧붙여서, 수동으로 연계하고 있으므로, 빌드하려고 하면 Linking library: Mach-O linker error 가 나올지도 모른다.
「〇〇 from reference」와 같은 에러 메시지라면, General →Linked Frameworks and Libraries로부터 필요한 라이브러리를 추가하면 낫다.
아래의 경우, StoreKit.framework와 libsqlite3.0.tbd, WebKit.framework 넣으면 치료


참고로 한 페이지



htps : // 푹 빠져라. 오, ぇ. 코 m / 두 cs / 이오 s / 세츠 p
ht tp // 렌노스케씨. 하테나 bぉg. 코m/엔트리/2018/05/29/235733
htp // 우토우 g. 이오 / 2016/07/14/
htps : // / yyp t. 코 m/두쿠멘 ts/2016/09/18/x
h tp // w w. 모카코 g. 이 m / b ぉ g / 싯 친 g ぃ

좋은 웹페이지 즐겨찾기