5

Sớm trong dự án này, tôi đã xảy ra lỗi khi không có tiền tố com trong số nhận dạng gói. Bây giờ tôi đã sẵn sàng để kiểm tra chuyến bay và tôi có một mã định danh gói không hợp lệ.Thay đổi ID gói cho Firebase

Hiện tại, số nhận dạng theo gói của tôi là mycompany.myProject nhưng tôi muốn nó là com.mycompany.myproject. Tôi không gặp sự cố khi chuyển sang id gói mong muốn để lưu trữ ứng dụng và tải lên cửa hàng ứng dụng.

Các bước tôi mất để chuyển đổi các ứng dụng để nhận dạng theo gói thích hợp:

  1. Tạo ứng dụng mới trong giao diện điều khiển căn cứ hỏa lực với đúng bó ID.
  2. Tải xuống Google-Info.plist của ứng dụng mới này và đặt trong dự án gốc và kéo vào dự án Xcode.
  3. Change bó định danh trên Facebook
  4. Change bó định trong cài đặt dự án

Tuy nhiên, các ứng dụng bị treo chết người với lỗi này.

*** Terminating app due to uncaught exception 'InvalidPathValidation', reason: '(child:) Must be a non-empty string and not contain '.' '#' '$' '[' or ']'' 

Các điểm mà tại đó lỗi này phát sinh là khi một phương pháp căn cứ hỏa lực được gọi là

- (NSString *) getUid { 
return [FIRAuth auth].currentUser.uid; 
} 

Phương pháp này trả về nil mà nguồn cấp dữ liệu là một phương pháp để lấy dữ liệu từ căn cứ hỏa lực. Phương thức trả về nil của phương thức này gây ra lỗi InvalidPathValidation.

Tôi đang xác thực với Facebook. Tôi nghĩ có lẽ lý do là trả lại nil là ứng dụng không biết ai đã đăng nhập, vì tôi chưa bao giờ được nhắc đăng nhập (ứng dụng của tôi sẽ kiểm tra xem bạn đã đăng nhập qua Facebook trong viewWillAppear trên ViewController mở) chưa. Tuy nhiên, điều này không có ý nghĩa bởi vì thay đổi duy nhất tôi thực hiện đã thay đổi ID gói. Tôi đã bị mắc kẹt về vấn đề này trong gần một tuần.

Tôi đặc biệt tự hỏi mình cần phải thay đổi gì để Firebase chấp nhận thay đổi số nhận dạng gói.

+0

Bạn có xóa GoogleService-Info.plist cũ không? Chỉ muốn chắc chắn rằng không có hai trong đó, và nó nhận được một sai lầm. –

+0

Tôi đã thay thế GoogleService-Info.plist cũ bằng phiên bản cập nhật. Chỉ có một tập tin trong thư mục gốc của tôi. –

Trả lời

3

Giải pháp là tạo ứng dụng mới trong cùng dự án firebase

+1

wow, thực sự không có cách nào để thay đổi ID gói trong Firebase? –

+1

Thực sự không phải là Phil. Bạn có thể thêm các dự án khác nhau vào cùng một dự án, vì một số lý do không làm việc với dự án này. Tuy nhiên, làm một dự án khác sau đó tôi đã có thể thêm nhiều ứng dụng vào cùng một dự án, không có vấn đề –

+1

Giống như @KyleGriffith nói trong bình luận của mình, tôi đã có thể khắc phục vấn đề bằng cách tạo một ứng dụng mới trong cùng một dự án. Tôi đã phải thay thế tệp GoogleService và cập nhật thông tin cho báo cáo sự cố (tạo và tải xuống tệp JSON báo cáo sự cố mới và cập nhật giai đoạn xây dựng để tham chiếu tệp mới và Id GoogleService mới). – Ryan

Các vấn đề liên quan