# Changelog

## [2.4.0](https://github.com/inaka/apns4erl/tree/2.4.0) (2020-08-23)

[Full Changelog](https://github.com/inaka/apns4erl/compare/e987f52410f3572de61b8610b677338881582656...2.4.0)

**Closed issues:**

- version bump to 2.3.1 [\#227](https://github.com/inaka/apns4erl/issues/227)
- Rebar compile issues when included in other projects [\#225](https://github.com/inaka/apns4erl/issues/225)
- how to send mutiple token to apns in one time? [\#223](https://github.com/inaka/apns4erl/issues/223)
- Connections using Provider Auth Token [\#222](https://github.com/inaka/apns4erl/issues/222)
- adding coverage in Travis [\#218](https://github.com/inaka/apns4erl/issues/218)
- Version bump to 2.3.0 [\#217](https://github.com/inaka/apns4erl/issues/217)
- why push\_notification\_token return "error" [\#214](https://github.com/inaka/apns4erl/issues/214)
- Pseudo-header field ':method' found after regular header [\#211](https://github.com/inaka/apns4erl/issues/211)
- apns:close\_connection don't closed h2\_connect [\#209](https://github.com/inaka/apns4erl/issues/209)
- Memory leaks may exist [\#206](https://github.com/inaka/apns4erl/issues/206)
- Version Bump to 2.2.0 [\#196](https://github.com/inaka/apns4erl/issues/196)
- Add Travis [\#193](https://github.com/inaka/apns4erl/issues/193)
- Write an example with a pool of connections [\#191](https://github.com/inaka/apns4erl/issues/191)
- restrict calls to push\_notification and push\_notification\_token [\#188](https://github.com/inaka/apns4erl/issues/188)
- Version Bump to 2.1.1 [\#186](https://github.com/inaka/apns4erl/issues/186)
- chatterbox OPT20 gen\_fsm is deprecated and will be removed in a future release [\#184](https://github.com/inaka/apns4erl/issues/184)
- Create connections without name [\#183](https://github.com/inaka/apns4erl/issues/183)
- gen\_server push\_notification return {Timeout, StreamId} [\#182](https://github.com/inaka/apns4erl/issues/182)
- Base64 newline characters [\#180](https://github.com/inaka/apns4erl/issues/180)
- Version Bump to 2.1.0 [\#177](https://github.com/inaka/apns4erl/issues/177)
- research in HTTP2 clients [\#175](https://github.com/inaka/apns4erl/issues/175)
- V2 Need async\_push\_notification [\#172](https://github.com/inaka/apns4erl/issues/172)
- apns:push\_notification timeout [\#170](https://github.com/inaka/apns4erl/issues/170)
- Erlang Crashing [\#168](https://github.com/inaka/apns4erl/issues/168)
- implement apns:get\_feedback/1 [\#167](https://github.com/inaka/apns4erl/issues/167)
- where do I register feedback handlers in v2? [\#166](https://github.com/inaka/apns4erl/issues/166)
- Syntax error rebar3 compile [\#165](https://github.com/inaka/apns4erl/issues/165)
- Erlang/OTP 18? [\#164](https://github.com/inaka/apns4erl/issues/164)
- How to find out the invalid token? [\#163](https://github.com/inaka/apns4erl/issues/163)
- Improve `apns\_utils:sing/1` in order to use `os:cmd/1` instead of `ktn\_os:command/1` [\#159](https://github.com/inaka/apns4erl/issues/159)
- add apns:connection/1 documentation to README [\#156](https://github.com/inaka/apns4erl/issues/156)
- update katana dependency [\#153](https://github.com/inaka/apns4erl/issues/153)
- rebar3 compile error [\#152](https://github.com/inaka/apns4erl/issues/152)
- upload to hex [\#151](https://github.com/inaka/apns4erl/issues/151)
- test coverage [\#148](https://github.com/inaka/apns4erl/issues/148)
- Update README and rebar in order to support only R19+ [\#146](https://github.com/inaka/apns4erl/issues/146)
- version bump to 2.0.0 [\#145](https://github.com/inaka/apns4erl/issues/145)
- Handling responses improvement [\#138](https://github.com/inaka/apns4erl/issues/138)
- Update Documentation [\#136](https://github.com/inaka/apns4erl/issues/136)
- Push Notifications with Provider's Certificate [\#135](https://github.com/inaka/apns4erl/issues/135)
- close connection gracefully [\#133](https://github.com/inaka/apns4erl/issues/133)
- Get Feedback from APNs [\#132](https://github.com/inaka/apns4erl/issues/132)
- Exponential Backoff when restarting gun connection [\#131](https://github.com/inaka/apns4erl/issues/131)
- apns\_connection should monitor the gun\_connection [\#129](https://github.com/inaka/apns4erl/issues/129)
- Create a Queue for tasks [\#127](https://github.com/inaka/apns4erl/issues/127)
- Create Connections using Provider Auth Token [\#126](https://github.com/inaka/apns4erl/issues/126)
- Create Connections using Provider Certificate [\#125](https://github.com/inaka/apns4erl/issues/125)
- Does  this project  support   apns ‘s HTTP/2 connection ? [\#122](https://github.com/inaka/apns4erl/issues/122)
- repeatedly  Reconnecting the Feedback server... [\#121](https://github.com/inaka/apns4erl/issues/121)
- Cannot send notifications  [\#117](https://github.com/inaka/apns4erl/issues/117)
- how can i know which token is invalid? [\#116](https://github.com/inaka/apns4erl/issues/116)
- deps jiffy master support rebar3 [\#115](https://github.com/inaka/apns4erl/issues/115)
- ssl\_closed after some messages [\#112](https://github.com/inaka/apns4erl/issues/112)
- Can i use one apns4erl to support two client apps? [\#111](https://github.com/inaka/apns4erl/issues/111)
- Why don't use a pool or multiple processes to send\_message? [\#109](https://github.com/inaka/apns4erl/issues/109)
- `apns\_queue` module question [\#108](https://github.com/inaka/apns4erl/issues/108)
- rustyio/sync in rebar.config why? [\#106](https://github.com/inaka/apns4erl/issues/106)
- {error, closed} in apns:connect and general cluelessness on my behalf [\#103](https://github.com/inaka/apns4erl/issues/103)
- Update repo and make it ready for hex.pm [\#102](https://github.com/inaka/apns4erl/issues/102)
-  How can I get apns4erl integrated with ejabberd  [\#100](https://github.com/inaka/apns4erl/issues/100)
- One of dependencies \(inaka/sync\) now unavailable [\#89](https://github.com/inaka/apns4erl/issues/89)
- Hex Package [\#88](https://github.com/inaka/apns4erl/issues/88)
- jiffy 13.3 has compilation fails with gcc 5.2 [\#86](https://github.com/inaka/apns4erl/issues/86)
- Full Library Revamp [\#84](https://github.com/inaka/apns4erl/issues/84)
- ssl:connect return {error,closed} [\#82](https://github.com/inaka/apns4erl/issues/82)
- loss of network connectivity crashes the app [\#80](https://github.com/inaka/apns4erl/issues/80)
- Protocol versions are only for sandbox [\#73](https://github.com/inaka/apns4erl/issues/73)
- Add a working certificate so that tests can run [\#71](https://github.com/inaka/apns4erl/issues/71)
- Can't use multiple certificates [\#70](https://github.com/inaka/apns4erl/issues/70)
- Test Script doesnt work [\#68](https://github.com/inaka/apns4erl/issues/68)
- APNS return invalid\_token, but the token is ok! [\#66](https://github.com/inaka/apns4erl/issues/66)
- Bump Version to 1.0.6 [\#63](https://github.com/inaka/apns4erl/issues/63)
- Is there known issues with Erlang 18 ? [\#60](https://github.com/inaka/apns4erl/issues/60)
- Build error on R16B03-01 and R15B03 [\#59](https://github.com/inaka/apns4erl/issues/59)
- no function clause matching ssl\_cipher:hash\_algorithm\(239\) [\#57](https://github.com/inaka/apns4erl/issues/57)
- Version Bump to 1.0.5 [\#55](https://github.com/inaka/apns4erl/issues/55)
- SSL: Socket error: etimedout [\#52](https://github.com/inaka/apns4erl/issues/52)
- gen\_server fails with bad return value [\#51](https://github.com/inaka/apns4erl/issues/51)
- delete subscription callback not getting called [\#49](https://github.com/inaka/apns4erl/issues/49)
- How to get query and get data from FeebackService [\#48](https://github.com/inaka/apns4erl/issues/48)
- Handling 'DOWN' connection when sending message using send\_message [\#47](https://github.com/inaka/apns4erl/issues/47)
- How to get .pem file for Apple APNS [\#46](https://github.com/inaka/apns4erl/issues/46)
- How can I get apns4erl integrated with ejabberd [\#45](https://github.com/inaka/apns4erl/issues/45)
- Increase APNS max payload size up to 2 kilobytes [\#42](https://github.com/inaka/apns4erl/issues/42)
- test\_certs script doesn't generate working certificate [\#33](https://github.com/inaka/apns4erl/issues/33)
- Support latest APNs notification format [\#30](https://github.com/inaka/apns4erl/issues/30)
- ssl:connect with the content of the certificate not pem file [\#26](https://github.com/inaka/apns4erl/issues/26)
- Why Feedback server disconnected as soon as I connected the feedback ok? [\#24](https://github.com/inaka/apns4erl/issues/24)
- Compile error on 17.0 due to erlang\_otp\_vsn [\#19](https://github.com/inaka/apns4erl/issues/19)
- Post 1.0.0 Tagged Release [\#18](https://github.com/inaka/apns4erl/issues/18)
- When APNS send an error [\#17](https://github.com/inaka/apns4erl/issues/17)
- . [\#15](https://github.com/inaka/apns4erl/issues/15)
- How-to use is missing [\#2](https://github.com/inaka/apns4erl/issues/2)
- Handle disconnections from apple internally [\#1](https://github.com/inaka/apns4erl/issues/1)

**Merged pull requests:**

- Import code coverage plugins as project plugins [\#231](https://github.com/inaka/apns4erl/pull/231) ([dsrosario](https://github.com/dsrosario))
- Allow caller to call generate\_token without apns configuration [\#229](https://github.com/inaka/apns4erl/pull/229) ([dsrosario](https://github.com/dsrosario))
- \[\#227\] version bump to 2.3.1 [\#228](https://github.com/inaka/apns4erl/pull/228) ([ferigis](https://github.com/ferigis))
- Add support for new apns-push-type header [\#226](https://github.com/inaka/apns4erl/pull/226) ([essen](https://github.com/essen))
- \[\#217\] Version Bump to 2.3.0 [\#221](https://github.com/inaka/apns4erl/pull/221) ([ferigis](https://github.com/ferigis))
- \[\#218\] integrating with codecov [\#219](https://github.com/inaka/apns4erl/pull/219) ([ferigis](https://github.com/ferigis))
- Test erlang 21 [\#216](https://github.com/inaka/apns4erl/pull/216) ([getong](https://github.com/getong))
- Switch apns to use Gun, add support for CONNECT proxies [\#215](https://github.com/inaka/apns4erl/pull/215) ([essen](https://github.com/essen))
- Update dependencies and bump version to 2.2.1 [\#213](https://github.com/inaka/apns4erl/pull/213) ([elbrujohalcon](https://github.com/elbrujohalcon))
- send mandatory headers at top [\#212](https://github.com/inaka/apns4erl/pull/212) ([lazedo](https://github.com/lazedo))
- Update from @andreabenini [\#210](https://github.com/inaka/apns4erl/pull/210) ([elbrujohalcon](https://github.com/elbrujohalcon))
- Update README.md [\#204](https://github.com/inaka/apns4erl/pull/204) ([igaray](https://github.com/igaray))
- add erlang 20 for test [\#200](https://github.com/inaka/apns4erl/pull/200) ([getong](https://github.com/getong))
- \[\#196\] Version Bump to 2.2.0 [\#197](https://github.com/inaka/apns4erl/pull/197) ([ferigis](https://github.com/ferigis))
- Allow binary cert/key in apns\_connection like v1 [\#195](https://github.com/inaka/apns4erl/pull/195) ([danielfinke](https://github.com/danielfinke))
- \[\#193\] Setting Travis up [\#194](https://github.com/inaka/apns4erl/pull/194) ([ferigis](https://github.com/ferigis))
- \[\#191\] Example with a pool of connections [\#192](https://github.com/inaka/apns4erl/pull/192) ([ferigis](https://github.com/ferigis))
- Fix: remove occasional newline characters in base64 output [\#190](https://github.com/inaka/apns4erl/pull/190) ([dgtony](https://github.com/dgtony))
- \[\#188\] restricting push only for connection's owner process [\#189](https://github.com/inaka/apns4erl/pull/189) ([ferigis](https://github.com/ferigis))
- \[\#186\] Version Bump to 2.1.1 [\#187](https://github.com/inaka/apns4erl/pull/187) ([ferigis](https://github.com/ferigis))
- \[\#183\] create connections without name [\#185](https://github.com/inaka/apns4erl/pull/185) ([ferigis](https://github.com/ferigis))
- fixing hex package [\#179](https://github.com/inaka/apns4erl/pull/179) ([ferigis](https://github.com/ferigis))
- \[\#177\] version bump to 2.1.0 [\#178](https://github.com/inaka/apns4erl/pull/178) ([ferigis](https://github.com/ferigis))
- \[\#175\] replace gun by chatterbox [\#176](https://github.com/inaka/apns4erl/pull/176) ([ferigis](https://github.com/ferigis))
- \[\#167\] adding apns:get\_feedback/1 [\#174](https://github.com/inaka/apns4erl/pull/174) ([ferigis](https://github.com/ferigis))
- \[\#156\] update README file [\#173](https://github.com/inaka/apns4erl/pull/173) ([ferigis](https://github.com/ferigis))
- handle timeout config for apns:connect/1 [\#171](https://github.com/inaka/apns4erl/pull/171) ([dcy](https://github.com/dcy))
- Is it possible to use apns4erl and cowboy 1 in the same release? [\#162](https://github.com/inaka/apns4erl/pull/162) ([yzh44yzh](https://github.com/yzh44yzh))
- \[\#159\] – Improve `apns\_utils:sing/1` in order to use `os:cmd/1`. [\#160](https://github.com/inaka/apns4erl/pull/160) ([cabol](https://github.com/cabol))
- export apns:connect/1 [\#155](https://github.com/inaka/apns4erl/pull/155) ([dcy](https://github.com/dcy))
- \[\#152\] update katana dependency [\#154](https://github.com/inaka/apns4erl/pull/154) ([Euen](https://github.com/Euen))
- \[\#145\] Version Bump to 2.0.0 [\#150](https://github.com/inaka/apns4erl/pull/150) ([ferigis](https://github.com/ferigis))
- \[\#148\] test coverage to 100% [\#149](https://github.com/inaka/apns4erl/pull/149) ([ferigis](https://github.com/ferigis))
- \[\#146\] only R19+ supported [\#147](https://github.com/inaka/apns4erl/pull/147) ([ferigis](https://github.com/ferigis))
- \[\#131\] backoff strategy implemented [\#144](https://github.com/inaka/apns4erl/pull/144) ([ferigis](https://github.com/ferigis))
- Ferigis.132.implement feedback [\#142](https://github.com/inaka/apns4erl/pull/142) ([ferigis](https://github.com/ferigis))
- \[\#136\] README updated [\#141](https://github.com/inaka/apns4erl/pull/141) ([ferigis](https://github.com/ferigis))
- \[\#126\] Push notifications with Authentication Token [\#140](https://github.com/inaka/apns4erl/pull/140) ([ferigis](https://github.com/ferigis))
- Important refactorization [\#139](https://github.com/inaka/apns4erl/pull/139) ([ferigis](https://github.com/ferigis))
- \[\#135\] push notifications with provider certificate [\#137](https://github.com/inaka/apns4erl/pull/137) ([ferigis](https://github.com/ferigis))
- \[\#133\] create a method for closing the apns connection [\#134](https://github.com/inaka/apns4erl/pull/134) ([ferigis](https://github.com/ferigis))
- \[\#129\] monitor gun connection [\#130](https://github.com/inaka/apns4erl/pull/130) ([ferigis](https://github.com/ferigis))
- \[\#125\] Connecting to APNs with Provider Certificates [\#128](https://github.com/inaka/apns4erl/pull/128) ([ferigis](https://github.com/ferigis))
- app skeleton for version 2 [\#123](https://github.com/inaka/apns4erl/pull/123) ([ferigis](https://github.com/ferigis))



\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
