diff --git a/certificates/AppleWWDRCA.cer b/certificates/AppleWWDRCA.cer new file mode 100644 index 0000000..d2bb1da Binary files /dev/null and b/certificates/AppleWWDRCA.cer differ diff --git a/lib/grocer/pushpackager/package.rb b/lib/grocer/pushpackager/package.rb index 7968ade..eca629d 100644 --- a/lib/grocer/pushpackager/package.rb +++ b/lib/grocer/pushpackager/package.rb @@ -65,8 +65,14 @@ def icon_set_manifest end def signature - return @signature if @signature - @signature = OpenSSL::PKCS7::sign(@certificate, @key, manifest_json, [], OpenSSL::PKCS7::DETACHED) + @signature ||= OpenSSL::PKCS7::sign(@certificate, @key, manifest_json, intermediate_certificates, OpenSSL::PKCS7::DETACHED) + end + + def intermediate_certificates + path = File.expand_path("../../../../certificates/AppleWWDRCA.cer", __FILE__) + data = File.read(path) + certificate = OpenSSL::X509::Certificate.new(data) + [certificate] end def build_zip