Pocket Casts is the world's most powerful podcast platform, an app by listeners, for listeners.
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 using this script:
make install_dependencies
If you're an external contributor run make external_contributor
. After that you should be able to build and run the project.
We use SwiftLint to ensure code is spaced and formatted the same way and follows the same general conventions. 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.
Open the .xcodeproj
file, select the Pocket Casts project and the Simulator Device you want to run on, and hit the play button.
You can learn more about localization at docs/Localization.md
The app uses Google 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 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}
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.
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
All releases include dSYMs inside of the xcarchive
file.
These can be used along with the MacSymbolicator app to symbolicate any crash logs.