blob: 4b665ad91e3d617798d2fca7cb2976874ba35060 [file] [log] [blame]
#!/usr/bin/env ruby
def run(cmd, &block)
puts "> #{cmd}"
if block == nil
abort "** command failed with error" if !system(cmd)
else
IO.popen(cmd, &block)
end
end
def checkArchs(path, expected)
archs = nil
run("lipo -info \"#{path}\"") { |lipo| archs = /re: (.*)/.match(lipo.readline)[1].strip() }
if (expected.split(" ") - archs.split(" ")).count > 0
puts "Warning: missing architecture; expected \"#{expected}\", found \"#{archs}\""
end
if (archs.split(" ") - expected.split(" ")).count > 0
puts "Warning: unexpected architecture; expected \"#{expected}\", found \"#{archs}\""
end
end
def checkAuthority(path, expected)
authorities = []
run("codesign -dvv #{path} 2>&1") { |codesign| codesign.readlines
.map { |line| /Authority=(.*)/.match(line) }
.select { |match| match != nil }
.each { |match| authorities.push(match[1])}
}
if ! authorities.include? expected
puts "Warning: missing signing authority; expected \"#{expected}\", found #{authorities}"
end
end
productdir = ARGV[0]
abort "Error: no product directory specified" if productdir == nil
checkArchs "#{productdir}/OCMock-macOS.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "x86_64 arm64"
checkArchs "#{productdir}/OCMock-iOS-lib.xcarchive/Products/usr/local/lib/libOCMock.a", "armv7 arm64"
checkArchs "#{productdir}/OCMock-iOS-lib-sim.xcarchive/Products/usr/local/lib/libOCMock.a", "i386 x86_64 arm64"
checkArchs "#{productdir}/OCMock-iOS.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "armv7 arm64"
checkArchs "#{productdir}/OCMock-iOS-sim.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "i386 x86_64 arm64"
checkArchs "#{productdir}/OCMock-tvOS.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "arm64"
checkArchs "#{productdir}/OCMock-tvOS-sim.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "x86_64 arm64"
checkArchs "#{productdir}/OCMock-watchOS.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "armv7k arm64_32"
checkArchs "#{productdir}/OCMock-watchOS-sim.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "i386 x86_64 arm64"
checkArchs "#{productdir}/OCMock-catalyst.xcarchive/Products/Library/Frameworks/OCMock.framework/OCMock", "x86_64 arm64"
authority = "Apple Development: erik@doernenburg.com (FJTF47J852)"
checkAuthority "#{productdir}/OCMock-macOS.xcarchive/Products/Library/Frameworks/OCMock.framework", authority