Class: Gym::XcodebuildFixes
- Inherits:
-
Object
- Object
- Gym::XcodebuildFixes
- Defined in:
- gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb
Class Method Summary collapse
-
.generic_archive_fix ⇒ Object
Determine IPAs for the Watch App which aren’t inside of a containing iOS App and removes them.
-
.is_watchkit_app?(app_path) ⇒ Boolean
Does this application have a WatchKit target.
Class Method Details
.generic_archive_fix ⇒ Object
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
17 18 19 20 21 22 23 24 25 26 |
# 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) ⇒ Boolean
Does this application have a WatchKit target
29 30 31 32 |
# 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 |