Tôi đã tích hợp Google Analytics library vào dự án của mình.Google Analytics trong iOS 8 bằng Swift không hoạt động
Sau đó, tôi đã cấu hình bridging header file và tôi đã thêm các tiêu đề sau Google Analytics
#import "Libraries/GoogleAnalytics/GAI.h"
#import "Libraries/GoogleAnalytics/GAIFields.h"
#import "Libraries/GoogleAnalytics/GAILogger.h"
#import "Libraries/GoogleAnalytics/GAITracker.h"
#import "Libraries/GoogleAnalytics/GAIDictionaryBuilder.h"
Việc khởi của thư viện trong AppDelegate.swift biên dịch và chạy một cách chính xác. tôi thêm đoạn mã sau để theo dõi một sự kiện
var tracker = GAI.sharedInstance().defaultTracker
tracker.send(GAIDictionaryBuilder.createEventWithCategory(category, action: action, label: label, value: value).build())
Khi cố gắng để tạo ra xây dựng, các lỗi sau xảy ra
Undefined symbols for architecture x86_64:
"_NSOverwriteMergePolicy", referenced from:
-[GAIDataStore contextWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
"_NSSQLiteErrorDomain", referenced from:
-[GAIDataStore performBlockAndWait:withError:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
"_NSSQLiteStoreType", referenced from:
-[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
"_OBJC_CLASS_$_NSAttributeDescription", referenced from:
objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
"_OBJC_CLASS_$_NSEntityDescription", referenced from:
objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
"_OBJC_CLASS_$_NSFetchRequest", referenced from:
objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
"_OBJC_CLASS_$_NSManagedObjectContext", referenced from:
objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
"_OBJC_CLASS_$_NSManagedObjectModel", referenced from:
objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
"_OBJC_CLASS_$_NSPersistentStoreCoordinator", referenced from:
objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
"_SCNetworkReachabilityCreateWithName", referenced from:
_kDefaultReachabilityApi in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o)
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
_kDefaultReachabilityApi in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o)
"_SCNetworkReachabilitySetCallback", referenced from:
_kDefaultReachabilityApi in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o)
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
_kDefaultReachabilityApi in libGoogleAnalyticsServices.a(GAIReachabilityChecker.o)
"_deflate", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_deflateEnd", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_deflateInit2_", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflate", referenced from:
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflateEnd", referenced from:
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflateInit2_", referenced from:
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Tôi đang sử dụng Xcode 6 GM và cố gắng để biên dịch ứng dụng đang chạy trong bộ giả lập iPhone 5s.
EDIT1:
Libraries cần đã được thêm vào
- CoreData.framework
- SystemConfiguration.framework
- libz.dylib
tôi đã giải quyết được một phần các lỗi thêm vào phần đầu bắc cầu r nộp hàng nhập khẩu sau
#import <CoreData/CoreData.h>
#import <SystemConfiguration/SystemConfiguration.h>
Các thông báo lỗi được giảm xuống
Undefined symbols for architecture x86_64:
"_deflate", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_deflateEnd", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_deflateInit2_", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflate", referenced from:
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflateEnd", referenced from:
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflateInit2_", referenced from:
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
EDIT2:
Cuối cùng tôi giải quyết được vấn đề.
Trong Cài đặt Target -> Build Settings -> Liên kết -> Flags Linker khác thêm cờ sau: -lz
Tôi chỉ cần thêm Google Analytics cho điện thoại di động để ứng dụng Swift của tôi và không phải trải qua khá nhiều hoops bạn. Tôi chỉ phải thêm GAI.h và vào tiêu đề bắc cầu và nó hoạt động tốt. Không phải fiddle với các thiết lập xây dựng. Họ có thể đã thêm hỗ trợ tốt hơn từ bài đăng của bạn. –