2016-09-21 16 views
5

Dự án XCode mới có Cấu hình gỡ lỗi và phát hành. Tôi đã thêm một cái mới trong "ProjectName> Info" được gọi là "phát triển", mà bây giờ là một bản sao của "gỡ lỗi".Tạo cấu hình và sơ đồ XCode mới - trình liên kết đột nhiên thất bại

Tôi muốn tạo một lược đồ mới để xây dựng ứng dụng ở chế độ phát triển, vì vậy tôi đã nhân đôi lược đồ "Projectname" và đặt tên là "DevelopmentScheme".

Tôi đặt cấu hình xây dựng cho "chạy" và "lưu trữ" sang cấu hình "phát triển" mới mà tôi đã tạo.

Tôi vẫn có thể xây dựng Đề án gốc.

Tôi cũng có thể xây dựng tất cả các thư viện cần thiết khi dự án được cấu hình với các chương trình phát triển, nhưng khi tôi nhận được đến giai đoạn kết nối, tôi nhận được lỗi:

ld: library not found for -lRNCookieManagerIOS clang: error: linker command failed with exit code 1 (use -v to see invocation)

Being tương đối mới đối với việc phát triển iOS, tôi không thực sự chắc chắn vấn đề có thể là gì. Vì tôi đã sao chép mọi thứ, nên điều đó không có nghĩa là chúng cư xử theo cùng một cách? Suy nghĩ về những gì có thể khác nhau giữa các đề án ban đầu và mới?

Trả lời

18

Vấn đề là Xcode sẽ mong đợi tìm các thư viện bên trong một thư mục có tên sau cấu hình tùy chỉnh của bạn. Bạn có thể thêm cấu hình tùy chỉnh vào từng thư viện bạn sử dụng hoặc làm theo các bước bên dưới để làm cho nó sử dụng thư viện được xây dựng thông qua cấu hình Phát hành.

bước:

  • Chọn mục tiêu của bạn
  • mở Build Cài đặt tab
  • tìm kiếm cho 'Thư viện Search Paths'
  • Bạn sẽ thấy tên cấu hình mới của bạn cùng với Debug và Release
  • Nhấp đúp vào không gian bên cạnh tên cấu hình mới của bạn
  • Nhập "$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)"
  • Đặt đệ quy thành true.

enter image description here

  • Thoát hộp thoại và bạn sẽ thấy:

enter image description here

(inspired by this post)

+1

Cảm ơn bạn đã truyền cảm hứng. Tôi đã xây dựng một dự án có nguồn gốc phản ứng và điều tôi đã làm là thay đổi cả 'Đường dẫn sản phẩm xây dựng trên mỗi cấu hình' và 'Đường dẫn tệp xây dựng trung gian cho mỗi cấu hình 'thành' $ (PROJECT_TEMP_DIR)/Release $ (EFFECTIVE_PLATFORM_NAME) '. Đã cho tôi giờ, cảm ơn Xcode. – tropicalfish

+0

Hoàn hảo - Điều này đã khắc phục sự cố khi thêm một sơ đồ mới đã phá vỡ mọi thứ. Có thể phản ứng-bản địa nên thêm một 'new-scheme' CLI cmd mà sẽ làm tất cả điều này cho chúng tôi (không phải là có nhiều ở đó - nhưng sau đó xuống theo dõi nhiều thứ hơn có thể được yêu cầu) – James111

5

Xcode 8.3.2 cần một chút thay đổi khác nhau.

Để làm cho nó hoạt động, bạn cần thay đổi Per-configuration Build Products Path cho cấu hình bản dựng tùy chỉnh của mình. Ví dụ: tôi có cấu hình xây dựng Internal. Trong trường đó, thay vì $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME), tôi đặt $(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME) và giờ nó hoạt động :).

+0

Chỉnh sửa phải có nhiều hơn 6 charachters và điều này đó là một sửa đổi một cách đáng kể: Đó là Per-configuration Build Products Path :) – jonasl

+0

Bạn đã bao giờ gặp vấn đề với, "Đảm bảo rằng bạn đang chạy máy chủ đóng gói hoặc đã bao gồm tệp .jsbundle trong gói ứng dụng của bạn." ? – TomTom

+0

yea .. tôi chỉ dừng lại và bắt đầu đóng gói và dự án. nó không xảy ra thường xuyên để làm phiền tôi đủ để cố gắng sửa chữa nó. tôi biết điều đó xấu, nhưng tôi cần phải sửa chữa những thứ khác trước đó. – pvinis

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