class Gym::XcodebuildFixes
Public Class Methods
generic_archive_fix()
click to toggle source
Determine IPAs for the Watch App which aren't inside of a containing iOS App and removes them.
In the future it may be nice to modify the plist file for the archive itself so that it points to the correct IPA as well.
This is a workaround for this bug github.com/CocoaPods/CocoaPods/issues/4178
# File gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb, line 17 def generic_archive_fix UI.verbose("Looking For Orphaned WatchKit2 Applications") Dir.glob("#{BuildCommandGenerator.archive_path}/Products/Applications/*.app").each do |app_path| if is_watchkit_app?(app_path) UI.verbose("Removing Orphaned WatchKit2 Application #{app_path}") FileUtils.rm_rf(app_path) end end end
is_watchkit_app?(app_path)
click to toggle source
Does this application have a WatchKit target
# File gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb, line 29 def is_watchkit_app?(app_path) plist_path = "#{app_path}/Info.plist" `/usr/libexec/PlistBuddy -c 'Print :DTSDKName' #{plist_path.shellescape} 2>&1`.match(/^\s*watchos2\.\d+\s*$/) != nil end