https://github.com/automattic/pocket-casts-ios
Pocket Casts iOS app 🎧
https://github.com/automattic/pocket-casts-ios
hacktoberfest pocket-casts
Last synced: 16 days ago
JSON representation
Pocket Casts iOS app 🎧
- Host: GitHub
- URL: https://github.com/automattic/pocket-casts-ios
- Owner: Automattic
- License: mpl-2.0
- Created: 2022-07-11T12:49:45.000Z (almost 4 years ago)
- Default Branch: trunk
- Last Pushed: 2026-06-05T03:07:18.000Z (20 days ago)
- Last Synced: 2026-06-05T07:03:29.010Z (20 days ago)
- Topics: hacktoberfest, pocket-casts
- Language: Swift
- Homepage:
- Size: 164 MB
- Stars: 1,792
- Watchers: 18
- Forks: 183
- Open Issues: 324
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE-OF-CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
Pocket Casts is the world's most powerful podcast platform, an app by listeners, for listeners.
## Setup
If you don't already have it, you need to install Bundler:
`gem install bundler`
Next you'll need to install all the dependencies needed for [_fastlane_](https://docs.fastlane.tools/) using this script:
`make install_dependencies`
## External contributors
If you're an external contributor run `make external_contributor`. After that you should be able to build and run the project.
## Swift Formatting
We use [SwiftLint](https://github.com/realm/SwiftLint) to ensure code is spaced and formatted the same way and follows the same [general conventions](https://github.com/Automattic/swiftlint-config). We have a script that will run it over the whole project.
Once the required dependencies are installed via `bundle exec pod install`, you can run:
`make format`
You should do this before making a pull request.
## Running
Open the `.xcodeproj` file, select the Pocket Casts project and the Simulator Device you want to run on, and hit the play button.
## Localization
You can learn more about localization at [docs/Localization.md](./docs/localization.md)
## Protocol Buffers
The app uses [Google Protocol Buffers](https://developers.google.com/protocol-buffers) to define our server objects.
To update server objects you'll need to install the protobuf command line tool as well as the [Swift Protobuf](https://github.com/apple/swift-protobuf) translators. This can be done via Homebrew with:
```
brew install protobuf
brew install swift-protobuf
```
To update the protobuf files you can then run:
Replace the `{API_PATH}` with the full path to the `pocketcasts-api/api/modules/protobuf/src/main/proto` folder
```
make update_proto API_PATH={API_PATH}
```
## Debugging
### Logs
Logs can be found in the app as a view and shared from there through the system sheet or mail:
* Profile > Help & Feedback > ⋯ > Logs
When debugging analytics, the `tracksLogging` feature flag will enable logging for these events.
### Export Files
An export can be created with the database, settings plist, and logs for debugging purposes:
* Profile > Help & Feedback > ⋯ > Export Database - the export will include all log files and settings
* Profile > Settings > Developer > Export Bundle
These exports can also be imported to the app, replacing the database and settings with the ones from the file. This will prompt the user before replacement.
* Open the file with Pocket Casts directly from Files
* Drag and drop the file on the Simulator
* Profile > Settings > Developer > Import Bundle
### Crash Log Symbolication
All [releases](https://github.com/Automattic/pocket-casts-ios/releases) include dSYMs inside of the `xcarchive` file.
These can be used along with the [MacSymbolicator](https://github.com/inket/MacSymbolicator) app to symbolicate any crash logs.