2015-05-03 15 views
18

Sử dụng cụm ca cao 0.37.0 trong dự án Swift, với use_frameworks! đặt trong tệp podfile, tôi không thể truy cập tệp tiêu đề cho nhóm GoogleAnalytics-iOS-SDK.Không thể tìm tiêu đề cho GoogleAnalytics-iOS-SDK với Cocoapods 0,37, Swift, khuôn khổ

Làm cách nào để truy cập vào tiêu đề của nhóm Google Analytics trong ứng dụng của tôi?

Tôi đã thử;

import GoogleAnalytics_iOS_SDK 

Trong tệp Swift, cocoapods 0,36 kiểu. Nhưng không có khung được tạo ra nữa nên không tốt.

#import <GoogleAnalytics_iOS_SDK/GAI.h> 

Trong header cầu nối, nhưng không hoạt động (không có bản đồ mô-đun?)


Tôi đã đọc rằng hành vi cho vỏ mà chỉ bao gồm tiêu đề trong họ 'sourse_files' thay đổi trong cocoapods 0,37 (see this commit). Điều này dường như là để đáp ứng với các vấn đề mà use_frameworks gây ra với các vỏ trong 0.36 (see this SO question).

Với thay đổi này trong hành vi Cocoapod, thư viện tĩnh được tích hợp chính xác (không phải với 0,36), các biểu tượng được biên dịch vào ứng dụng và có sẵn khi chạy. Nhưng tôi không có quyền truy cập vào các tiêu đề.

+1

Bạn có hoạt động không? Tôi nhận được lỗi tại #import -> tệp không tìm thấy –

+0

@ techsavvy vui lòng đọc câu trả lời được chấp nhận, nó giải thích cách giải quyết. – alexkent

Trả lời

28

Đây là một lỗi trong Cocoapods 0.37.0. Nó đã được đăng nhập theo dõi của họ là issue #3499.

Cách giải quyết

  • Thêm $(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK đến User Header Search Paths (thiết lập để đệ quy) trong mục tiêu ứng dụng của Build Settings.
  • Reference header Google Analytics trực tiếp trong Bridging header với #import "GAI.h"
+4

Tôi rất không hài lòng khi phải thêm tiêu đề bắc cầu cho điều này, nhưng có vẻ như đây là tùy chọn hợp lệ duy nhất hiện tại. –

+0

Cảm ơn, điều này đã giúp tôi tiết kiệm rất nhiều thời gian! – Joel

+0

Sự cố này có thể vẫn ở trong CocoaPods 0.39.0, hiện tôi đang sử dụng. Tôi đã thêm Đường dẫn Tìm kiếm Tiêu đề Người dùng và nó hoạt động, nhưng dường như tôi không thể làm cho GGLContext hoạt động do lỗi. Dù sao, cảm ơn một bó, đã cứu tôi rất nhiều tóc vì tôi sắp sửa xé hết mọi thứ trong sự thất vọng. – ClockWise

2

Tôi không biết đây có phải là câu trả lời chính xác hay không, nhưng cách chúng tôi làm việc đó là nhập thủ công libGoogleAnalyticsServices.a và không qua cocoapod.

Xác định vị trí libGoogleAnalyticsServices.a và kéo nó vào dự án, sau đó thêm nó vào Linked Frameworks and Libraries (nếu nó chưa có) và bạn tốt để đi. Đừng quên xóa nó khỏi số Podfile của bạn.

chỉnh sửa:
Đừng quên để thêm các tập tin tiêu đề để bạn cầu nối-header

+0

Cảm ơn, đây là kế hoạch dự phòng của tôi. Tôi muốn làm việc với Cocoapods, vì vậy tôi sẽ để câu hỏi mở lâu hơn một chút. – alexkent

3

Lừa khác là để thêm đường dẫn tương đối dài (s) để header cầu nối.

này tránh được việc phải thay đổi các thiết lập có thể được ghi đè lần sau khi bạn chạy dự án 'pod cài đặt ':

#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h" 
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h" 
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h" 

Nó cũng hoạt động khi chạy thử nghiệm đơn vị của bạn quá, mà giải pháp khác tôi đã cố gắng didn' t.

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