2016-01-13 27 views
9

Tôi đang sử dụng CommonCrypto trong khuôn khổ Swift - và nó đã hoạt động tốt trong hơn một năm.Xcode 7.3 beta 1 so với CommonCrypto trong Swift

tôi đã sử dụng giải pháp tìm thấy ở đây: Importing CommonCrypto in a Swift framework

Cụ thể, để tham khảo CommonCrypto từ khuôn khổ Swift, tôi phải:

Tạo một file module.map trong một thư mục có tên CommonCrypto bên cạnh dự án Xcode khuôn khổ của tôi. module.map nội dung:

module CommonCrypto [system] 
{ 
    header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/CommonCrypto/CommonCrypto.h" 
    link "CommonCrypto" 
    export * 
} 
  • Trong Import Paths Swift dự án khuôn khổ của tôi, tôi thêm CommonCrypto
  • Trong Library Search Paths dự án khuôn khổ của tôi, tôi bao gồm: $(SDKROOT)/usr/lib/system
  • Trong nguồn của tôi, tôi bao gồm: import CommonCrypto

Điều này làm việc tốt; một chút phức tạp - nhưng nó hoạt động.

Tuy nhiên, trong Xcode 7.3 beta 1 (7D111g), kỹ thuật này không còn hoạt động nữa.

Dường như libcommonCrypto.tbd đã bị xóa khỏi: $(SDKROOT)/usr/lib/system bên trong Xcode-beta.app. Và tôi không thể tìm thấy nó ở bất cứ nơi nào trong cấu trúc thư mục iPhoneOS SDK.

Vì vậy, tôi nhận được các lỗi này:

ld: warning: directory not found for option '-L/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/system' ld: library not found for -lCommonCrypto for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Nó sẽ là tuyệt vời nếu việc kinh doanh đồ mô-đun điên được thay thế bằng một cái gì đó đơn giản hơn. Ví dụ: chỉ cần sử dụng import CommonCrypto

Trong mọi trường hợp, tôi không chắc chắn cách giải quyết vấn đề này, vì vậy mọi trợ giúp đều được đánh giá cao.

Tôi hỏi đây là câu hỏi mới trong trường hợp giải pháp khác với các giải pháp được tìm thấy trong câu hỏi trước, mặc dù tôi đánh giá cao điều này có thể không phù hợp.

Trả lời

0

Dường như các giải pháp là để loại bỏ các dòng:

link "CommonCrypto" 

từ tập tin module.map.

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