Instabug / Instabug-iOS

In-app feedback and bug reporting tool for apps.
https://instabug.com/
Other
290 stars 67 forks source link

Instabug breaks SwiftUI Previews in Xcode 12 #378

Closed sam-w closed 3 years ago

sam-w commented 3 years ago

Steps to Reproduce the Problem

struct ContentView_Previews: PreviewProvider {

static var previews: some View {
    Text("This is a preview")
}

}

- Confirm that the project compiles successfully for a normal Build/Run.
- Build for Previews:
    - Make sure the Previews canvas is visible
    - Click `Resume` to trigger the build
<img width="201" alt="Screen Shot 2020-09-24 at 11 09 27 am" src="https://user-images.githubusercontent.com/8063477/94089514-ae1cff80-fe56-11ea-9f62-5e55bc26c2af.png">
<img width="424" alt="Screen Shot 2020-09-24 at 11 09 34 am" src="https://user-images.githubusercontent.com/8063477/94089537-bd03b200-fe56-11ea-8245-9770b918f4a9.png">

### Expected Behavior
Project builds correctly and displays Previews.

### Actual Behavior
Project fails to compile:
:0: error: unable to load standard library for target 'arm64-apple-ios9.0' /somePath/ReviewView.swift:11:8: error: failed to build module 'Instabug' from its module interface; the compiler that produced it, 'Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)', may have used features that aren't supported by this compiler, 'Apple Swift version 5.3 (swiftlang-1200.0.29.2 clang-1200.0.30.1)' import Instabug ``` ### Instabug integration code N/a ### SDK Version 9.1.7 ### iOS Version iOS14 ### Device Model All
sam-w commented 3 years ago

Possible Workaround

Use #if !DEBUG guards around all Instabug imports and callsites.

Moves the error from compiling to linking:

Ld /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ (Early\ Access)/Intermediates.noindex/consumer-ios-app.build/Debug\ (Early\ Access)-iphonesimulator/consumer-ios-app.build/Objects-normal/arm64/Binary/consumer-ios-app normal arm64 (in target 'consumer-ios-app' from project 'consumer-ios-app')
    cd /somePath/consumer-ios-app
    /Applications/Xcode-12-GM.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target arm64-apple-ios14.0-simulator -isysroot /Applications/Xcode-12-GM.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.0.sdk -L/Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Products/Debug\ \(Early\ Access\)-iphonesimulator -F/Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Products/Debug\ \(Early\ Access\)-iphonesimulator -F/somePath/consumer-ios-app/Frameworks -F/somePath/consumer-ios-app/Carthage/Build/iOS -filelist /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/consumer-ios-app.build/Debug\ \(Early\ Access\)-iphonesimulator/consumer-ios-app.build/Objects-normal/arm64/consumer-ios-app.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/consumer-ios-app.build/Debug\ \(Early\ Access\)-iphonesimulator/consumer-ios-app.build/Objects-normal/arm64/consumer-ios-app_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-link-runtime -L/Applications/Xcode-12-GM.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/consumer-ios-app.build/Debug\ \(Early\ Access\)-iphonesimulator/consumer-ios-app.build/Objects-normal/arm64/consumer_ios_app.swiftmodule -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/consumer-ios-app.build/Debug\ \(Early\ Access\)-iphonesimulator/consumer-ios-app.build/consumer-ios-app.app-Simulated.xcent /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Products/Debug\ \(Early\ Access\)-iphonesimulator/PackageFrameworks/Datadog.framework/Datadog -framework Instabug /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Products/Debug\ \(Early\ Access\)-iphonesimulator/PackageFrameworks/KingfisherSwiftUIDynamic.framework/KingfisherSwiftUIDynamic -Xlinker -dependency_info -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/consumer-ios-app.build/Debug\ \(Early\ Access\)-iphonesimulator/consumer-ios-app.build/Objects-normal/arm64/consumer-ios-app_dependency_info.dat -o /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/consumer-ios-app.build/Debug\ \(Early\ Access\)-iphonesimulator/consumer-ios-app.build/Objects-normal/arm64/Binary/consumer-ios-app -Xlinker -add_ast_path -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/Cloudinary.build/Debug\ \(Early\ Access\)-iphonesimulator/Cloudinary.build/Objects-normal/arm64/Cloudinary.swiftmodule -Xlinker -add_ast_path -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/Fuse.build/Debug\ \(Early\ Access\)-iphonesimulator/Fuse.build/Objects-normal/arm64/Fuse.swiftmodule -Xlinker -add_ast_path -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/TinyConstraints.build/Debug\ \(Early\ Access\)-iphonesimulator/TinyConstraints.build/Objects-normal/arm64/TinyConstraints.swiftmodule -Xlinker -add_ast_path -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/OktaOidc.build/Debug\ \(Early\ Access\)-iphonesimulator/OktaOidc.build/Objects-normal/arm64/OktaOidc.swiftmodule -Xlinker -add_ast_path -Xlinker /Users/swarn1/Library/Developer/Xcode/DerivedData/consumer-ios-app-fqbkhugbqvvfuhcmhycrrvaruktl/Build/Intermediates.noindex/Previews/Debug\ \(Early\ Access\)/Intermediates.noindex/SwiftProtobuf.build/Debug\ \(Early\ Access\)-iphonesimulator/SwiftProtobuf.build/Objects-normal/arm64/SwiftProtobuf.swiftmodule
ld: building for iOS Simulator, but linking in dylib built for iOS, file '/somePath/consumer-ios-app/Frameworks/Instabug.framework/Instabug' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
AhmedOS commented 3 years ago

Hello @sam-w , We are working currently on this issue. In the meantime, would you try this workaround as a temporary fix? This configuration disables building the project for simulators running on Appleโ€™s new Macs processor. You may need to add this setting for Release config also if you have faced same issue with Release build for simulator, to profile the app for example. Screen Shot 2020-09-09 at 12 23 20 PM

sam-w commented 3 years ago

@AhmedOS yep, that works for me. Thanks for the tip!

jadonbaker commented 3 years ago

@AhmedOS was this fixed in 10.0.2?

sam-w commented 3 years ago

This is now fixed in Xcode 12.2, I'm going to close the issue

Kmohamed commented 3 years ago

Perfect ๐Ÿ‘Œ. Feel free to open it again if you face any problems.

mloigeret commented 3 years ago

Pro tip for cocoapods users: update cocoapods to the latest version. I struggled with this for hours :)

Kmohamed commented 3 years ago

Thank you ๐Ÿ™๐Ÿ™