Câu trả lời:
Trong mục tiêu chính của bạn, bạn cần đặt Enable Testabilitytùy chọn xây dựng thành Có.
Theo nhận xét của @earnshavian bên dưới, điều này chỉ nên được sử dụng trên các bản dựng gỡ lỗi theo ghi chú phát hành của apple: "Chỉ nên sử dụng cài đặt xây dựng Kiểm tra khả năng kiểm tra trong cấu hình Debug của bạn, vì nó cấm tối ưu hóa phụ thuộc vào việc không xuất các ký hiệu bên trong từ ứng dụng hoặc khung " https://developer.apple.com/l Library / content / releasenotes / DeveloperTools / RN-Code / Ch chương / Intributiontion.html # / // numple_Vf / doc / uid / TP40001051-CH1-SSW
@testable) nhưng cần phải gửi đến App Store? Nếu Enable Testabilitychỉ dành cho các bản dựng gỡ lỗi, cách này là gì? Tôi có phải rút mã kiểm tra để phát hành không?
Trong trường hợp của tôi, tôi đã sử dụng một cấu hình xây dựng tùy chỉnh để thử nghiệm (được gọi Test) và cũng cocoapodsnhư một trình quản lý phụ thuộc
Tôi đã phải thêm các dòng sau vào cuối của tôi Podfileđể cho phép kiểm tra
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.name == 'Test'
config.build_settings['ENABLE_TESTABILITY'] = 'YES'
end
end
end
end
Theo mặc định cocoapodsbộ ENABLE_TESTABILITYđể YESchỉ cho Debugxây dựng
Đảm bảo rằng bạn đặt đúng các hộp kiểm của mình trong sơ đồ ứng dụng của bạn. Bạn NÊN UNCHECK các mục tiêu thử nghiệm của mình cho Archive Build.
Đối với những người bạn chỉ gặp phải điều này khi chạy Xcode Profiler: chuyển cấu hình xây dựng cấu hình trong quản lý lược đồ của bạn sang chế độ có khả năng kiểm tra được kích hoạt - và hầu hết sẽ bị gỡ lỗi:
Điều này có thể là do mục tiêu chính của bạn Enable Testabilityđược đặt thành NO. Bạn nên đặt nó YEStrong sơ đồ gỡ lỗi (được sử dụng để chạy thử nghiệm của bạn).
Nếu bạn sử dụng Carthage, vấn đề này có thể xảy ra do nhập các khung với @testable, bởi vì chúng được xây dựng với sơ đồ phát hành.
Hầu hết các trường hợp thực hành xấu khi nhập các khung có tiền tố đó, vì vậy bạn có thể tránh nó. Nếu bạn không thể, bạn nên Enable Testabilitytrong sơ đồ phát hành của khung. https://developer.apple.com
Tôi bắt đầu gặp lỗi này khi chạy thử nghiệm bằng Bitawn.
Không giống như những người dùng khác nói, đây không phải là trên Targetcơ sở, hoặc mỗi Schemacơ sở, nó là trên Configurationcơ sở. Chọn Target-> Build Settingstab -> tìm kiếm testability-> Kích hoạt nó trên Cấu hình mà bạn đang sử dụng .
Xin lưu ý rằng Apple khuyên bạn nên bật tính năng này trên cấu hình mà bạn đang sử dụng để gỡ lỗi, không phải cho AppStore.
Nếu bạn đang cố gắng kiểm tra khung:
Đi đến mục tiêu thử nghiệm -> Giai đoạn xây dựng -> Tạo giai đoạn sao chép tệp mới -> Chọn khung -> Thêm tất cả các khung được sử dụng đệ quy
Nếu có cơ hội bạn có
install! 'cocoapods',
generate_multiple_pod_projects: true,
incremental_installation: true
Sau đó, đây là cách để làm điều đó.
# generated_projects only returns results if the we run "pod install --clean-install"
# or install a pod for the first time
installer.generated_projects.each do |project|
project.build_configurations.each do |configuration|
configuration.build_settings["ENABLE_TESTABILITY"] = "YES"
end
end
Điều này đã không xảy ra trong các dự án của tôi trước Xcode 8, nhưng sau khi tôi nâng cấp lên Xcode 8, nó khiến tôi bối rối.
Các câu trả lời được đăng ở đây không giải quyết được vấn đề của tôi. Đối với tôi, tôi chỉ bỏ các bài kiểm tra này vì nó không cần thiết. Vì vậy, bỏ chọn các nút kiểm tra: