Open toshi0383 opened 7 years ago
BTW I have a xcconfig like this. This should be enough for universal framework.
SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator watchos watchsimulator appletvos appletvsimulator
TARGETED_DEVICE_FAMILY = 1,2,3,4
ENABLE_BITCODE[sdk=iphone*] = YES;
ENABLE_BITCODE[sdk=watch*] = YES;
ENABLE_BITCODE[sdk=appletv*] = YES;
LD_RUNPATH_SEARCH_PATHS[sdk=macosx*] = $(inherited) @executable_path/../Frameworks @loader_path/../Frameworks
LD_RUNPATH_SEARCH_PATHS[sdk=iphone*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
LD_RUNPATH_SEARCH_PATHS[sdk=watch*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
LD_RUNPATH_SEARCH_PATHS[sdk=appletv*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
// NOTE: LGTMKit depends on Carthage frameworks
FRAMEWORK_SEARCH_PATHS[sdk=macosx*] = $(inherited) $(PROJECT_DIR)/Carthage/Build/Mac
FRAMEWORK_SEARCH_PATHS[sdk=iphone*] = $(inherited) $(PROJECT_DIR)/Carthage/Build/iOS
APPLICATION_EXTENSION_API_ONLY = YES;
I see. What's happening now is that I'm guessing you're specifying
platform: iOS,macOS,tvOS,watchOS
which then automatically creates a target for each platform.
There are some downsides to having a universal framework as opposed to frameworks per platform, but we should still make it possible.
I guess what is needed is to make platform
optional, but with the knowledge that the developer will provide all the relevant build settings if it's left out.
These are the platform setting presets by the way https://github.com/yonaskolb/XcodeGen/tree/master/SettingPresets/Platforms
If you did want to stick the the multi target approach you can fix the errors in the spec by just appending _iOS
or _macOS
to the target dependencies. Note that the PRODUCT_NAME is still the same and without the suffix, so you can still import these frameworks with import LGTMKit
Thanks for quick follow up!
I will try to workaround it by appending _iOS
and _macOS
for now.👌
How could I generate an empty(
buildSettings = { };
) framework target? I don't want each target for every platform.