Câu trả lời:
Trong mục tiêu chính của bạn, bạn cần đặt Enable Testability
tù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 Testability
chỉ 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 cocoapods
như 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 cocoapods
bộ ENABLE_TESTABILITY
để YES
chỉ cho Debug
xâ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ó YES
trong 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 Testability
trong 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 Target
cơ sở, hoặc mỗi Schema
cơ sở, nó là trên Configuration
cơ sở. Chọn Target
-> Build Settings
tab -> 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: