2015-04-27 19 views
7

Tôi gặp vấn đề sau khi cập nhật khung công tác crashlytics trong dự án của mình, thông qua ứng dụng vải dĩ nhiên, đó là lỗi liên kết, đăng nhập bên dưới.Các biểu tượng không xác định sau khi cập nhật crashlytics

Ld /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator/InternalApp.app/InternalApp normal x86_64 
cd /Users/losiennik/temp/InternalApp-ios-fork_DONOTREMOVE 
export IPHONEOS_DEPLOYMENT_TARGET=7.0 
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.3.sdk -L/Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator -F/Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator -F/Users/losiennik/temp/InternalApp-ios-fork_DONOTREMOVE -filelist /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Intermediates/InternalApp.build/Debug-iphonesimulator/InternalApp.build/Objects-normal/x86_64/InternalApp.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-AFNetworking -lPods-ActivateYourSalon -lPods-CocoaLumberjack -lPods-Foursquare-API-v2 -lPods-GZIP -lPods-MBProgressHUD -lPods-MLPAutoCompleteTextField -lPods-MTDates -lPods-UICKeyChainStore -lPods-UIResponder+KeyboardCache -lPods-WYPopoverController -lPods-zipzap -lc++ -lz -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -framework UIKit -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -stdlib=libc++ -mios-simulator-version-min=7.0 -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Intermediates/InternalApp.build/Debug-iphonesimulator/InternalApp.build/InternalApp.app.xcent -framework EventKit -framework MessageUI -framework Crashlytics -framework QuartzCore -framework MapKit -framework CoreLocation -framework CoreGraphics -framework UIKit -framework Foundation -lPods -framework Fabric -Xlinker -dependency_info -Xlinker /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Intermediates/InternalApp.build/Debug-iphonesimulator/InternalApp.build/Objects-normal/x86_64/InternalApp_dependency_info.dat -o /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator/InternalApp.app/InternalApp 

Undefined symbols for architecture x86_64: 
    "_CLSLog", referenced from: 
     -[IAPSyncManager processSuccessfulHTTPRequest] in IAPSyncManager.o 
     -[IAPLogService writeContentsOfURL:toStream:] in IAPLogService.o 
     -[IAPServerObjectMapping serializedPrimaryKeyToJSONStringFrom:forObject:] in IAPServerObjectMapping.o 
    "_CLSNSLog", referenced from: 
     ___65-[IAPWeekDashboardViewController asyncInternalAppFetchSuccess:failure:]_block_invoke in IAPWeekDashboardViewController.o 
     -[IAPSyncManager prepareForSynchronizationInForeground:] in IAPSyncManager.o 
     ___50-[IAPSyncManager reenableIdleTimerAfterTwoMinutes]_block_invoke in IAPSyncManager.o 
     -[IAPSyncManager reenableIdleTimer] in IAPSyncManager.o 
     -[IAPJSONValidator validateJSONWithError:] in IAPJSONValidator.o 
     -[IAPSynchronisationRelationship stringWithID:] in IAPSynchronisationRelationship.o 
     _POSTDataDictionary in IAPSyncConstants.o 
     ... 
    "_OBJC_CLASS_$_Crashlytics", referenced from: 
     objc-class-ref in IAPSyncManager.o 
     objc-class-ref in Crashlytics+Utilities.o 
     l_OBJC_$_CATEGORY_Crashlytics_$_Utilities in Crashlytics+Utilities.o 
     objc-class-ref in IAPAppDelegate.o 
    (maybe you meant: _OBJC_CLASS_$_CrashlyticsPlaceholderStatic) 
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 đã cố khắc phục điều đó theo nhiều cách, nhưng tôi không thể. Cách mà tôi đã cố gắng:

  • Xcode Clean hành động về dự án
  • xóa nội dung của /Users/losiennik/Library/Developer/Xcode/DerivedData
  • loại bỏ và thêm một lần nữa Crashlytics.frameworkFabric.framework trong Xcode 6.3.1 mục tiêu Build Phases từ Link Binary from Libraries
  • xóa các tập tin khuôn khổ từ dự án về thể chất và thêm lại chúng từ dự án khác nơi tôi đã cài đặt các khung từ đầu
  • xóa /var/folders content

Tôi đã thực hiện mọi kết hợp có thể có của giải pháp khả thi đó, đồng thời cũng thử chạy và giết xcode, khởi động lại hệ điều hành. Không có gì hiệu quả.

Bạn có ý tưởng nào khác không? Có lẽ ai đó biết nơi khác Xcode lưu trữ các tệp tạm thời có thể được sử dụng trong khi biên dịch và liên kết các quy trình? Do ai đó có kinh nghiệm tương tự trong khi cập nhật khuôn khổ đó?

Trả lời

3

Hóa ra nguyên nhân của sự cố liên quan đến vấn đề khác mà tôi gặp phải. Vấn đề đó gây ra rằng tôi không thể đăng ký ID ứng dụng cụ thể với trợ giúp plugin vải đã được thêm trước đó vào tài khoản tổ chức cũ của chúng tôi. Tôi đã xóa ID ứng dụng đó khỏi tổ chức cũ đó nhưng vẫn không thể thêm ID đó vào tổ chức mới.

Nhờ thành viên hỗ trợ vải, hóa ra là ID ứng dụng của tôi ở trạng thái lạ ở phía phụ trợ. Khi điều đó được sửa, ID ứng dụng của tôi xuất hiện trên tài khoản tổ chức của chúng tôi và sau đó plugin vải đã tải xuống phiên bản thích hợp của tệp Crashlytics.framework. Sau đó tôi không gặp bất kỳ vấn đề nào với Apple Mach-O Linker Error liên quan đến các tệp nhị phân Crashlytics.

Tóm tắt, khi bạn chỉ gặp vấn đề được mô tả ở trên hoặc sự cố khi thêm ID ứng dụng, hãy viết trực tiếp vào hỗ trợ vải và không lãng phí thời gian của bạn.

Cảm ơn đội ngũ vải :)!

+1

Điều đó không làm cho bất kỳ ý nghĩa nào * và không thể là vấn đề. Trạng thái của id ứng dụng của bạn trên một số máy chủ từ xa không thể ảnh hưởng đến trình liên kết theo bất kỳ cách nào. – trojanfoe

+0

Vâng, bạn nói đúng, nó cũng không có ý nghĩa gì đối với tôi trong vài ngày. Nhưng trong trường hợp cụ thể đó, plugin vải chịu trách nhiệm tải xuống các khung công tác thích hợp (Fabric.framework & Crashlytics.framework). Trong khi trạng thái của ID ứng dụng sai, plugin vải chỉ cập nhật Fabric.framework mà không có Crashlytics.framework (Tôi cũng không có phiên bản thư viện mới nhất). Sau đó, tôi đã không có phiên bản thích hợp của các tệp nhị phân crashlytics, dẫn đến lỗi liên kết. – losiennik

+0

OK, điều đó có ý nghĩa hơn. – trojanfoe

0

Nếu bạn quyết định không sử dụng CocoaPods thì bạn rõ ràng là sử dụng tùy chọn thứ 2, đặt một Run Script bên giai đoạn xây dựng:

./Fabric.framework/run YourUniqueId!#[email protected]#%!#$%@#$^@$3295209582523#@%!#[email protected]%!#%235 

Kịch bản chạy sẽ sao chép các tập tin:

  • Crashlytics.framework
  • Fabric.framework

Vào thư mục dự án của bạn, nhưng đôi khi nó không đủ và bạn cũng cần sao chép/tham chiếu 2 khung công tác vào dự án Xcode của bạn.

Nhập 2 khung là có thể (trước thủ tục sao chép ở trên) nhưng Xcode cần tham chiếu đến chúng.

Nên biên dịch tiền phạt sau đó.

0

Sự cố này xảy ra với tôi khi tôi cập nhật Xcode. Nó đã được sửa sau khi gỡ cài đặt và cài đặt phiên bản mới hơn là cập nhật.

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