README.md in snapshot-0.3.3 vs README.md in snapshot-0.4.0

- old
+ new

@@ -1,25 +1,33 @@ +<h3 align="center"> + <a href="https://github.com/KrauseFx/fastlane"> + <img src="assets/fastlane.png" width="150" /> + <br /> + fastlane + </a> +</h3> <p align="center"> -<a href="https://github.com/KrauseFx/deliver">Deliver</a> &bull; -<b>Snapshot</b> &bull; -<a href="https://github.com/KrauseFx/frameit">FrameIt</a> &bull; -<a href="https://github.com/KrauseFx/PEM">PEM</a> &bull; -<a href="https://github.com/KrauseFx/sigh">Sigh</a> + <a href="https://github.com/KrauseFx/deliver">deliver</a> &bull; + <b>snapshot</b> &bull; + <a href="https://github.com/KrauseFx/frameit">frameit</a> &bull; + <a href="https://github.com/KrauseFx/PEM">PEM</a> &bull; + <a href="https://github.com/KrauseFx/sigh">sigh</a> </p> ------- <p align="center"> <img src="assets/snapshot.png"> </p> -Snapshot - Create iOS App Screenshots +snapshot ============ [![Twitter: @KauseFx](https://img.shields.io/badge/contact-@KrauseFx-blue.svg?style=flat)](https://twitter.com/KrauseFx) [![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/KrauseFx/snapshot/blob/master/LICENSE) [![Gem](https://img.shields.io/gem/v/snapshot.svg?style=flat)](http://rubygems.org/gems/snapshot) +###### Automate taking localized screenshots of your iOS app on every device You have an iPhone app. You support 20 languages. You updated the design. You want to release the update to the App Store. What's missing? **New Screenshots** @@ -36,11 +44,11 @@ - [Clean Status Bar](#use-a-clean-status-bar) - Uploading screenshots ([```deliver```](https://github.com/KrauseFx/deliver) is your friend) This gem solves all those problems. It will run completely in the background - you can do something else, while your computer takes the screenshots for you. -Follow the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx) +Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx) ------- <p align="center"> <a href="#features">Features</a> &bull; @@ -52,22 +60,27 @@ <a href="#need-help">Need help?</a> </p> ------- +<h5 align="center"><code>snapshot</code> is part of <a href="http://fastlane.tools">fastlane</a>: connect all deployment tools into one streamlined workflow.</h5> + + # Features - Create hundreds of screenshots in multiple languages on all simulators - Configure it once, store the configuration in git - Do something else, while the computer takes the screenshots for you -- Very easy to integrate with [```deliver```](https://github.com/KrauseFx/deliver) +- Integrated with [`fastlane`](http://fastlane.tools) and [`deliver`](https://github.com/KrauseFx/deliver) - Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to Q&A or the marketing team -- ```Snapshot``` automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) +- ```snapshot``` automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) -After ```Snapshot``` successfully created new screenshots, it will generate a beautiful html file to get a quick overview of all screens: -![assets/htmlPage.png](assets/htmlPage.png) +After ```snapshot``` successfully created new screenshots, it will generate a beautiful html file to get a quick overview of all screens: + +![assets/htmlPagePreviewFade.jpg](assets/htmlPagePreviewFade.jpg) + ## Why? This gem automatically switches the language and device type and runs the automation script to take all screenshots. ### Why should I automate this process? - It takes **hours** to take screenshots @@ -79,11 +92,11 @@ ###Why use ```snapshot``` instead of.... I've been using many other solutions out there. Unfortunately none of them were perfect. The biggest issue was random timeouts of ```Instruments``` when starting the script. This problem is solved with ```snapshot``` - **UI Automation in Instruments**: Instruments can only run your app on one device in one language. You have to manually switch it. -- **[ui-screen-shooter](https://github.com/jonathanpenn/ui-screen-shooter)**: This is the best alternative out there right now. It's based on AppleScript, you can not update it properly and there are quite some hacks in there. ```Snapshot``` uses a very similar technique - just in a clean and maintainable Ruby gem. +- **[ui-screen-shooter](https://github.com/jonathanpenn/ui-screen-shooter)**: This is the best alternative out there right now. It's based on AppleScript, you can not update it properly and there are quite some hacks in there. ```snapshot``` uses a very similar technique - just in a clean and maintainable Ruby gem. - **[Subliminal](https://github.com/inkling/Subliminal)**: A good approach to write the interaction code in Objective C. Unfortunately it has a lot of open issues with the latest release of Xcode. Also, it requires modifications of your Xcode project and schemes, which might break some other things. # Installation Install the gem @@ -127,16 +140,25 @@ From now on, you can run ```snapshot``` to create new screenshots of your app. # Usage -Why should you have to remember complicated commands and parameters? +``` +snapshot +``` -Store your configuration in a text file to easily take screenshots from any computer. +To skip cleaning the project: +``` +snapshot --noclean +``` ## Snapfile +#### Why should you have to remember complicated commands and parameters? + +Store your configuration in a text file to easily take screenshots from any computer. + Create a file called ```Snapfile``` in your project directory. Once you created your configuration, just run ```snapshot```. The ```Snapfile``` may contain the following information (all are optional): @@ -235,17 +257,29 @@ ### Skip alpha removal from screenshots In case you want to skip this process, just add ```skip_alpha_removal``` to your ```Snapfile```. # Tips -## Other helpful tools -Check out other tools in this collection to speed up your deployment process: -- [```deliver```](https://github.com/KrauseFx/deliver): Deploy screenshots, app metadata and app updates to the App Store using just one command. -- [```FrameIt```](https://github.com/KrauseFx/frameit): Want a device frame around your screenshot? Do it in an instant! -- [```PEM```](https://github.com/KrauseFx/pem): Tired of manually creating and maintaining your push certification profiles? -- [```sigh```](https://github.com/KrauseFx/sigh): Because you would rather spend your time building stuff than fighting provisioning. +## [`fastlane`](http://fastlane.tools) Toolchain +- [`fastlane`](http://fastlane.tools): Connect all deployment tools into one streamlined workflow +- [`deliver`](https://github.com/KrauseFx/deliver): Upload screenshots, metadata and your app to the App Store using a single command +- [`frameit`](https://github.com/KrauseFx/frameit): Quickly put your screenshots into the right device frames +- [`PEM`](https://github.com/KrauseFx/pem): Automatically generate and renew your push notification profiles +- [`sigh`](https://github.com/KrauseFx/sigh): Because you would rather spend your time building stuff than fighting provisioning + +## Run in Continuous Integration +If you want to run `snapshot` on your `Jenkins` machine (or any other CI-system), you might run into an `authorization` popup coming up. + +You can disable this dialog, running the following command: +``` +security authorizationdb read system.privilege.taskport > /tmp/system.privilege.taskport.plist +/usr/libexec/PlistBuddy -c "Set :allow-root true" /tmp/system.privilege.taskport.plist +sudo security authorizationdb write system.privilege.taskport < /tmp/system.privilege.taskport.plist +``` +I found this solution in the [`Subliminal` wiki](https://github.com/inkling/Subliminal/wiki/Continuous-Integration#faq). + ## Specify a custom ```Snapfile``` snapshot --snapfile ./SpecialSnapfile Be aware: The file will be executed from the current directory, not the location of the ```Snapfile```. That means: ```./screenshots``` will export the screenshots to the current directory of your terminal session. @@ -265,11 +299,11 @@ Unfortunately ```Instruments``` sometimes decides, to not respond to anything. Which means, neither the ```Instruments``` application, nor the ```instruments``` command line work. Killing the process doesn't help. The only way to fix this, is a restart of the Mac. # Need help? -- If there is a technical problem with ```Snapshot```, submit an issue. Run ```snapshot --trace``` to get the stacktrace. -- I'm available for contract work - drop me an email: snapshot@felixkrause.at +- If there is a technical problem with ```snapshot```, submit an issue. Run ```snapshot --trace``` to get the stacktrace. +- I'm available for contract work - drop me an email: snapshot@krausefx.com # License This project is licensed under the terms of the MIT license. See the LICENSE file. # Contributing