{"id":17617395,"url":"https://github.com/huttotw/pkpass-go","last_synced_at":"2025-10-11T20:16:45.078Z","repository":{"id":57493547,"uuid":"144750890","full_name":"huttotw/pkpass-go","owner":"huttotw","description":"A simple way to create Apple Passes utilizing OpenSSL","archived":false,"fork":false,"pushed_at":"2018-08-14T17:24:13.000Z","size":51,"stargazers_count":25,"open_issues_count":0,"forks_count":16,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-30T18:11:50.224Z","etag":null,"topics":["apple","boarding-passes","certificates","coupons","go","golang","openssl","passes","wallet","xcode"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/huttotw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-14T17:19:04.000Z","updated_at":"2025-04-09T23:38:44.000Z","dependencies_parsed_at":"2022-08-28T13:53:36.258Z","dependency_job_id":null,"html_url":"https://github.com/huttotw/pkpass-go","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huttotw%2Fpkpass-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huttotw%2Fpkpass-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huttotw%2Fpkpass-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huttotw%2Fpkpass-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huttotw","download_url":"https://codeload.github.com/huttotw/pkpass-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251758173,"owners_count":21638989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","boarding-passes","certificates","coupons","go","golang","openssl","passes","wallet","xcode"],"created_at":"2024-10-22T19:13:26.412Z","updated_at":"2025-10-11T20:16:40.044Z","avatar_url":"https://github.com/huttotw.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pkpass-go\n\n## Summary\nThis package will generate a signed Apple Wallet Pass given your companion files, and your Apple issued Pass Type Certificate.\n\nFor instructions on how to obtain these certifcates for your account, [please see this tutorial](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/YourFirst.html).\n\n![example coupon](pass.png \"Example Coupon\")\n\nCurrently, we depend on [openssl](https://www.openssl.org/). When running in production, I recommend installing this in your Docker container.\n\n## Usage\n```go\n// Open your certifcate via a file, string reader, etc.\ncert, err := os.Open(\"Certificates.p12\")\nif err != nil {\n    panic(err)\n}\ndefer cert.Close()\n    \n// Pass the directory containing your companiion files, the password you need\n// to open your certificate, and the actual certificate to the New func.\nr, err := pkpass.New(\"Coupon.pass\", \"\", cert)\nif err != nil {\n    panic(err)\n}\n\n// The reader contains your freshly minted .pkpass file, just write it out so you can\n// use it.\nf, err := os.Create(\"Coupon.pkpass\")\nif err != nil {\n    t.Fatal(err)\n}\ndefer f.Close()\n\n// Copy the reader into an actual file so that you can open it.\n_, err = io.Copy(f, r)\nif err != nil {\n    panic(err)\n}\n```\n\n## Certificates\nWhen you log into your Apple Developer account, you should create a _Pass Type ID_. This type id will be what goes into your pass.json file, and will be what the certificate will be attached to. You should name this using the reverse domain convention.\n\n```\npass.com.example.mypass\n```\n\nOnce you have created a _Pass Type ID_, click edit. Follow the instructions to create and download your certificate. Likely, your certificate will be placced into _Keychain Access_ from there, you can export it, and use it with this package.\n\nIt is important that you update your `pass.json` file prior to creating the pass. You will need to substitute the `passTypeIdentifier` and  `teamIdentifier` for their actual values.\n\n## License\n_Copyright © 2018 Trevor Hutto_\n\n_Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:_\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\n_Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuttotw%2Fpkpass-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuttotw%2Fpkpass-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuttotw%2Fpkpass-go/lists"}