Compare commits

...

451 Commits

Author SHA1 Message Date
Arthur Ariel Sabintsev c72eaf234c Improved ccoapods compatibility by modernizing podspec 2018-03-14 21:32:52 -04:00
Arthur Ariel Sabintsev edb8906b4d Updated metadata 2018-03-11 22:13:24 -04:00
Txai Wieser b7fb413814 Changed pt-BR text to be less agressive. (#201) 2018-03-11 22:09:52 -04:00
Arthur Ariel Sabintsev 0246ee905a Updated docs 2018-03-10 19:51:58 -05:00
Balázs Vincze 853eed62c4 Check if the return data contains any results (#200) 2018-03-10 19:33:21 -05:00
Arthur Ariel Sabintsev 4725475cfc Update README.md 2018-02-23 09:08:52 -05:00
Arthur Ariel Sabintsev 1d03dc16e1 Updated README 2018-02-21 18:57:17 -05:00
Arthur Ariel Sabintsev 1d3be00440 Updated docs. Closes #198. 2018-02-21 18:56:17 -05:00
Arthur Ariel Sabintsev 42c5ab103d Updated README and podspec 2017-12-08 11:09:23 -05:00
Arthur Ariel Sabintsev a82d13d1a2 Override Siren's Default Copy/Messaging in UIAlertController/UIAlertActionSheet (#187)
* Added SirenAlertMessaging struct to allow for custom overriding of messaging in UIAlertController update modal

* Spacing fix

* Comment updates

* alertMessaging is now long lazy

* Updated Sample message

* Commented sample message

* Updates Keys to Constants
2017-12-08 09:06:08 -07:00
Arthur Ariel Sabintsev 77cda5f933 Updated bundle id 2017-12-07 01:56:49 -05:00
Arthur Ariel Sabintsev a5bd175373 Closes #183. Fixes Country Code App Store URL in comments within AppDelegate. 2017-11-27 10:45:17 -05:00
Arthur Ariel Sabintsev a95766201b Updated Dutch localization 2017-11-21 23:35:30 -05:00
Attia Mo 6a7901f443 Fix Arabic localization. (#182)
* Fix Arabic localization.

* update Arabic localization Tests
2017-11-21 23:28:09 -05:00
Aaron Brager 97b23f2804 Update README with phased rollout options (#181) 2017-11-17 16:54:37 -05:00
Arthur Ariel Sabintsev e475b18892 Updated Contributors docs 2017-11-09 16:07:05 -05:00
Arthur Ariel Sabintsev c41f146a2d Update podspec 2017-11-09 16:05:42 -05:00
NSemakov 12ec30958c Add import UIKit for compilation as static framework. (#179) 2017-11-09 16:04:59 -05:00
Arthur Ariel Sabintsev cdb05f36a1 Update README.md 2017-10-23 21:58:17 -04:00
Arthur Ariel Sabintsev 8a85468354 Updated metadata 2017-10-21 10:37:54 -04:00
Vladislav Jevremović 54e91577a7 'characters' is deprecated in Swift 4 (#176) 2017-10-21 10:36:03 -04:00
Arthur Ariel Sabintsev 171250c580 Updated podspec and Contributors.md file 2017-10-19 23:57:29 -04:00
Dmytro Cheverda 1b07f76f59 Add Ukrainian localization (#175)
* Add Ukrainian localization

* Update tests to cover Ukrainian localization
2017-10-19 23:56:38 -04:00
Arthur Ariel Sabintsev b7819acbd5 Fixed transitive dependency issue by increasing scope from private to fileprivate on a couple variables and functions 2017-10-19 16:14:04 -04:00
Arthur Ariel Sabintsev 2c10d82f7f Updated Podspec 2017-10-15 22:49:05 -04:00
Arthur Ariel Sabintsev d7514471ba SirenError is now Public. Closes #174. 2017-10-15 22:48:47 -04:00
Arthur Ariel Sabintsev b918235b4e Updated podspec 2017-10-12 22:32:44 -04:00
Arthur Ariel Sabintsev 6d1e626036 Re-enabled isUpdateCompatibleWithDeviceOS 2017-10-12 22:19:25 -04:00
Arthur Ariel Sabintsev e235f46b3b Updated podspec 2017-10-11 19:48:02 -04:00
Arthur Ariel Sabintsev 17f9952d8b Updated docs 2017-10-11 19:47:20 -04:00
Arthur Ariel Sabintsev 5abf8ede8d Updated UpdateType and SirenDelegate 2017-10-11 19:45:56 -04:00
Jussi Suojanen 8caddf0f8c Add update type information to custom alert delegate function (#171) 2017-10-11 19:34:16 -04:00
Arthur Ariel Sabintsev f6219ccb90 Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2017-09-13 22:15:13 -04:00
Arthur Ariel Sabintsev 21e5f579e2 Updated Docs 2017-09-13 22:15:09 -04:00
Arthur Ariel Sabintsev 7c7791c17a Update README.md 2017-09-13 20:50:01 -04:00
Arthur Ariel Sabintsev b03b7d12bf Updated metadata 2017-09-13 13:52:52 -04:00
Jason Ash 01e439d523 Resolve accessibility issues (#162)
A few variables and one function had private access and errors were thrown stating they were inaccessible, changed to fileprivate to resolve this issue.
2017-09-13 13:50:48 -04:00
Arthur Ariel Sabintsev 1701df1c72 Update README.md 2017-09-13 08:25:46 -04:00
Arthur Ariel Sabintsev 6d5070cdb4 Updated README 2017-09-13 08:20:19 -04:00
Arthur Ariel Sabintsev 9460160937 README updates 2017-09-13 08:17:53 -04:00
Arthur Ariel Sabintsev afeadfddfa README updates 2017-09-13 08:06:25 -04:00
Arthur Ariel Sabintsev d234e8c472 Swift 4 and Xcode 9 Support (#147)
* Converted to Swift 4 using Xcode 9b1.

* Updated README with Swift 4.0 support

* Swiftier syntax for certain localization methods

* More documentation

* Implemented Swift 4 Access Control rules

* Fixed Urdu Test

* Fixed some project settings. Replaced most JSON parsing with SirenLookupModel, which conforms to codable

* Adds Siren Error. Augments Siren, SirenDelegate. Fixes double alert issue.

* Some docs changes

* Updated docs

* Simplified model

* Removed docs to fix merge conflicts. Will remake after merge

* Fixes for Xcode9b5

* Jazzy docs dump to fix CI

* Tightening up Siren.swift after Xcode 9b5 changes

* Fixed signature for sirenDidFailVersionCheck to take an Error vs NSError

* Updated README

* Minor project level changes

* Updated .swift-version and podspec
2017-09-13 08:04:48 -04:00
Arthur Ariel Sabintsev ca33c8f2c8 Updated README 2017-09-11 20:45:14 -04:00
Arthur Ariel Sabintsev 51eb58d236 Update Gemfile.lock 2017-08-27 15:02:33 -04:00
Arthur Ariel Sabintsev a8311bd6b9 Updated podspec and contributors file 2017-08-27 11:45:39 -04:00
Ryoh Tsukahara f8aa3f5534 WIP: Update ja localization (#159)
* Updated Japanese Localization

* Updated test for Japanese localization
2017-08-27 11:43:16 -04:00
Arthur Ariel Sabintsev eba3e056c2 Updated README and AppDelegate in example app 2017-08-07 19:50:56 -04:00
Arthur Ariel Sabintsev 321ba43a15 Updated docs 2017-08-06 07:07:57 -04:00
Arthur Ariel Sabintsev 0b9bae5cbb Updated podspec to 2.0.7 2017-08-05 13:45:25 -04:00
Arthur Ariel Sabintsev c6b3ece14e Updated podspec to 2.0.7 2017-08-05 13:43:41 -04:00
Arthur Ariel Sabintsev 6203ff3e17 Added SirenLog. Removed assertionFailures on default implementations … (#157)
* Added SirenLog. Removed assertionFailures on default implementations of methods defined by SirenDelegate.

* Exposes launchAppStore
2017-08-05 13:43:06 -04:00
Arthur Ariel Sabintsev f9f9b82668 Updated podspec 2017-07-30 21:49:25 -04:00
Arthur Ariel Sabintsev 59e4b9e113 Update README.md 2017-07-10 11:56:27 -04:00
Arthur Ariel Sabintsev a5a1797cce Changed comment in sample project 2017-07-10 11:48:13 -04:00
Arthur Ariel Sabintsev 9eeb265614 Moved CODEOWNERS 2017-07-07 22:41:05 -04:00
Arthur Ariel Sabintsev 31c0109adb Create CODEOWNERS 2017-07-07 22:39:06 -04:00
Arthur Ariel Sabintsev df3a8fd14f Updated CONTRIBUTORS.md 2017-06-19 14:11:33 -04:00
Arthur Ariel Sabintsev c51fcc851b Added Contributors.md 2017-06-19 14:07:47 -04:00
Arthur Ariel Sabintsev add692995a Updated Metadata files after PR merge 2017-06-19 14:03:47 -04:00
Ryoh Tsukahara 379d4b3d82 Set "en_US_POSIX" as the locale of the date formatter (#150) 2017-06-19 13:57:59 -04:00
Arthur Ariel Sabintsev c402feabf1 Update README.md 2017-06-18 23:05:39 -04:00
Arthur Ariel Sabintsev 1d563f89bf Updated docs 2017-06-15 23:54:42 -04:00
Arthur Ariel Sabintsev 3a4d7dd841 Added Urdu Localization and tests 2017-06-15 23:53:23 -04:00
Arthur Ariel Sabintsev 543a3cc1cb Updated README 2017-06-06 22:32:11 -04:00
Arthur Ariel Sabintsev f44a3ba879 Update README.md 2017-06-05 22:57:39 -04:00
Arthur Ariel Sabintsev 54b1042b5c Updated README with Swift 4.0 support 2017-06-05 22:57:12 -04:00
Arthur Ariel Sabintsev a904ca08df Updated README 2017-06-05 22:39:04 -04:00
Arthur Ariel Sabintsev 6101b30b3e Updated Podspec, Gemfile, Readme, and Contributors 2017-06-04 14:59:05 -04:00
Seyed Mojtaba Hosseini Zeidabadi 208f0ade0a Persian localization added. (#144)
Persian localization tests added.
2017-06-04 14:53:59 -04:00
Arthur Ariel Sabintsev e285ded587 Updated Gemfile 2017-05-29 14:51:37 -04:00
Arthur Ariel Sabintsev f2dc07757c Update CONTRIBUTORS.md 2017-05-29 14:43:21 -04:00
Arthur Ariel Sabintsev 6d7613fa3e Added tests for Czech localization. Updated README and Podspec 2017-05-29 14:42:31 -04:00
premyslvlcek 2352276947 Czech language support added (#143)
Czech translation
2017-05-29 14:38:26 -04:00
Arthur Ariel Sabintsev 28b789f28f Update README.md 2017-05-26 01:57:32 -04:00
Arthur Ariel Sabintsev d14e0ad046 Updated Contributors.md 2017-04-26 10:43:33 -04:00
Arthur Ariel Sabintsev d322afa41a Updated podspec 2017-04-26 10:34:01 -04:00
Txai Wieser a5a95c43af Update pt-BR localization (#140)
In Portuguese from Brazil you say "o aplicativo" (the application) with masculine pronoun, you can say "a aplicação" too but it's not very common, and its a little weird. So "A new version the 'Application'" would be translated to "Uma nova versão DO `Aplicativo`" and NOT "Uma nova versão DA 'Aplicação'"

Thank you! :)
2017-04-26 10:33:17 -04:00
Txai Wieser a6a521c8d1 Fixed Enum cases typo (#139) 2017-04-20 09:49:49 -04:00
Arthur Ariel Sabintsev 18a56fa45e Update README.md 2017-04-08 23:56:26 -04:00
Arthur Ariel Sabintsev 278d9e863e Update README.md 2017-04-08 23:55:37 -04:00
Arthur Ariel Sabintsev ba2bc03263 Update README.md 2017-04-08 03:13:26 -04:00
Arthur Ariel Sabintsev 28aba0f794 Updated gems 2017-04-08 03:11:25 -04:00
Arthur Ariel Sabintsev e8ac4b78e1 Update ISSUE_TEMPLATE.md 2017-04-08 02:30:53 -04:00
Arthur Ariel Sabintsev daaa063c60 Update ISSUE_TEMPLATE.md 2017-04-08 02:25:29 -04:00
Arthur Ariel Sabintsev f339fab54d Update ISSUE_TEMPLATE.md 2017-04-08 02:23:52 -04:00
Arthur Ariel Sabintsev 69d49689ce SirenVersionCheckType is now Siren.VersionCheckType. Updated docs and podspec. 2017-04-08 02:12:18 -04:00
Arthur Ariel Sabintsev bd4b17fafc Updated docs 2017-04-08 02:09:18 -04:00
Arthur Ariel Sabintsev 950830d94d Merge pull request #136 from ArtSabintsev/improvement/delayed-launch
2.0.0
2017-04-08 01:50:29 -04:00
Arthur Ariel Sabintsev 11bfdca77a README updates 2017-04-08 01:49:54 -04:00
Arthur Ariel Sabintsev 3e1aa263cb Updated readme and sample project 2017-04-08 01:46:39 -04:00
Arthur Ariel Sabintsev 628ff9bb8d Updated sample project, readme, podspec, project hierarchy 2017-04-08 01:41:49 -04:00
Arthur Ariel Sabintsev 4dd92112eb Added JSONKeys 2017-04-08 01:23:51 -04:00
Arthur Ariel Sabintsev 7c5f153e1f printMessage change 2017-04-08 01:11:56 -04:00
Arthur Ariel Sabintsev 3717686bf8 Documentation changes and sanity check 2017-04-08 01:05:15 -04:00
Arthur Ariel Sabintsev 404e61bcf2 Removed extra new line 2017-04-08 00:58:44 -04:00
Arthur Ariel Sabintsev 4d4fb66fd1 showAlertAfterCurrentVersionHasBeenReleasedForDays is a non-optional Int defaulting to 1 day. Added SirenTestHelper 2017-04-08 00:57:49 -04:00
Arthur Ariel Sabintsev 43232c3e94 Updated swiftlint rules 2017-04-08 00:26:00 -04:00
Arthur Ariel Sabintsev 04ecdc5d86 Updated swiftlint rules 2017-04-08 00:22:56 -04:00
Arthur Ariel Sabintsev c14ffbeaca Updated tests 2017-04-08 00:22:08 -04:00
Arthur Ariel Sabintsev c6dd2e38d9 Created SirenDelegate. Better namespacing 2017-04-08 00:21:28 -04:00
Arthur Ariel Sabintsev f37197e2d6 Removed unncessary self declarations 2017-04-07 23:56:56 -04:00
Arthur Ariel Sabintsev 1301d13b19 Update README.md 2017-04-03 18:49:31 -04:00
Arthur Ariel Sabintsev 868fd61abb Update README.md 2017-03-22 18:35:50 -04:00
Arthur Ariel Sabintsev fd3160ead2 Update README.md 2017-03-22 18:35:01 -04:00
Arthur Ariel Sabintsev bbf166c41e Updated Docs 2017-03-22 00:19:29 -04:00
Arthur Ariel Sabintsev fa410383fb Update README.md 2017-03-21 23:37:07 -04:00
Arthur Ariel Sabintsev 28f7595712 Update README.md 2017-03-21 23:36:38 -04:00
Arthur Ariel Sabintsev d49d41a147 Updated README 2017-03-21 23:34:58 -04:00
Arthur Ariel Sabintsev 4a329bafff Updated Podspec 2017-03-21 23:31:06 -04:00
Arthur Ariel Sabintsev 4569b1352c Merge pull request #134 from ArtSabintsev/improvement/Date-Extension-Safety
Added SirenDateExtension. Improved app safety.
2017-03-21 23:30:19 -04:00
Arthur Ariel Sabintsev 2632a9b661 Added SirenDateExtension. Improved app safety. 2017-03-21 23:26:07 -04:00
Arthur Ariel Sabintsev 74f266aaf0 Updated Podspec and README 2017-03-21 23:12:13 -04:00
Arthur Ariel Sabintsev 7a66d39eaa Added assets 2017-03-18 00:27:43 -04:00
Arthur Ariel Sabintsev 5ee91398b4 Updated Docs. Update scoping in extension files. 2017-03-18 00:19:35 -04:00
Arthur Ariel Sabintsev 2238ed76d9 Modified podspec 2017-03-18 00:12:06 -04:00
Arthur Ariel Sabintsev 77fec7c466 Merge pull request #131 from ArtSabintsev/improvement/codebase
Split code into separate files
2017-03-17 23:29:55 -04:00
Arthur Ariel Sabintsev 95b35eb045 Split code into separate files 2017-03-17 23:26:52 -04:00
Arthur Ariel Sabintsev cf99475842 Updated README 2017-03-14 17:10:35 -04:00
Arthur Ariel Sabintsev dee148be33 Update ISSUE_TEMPLATE.md 2017-03-13 11:35:18 -04:00
Arthur Ariel Sabintsev cb3e865e96 Update README.md 2017-03-11 23:49:03 -05:00
Arthur Ariel Sabintsev ef8f6e1a8e Removed dead links in project 2017-03-04 22:52:20 -05:00
Arthur Ariel Sabintsev 98dd98b8b5 Update README.md 2017-03-04 22:27:39 -05:00
Arthur Ariel Sabintsev 3d5775a00f Updated podspec 2017-03-04 22:24:28 -05:00
Arthur Ariel Sabintsev 5f0c8419c8 Fixed Carthage support 2017-03-04 22:24:04 -05:00
Arthur Ariel Sabintsev 474c84222b Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2017-03-04 02:14:30 -05:00
Arthur Ariel Sabintsev 1a868a150e Updated for Swift PM support 2017-03-04 02:14:28 -05:00
Arthur Ariel Sabintsev 2d29f1cc2c Update README.md 2017-03-04 01:33:26 -05:00
Arthur Ariel Sabintsev 9d98c4679c Updated README 2017-03-04 01:01:21 -05:00
Arthur Ariel Sabintsev 3a47bd871b Updated README 2017-03-04 01:00:45 -05:00
Arthur Ariel Sabintsev 03eb15e777 Merge pull request #128 from ArtSabintsev/story/swiftier-code
Swifiter Codebase
2017-03-04 00:58:13 -05:00
Arthur Ariel Sabintsev 0d0f4887cb Updated README. Updated Docs 2017-03-04 00:57:12 -05:00
Arthur Ariel Sabintsev 3ba76fdc47 Updated docs 2017-03-04 00:53:21 -05:00
Arthur Ariel Sabintsev 01673fd537 Updated Podspec. Added Deprecated flag to sharedInstance. Updated Docs 2017-03-04 00:46:32 -05:00
Arthur Ariel Sabintsev 75dc8c6f6c Updated Comments in Siren 2017-03-04 00:31:54 -05:00
Arthur Ariel Sabintsev 1703c5ae79 Replaced sharedInstance method with shared. 2017-03-04 00:21:58 -05:00
Arthur Ariel Sabintsev d756bc3a24 Updated README 2017-03-03 23:01:46 -05:00
Arthur Ariel Sabintsev 069cec7f32 Fix .travis.yml 2017-03-03 20:24:59 -05:00
Arthur Ariel Sabintsev 8c37767148 Updated .travis.yml 2017-03-03 16:42:32 -05:00
Arthur Ariel Sabintsev 2fe102ff74 Merge pull request #127 from ArtSabintsev/improvement/Repo-Changes
Repo Improvements
2017-03-03 16:39:35 -05:00
Arthur Ariel Sabintsev 5b62f92e4e Added SwiftLint and fixed SwiftLint related warnings 2017-03-03 16:01:41 -05:00
Arthur Ariel Sabintsev eadb751685 Updated Project 2017-03-03 15:43:32 -05:00
Arthur Ariel Sabintsev f56152a9df Renamed sample project 2017-03-03 15:39:59 -05:00
Arthur Ariel Sabintsev 7d406f036a Updated .travis.yml 2017-03-03 10:14:06 -05:00
Arthur Ariel Sabintsev eeb82ba4fd Update ISSUE_TEMPLATE.md 2017-02-28 11:11:06 -05:00
Arthur Ariel Sabintsev 584a80b632 Update README.md 2017-02-28 11:10:09 -05:00
Arthur Ariel Sabintsev 0d7c714a8a Update README.md 2017-02-28 11:09:46 -05:00
Arthur Ariel Sabintsev a9ba10ca92 Update ISSUE_TEMPLATE.md 2017-02-28 10:35:20 -05:00
Arthur Ariel Sabintsev a419497417 Merge pull request #124 from bre7/patch-1
Added issue template
2017-02-28 10:33:02 -05:00
Nathan 3da6a98846 Added issue template 2017-02-08 19:09:06 -03:00
Arthur Ariel Sabintsev 09c7b75422 Merge pull request #118 from sonicdoe/patch-1
Add links to badges
2017-01-19 16:25:25 -05:00
Jakob Krigovsky e990e9f2fe Add links to badges 2017-01-19 21:16:29 +01:00
Arthur Ariel Sabintsev 9e6e048c04 Update README.md 2017-01-17 13:16:09 -05:00
Arthur Ariel Sabintsev ad34efecf5 Update README.md 2017-01-17 13:15:46 -05:00
Arthur Ariel Sabintsev b644a64c92 Update README.md 2017-01-16 22:12:41 -05:00
Arthur Ariel Sabintsev f0d3c95016 Merge pull request #116 from zongmumask/master
translate README.md into Chinese
2017-01-16 22:11:52 -05:00
Daniel Hu 9db883b865 add section 2017-01-17 09:58:53 +08:00
Daniel Hu 7c007c5bf5 update 2017-01-17 09:56:35 +08:00
Daniel Hu b9d9d28f6d update 2017-01-17 09:49:01 +08:00
Daniel Hu 97fe30182e update 2017-01-17 09:36:46 +08:00
zongmumask 5e85d1e249 update 2017-01-16 21:35:07 +08:00
zongmumask 87b6eb6de3 update 2017-01-16 21:33:35 +08:00
zongmumask e0c235bb83 update 2017-01-16 21:30:12 +08:00
Arthur Ariel Sabintsev 867e6eae80 Sample app now uses .option instead of .force 2017-01-15 00:58:55 -05:00
Arthur Ariel Sabintsev d2958034a1 Updated podspec to 1.1.3 2017-01-14 16:23:13 -05:00
Arthur Ariel Sabintsev 3186be638a Merge pull request #114 from ArtSabintsev/improvement/syntax-changes
Multiple Alert Bugfix + More
2017-01-14 16:22:28 -05:00
Arthur Ariel Sabintsev 2325a8e000 More code cleaning. Also added new alertIsVisible error to deal with multiple alert bug. Fixed Finnish localization test 2017-01-14 16:19:42 -05:00
Arthur Ariel Sabintsev 3dc1167ef0 More simplifications 2017-01-14 16:06:50 -05:00
Arthur Ariel Sabintsev 6469d9bcc8 More simplifications 2017-01-14 16:06:34 -05:00
Arthur Ariel Sabintsev 2e37cf3a92 Replaced instances of AnyObject with Any. Getting rid of unnecessary whitespace 2017-01-14 16:04:26 -05:00
Arthur Ariel Sabintsev 81b6215f38 Update comment syntax 2017-01-14 15:33:16 -05:00
Arthur Ariel Sabintsev 37721a16f8 Replaced fileprivate with private in many places 2017-01-14 14:28:49 -05:00
Daniel Hu 723fb87314 translate README.md into Chinese 2017-01-13 17:31:33 +08:00
Daniel Hu 235ea58060 translate README.md into Chinese 2017-01-13 17:25:29 +08:00
Daniel Hu 25e017d493 translate README.md into Chinese 2017-01-13 16:55:39 +08:00
Daniel Hu 65fb91be84 translate README.md into Chinese 2017-01-13 16:54:20 +08:00
Arthur Ariel Sabintsev e358e9aaaf Merge pull request #109 from fl0ge/master
Update README.md with Swift 3 syntax in Setup section
2016-12-14 21:30:57 -05:00
fl0ge 5571d2a830 Update README.md with Swift 3 syntax in Setup section 2016-12-14 23:07:53 +01:00
Arthur Ariel Sabintsev af0129a575 Update README.md 2016-12-13 10:57:34 -05:00
Arthur Ariel Sabintsev cd9d2cfb7d Updated podspec and CONTRIBUTORS files 2016-12-09 13:47:50 -05:00
Arthur Ariel Sabintsev dabfc6954c Improved syntax for URLRequest after merging PR 2016-12-09 13:45:14 -05:00
Arthur Ariel Sabintsev f6d8c8236e Merge pull request #107 from xedla/nocache
It prevents the proposed update due to the cache
2016-12-09 13:29:24 -05:00
Arthur Ariel Sabintsev c7fdeea006 Merge pull request #106 from PSPDFKit-labs/Add-norwegian-language
Add Norwegian language
2016-12-09 13:05:27 -05:00
Pietro d'Alessandro d907d7b844 It prevents the proposed update due to the cache, when there is not connection to network 2016-11-30 16:12:22 +01:00
Christoph Mantler 239470dd56 Add Norwegian language 2016-11-30 11:51:52 +01:00
Arthur Ariel Sabintsev f6ca8b35fc Updated podspec and contributors files 2016-11-26 21:13:14 -05:00
Arthur Ariel Sabintsev 793937d267 Merge pull request #103 from PSPDFKit-labs/Add-translations-for-el-fi-id
Add translations in Greek (el), Finnish (fi), and Indonesian (id)
2016-11-26 21:11:27 -05:00
Christoph Mantler e097b70bb7 Update readme.md with new languages 2016-11-22 09:47:13 +01:00
Christoph Mantler 320180c9db pull in master 2016-11-22 09:45:49 +01:00
Christoph Mantler bb2d47f291 Add cases for Finnish and Indonesian language and set German in the right place alphabetically 2016-11-22 09:22:38 +01:00
Christoph Mantler 3fdb59cbc5 Add tests for Finnish and Indonesian language 2016-11-22 09:21:56 +01:00
Christoph Mantler f62f1a4ad6 delete Greek localization 2016-11-22 09:21:38 +01:00
Christoph Mantler 6ab95d8790 Add translations for Greek (el), Finnish (fi), and Indonesian (id) 2016-11-21 16:29:30 +01:00
Arthur Ariel Sabintsev d7185713ee Update README.md 2016-11-18 08:42:10 -05:00
Arthur Ariel Sabintsev a983f87db4 Update README.md 2016-11-17 17:23:19 -05:00
Arthur Ariel Sabintsev bd7848a58e Update README.md 2016-11-17 17:23:01 -05:00
Arthur Ariel Sabintsev b8fbf0ad60 Added sirenLatestVersionInstalled() to Sample App 2016-11-17 08:17:21 -05:00
Arthur Ariel Sabintsev 6470aa1da6 Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2016-11-14 09:09:16 -05:00
Arthur Ariel Sabintsev ddecd65839 Updated CONTRIBUTORS.md 2016-11-14 09:09:14 -05:00
Arthur Ariel Sabintsev ee0baccf5d Update README.md 2016-11-14 08:38:27 -05:00
Arthur Ariel Sabintsev 4cb63928fc Update CONTRIBUTORS.md 2016-11-14 08:37:29 -05:00
Arthur Ariel Sabintsev 01ebed423b updated README 2016-11-14 08:32:12 -05:00
Arthur Ariel Sabintsev 4f71a25af6 Updated podspec 2016-11-14 08:31:39 -05:00
Arthur Ariel Sabintsev 0b1108a1bb Improved Sample App documentation 2016-11-14 08:30:39 -05:00
Arthur Ariel Sabintsev 5378f2e209 Code cleanup after mergers 2016-11-14 08:22:55 -05:00
Arthur Ariel Sabintsev 432a22fc68 Merge pull request #99 from PSPDFKit-labs/master
Delegate for latest version installed and check for how long current app has been released
2016-11-14 07:42:11 -05:00
Arthur Ariel Sabintsev aa08139881 Merge pull request #101 from kwstasna/master
Support for Greek Language
2016-11-14 07:39:29 -05:00
Stefan Kieleithner e5a8883796 Setup date formatter in static method 2016-11-14 10:35:12 +01:00
Stefan Kieleithner 0e883c9f14 Use guard instead of if let 2016-11-14 10:31:15 +01:00
Stefan Kieleithner 70da5ecc98 Edit method name 2016-11-14 10:29:44 +01:00
Konstantinos N 3cca924560 Change function name 2016-11-11 20:37:40 +02:00
Konstantinos N 60192ae78d Greek Language in Tests 2016-11-11 20:15:20 +02:00
Konstantinos N 393a358d94 Support for Greek Language 2016-11-11 20:07:56 +02:00
Stefan Kieleithner 846d1299ec Add property to check if version has been released for some time 2016-11-11 09:53:15 +01:00
Stefan Kieleithner ee195d6ab8 Add delegate callback for latest version already installed 2016-11-11 09:50:38 +01:00
Arthur Ariel Sabintsev acaffbf79d Updated README 2016-11-10 23:27:38 -05:00
Arthur Ariel Sabintsev 4f4105d513 Updated Podspec and Gemfile 2016-11-09 20:16:59 -05:00
Arthur Ariel Sabintsev bf44aeca22 Merge pull request #98 from VladislavJevremovic/master
Add Serbian (Cyrillic & Latin) localization
2016-11-09 19:07:43 -05:00
Arthur Ariel Sabintsev 203df46727 Merge pull request #97 from PSPDFKit-labs/master
Use CFBundleDisplayName when available, and keep application status bar style
2016-11-09 19:07:10 -05:00
Vladislav Jevremovic cf4d08df05 Add Serbian (Cyrillic & Latin) localization 2016-11-09 14:17:14 +01:00
Stefan Kieleithner 2e3d270a38 Extract app name logic into extension 2016-11-09 14:10:45 +01:00
Stefan Kieleithner f416bda41f Keep application status bar style 2016-11-09 13:02:43 +01:00
Stefan Kieleithner e88ecc221c Use CFBundleDisplayName when available 2016-11-09 13:02:30 +01:00
Arthur Ariel Sabintsev 2507debd48 Updated Brazilian localization 2016-11-01 23:44:47 -04:00
Arthur Ariel Sabintsev 58d090ba0e Update README.md 2016-10-05 01:43:20 -04:00
Arthur Ariel Sabintsev 2af44e800f Updated CONTRIBUTORS 2016-09-27 00:30:09 -04:00
Arthur Ariel Sabintsev 4265aba2fe Updated podspec to 1.0.2 2016-09-27 00:24:52 -04:00
Arthur Ariel Sabintsev f53419b27c Modified Latvian tests after mergining #90 2016-09-27 00:24:21 -04:00
Arthur Ariel Sabintsev 83ba5134c0 Merge pull request #90 from fassko/ISSUE_89_Latvian_translations
Fixes #89
2016-09-27 00:22:42 -04:00
Kristaps Grinbergs abec09af89 Fixes #89
Update Latvian translations
2016-09-17 20:47:06 +03:00
Arthur Ariel Sabintsev 2ad65fe691 Update .travis.yml 2016-09-15 12:16:18 -04:00
Arthur Ariel Sabintsev 2e3e7378cd Update README.md 2016-09-15 12:14:49 -04:00
Arthur Ariel Sabintsev 31ce3c9bc8 Update README.md 2016-09-15 12:12:25 -04:00
Arthur Ariel Sabintsev 8cf155bc59 Rolled back compatibility back to iOS 8 2016-09-15 10:54:10 -04:00
Arthur Ariel Sabintsev 4e2a3ecd58 Added Gemfile and .swift-version file 2016-09-13 23:35:05 -04:00
Arthur Ariel Sabintsev 49765dede0 Update Siren.podspec 2016-09-11 23:19:21 -04:00
Arthur Ariel Sabintsev 2b46894f23 Updated podspec to 1.0.0 2016-09-11 23:15:34 -04:00
Arthur Ariel Sabintsev fb89ce52f5 Merge pull request #75 from ArtSabintsev/swift3
Siren 1.0.0 WIP (Swift 3 Support)
2016-09-11 23:07:08 -04:00
Arthur Ariel Sabintsev 926fcd145c Updated README 2016-09-11 23:06:37 -04:00
Arthur Ariel Sabintsev 3c67373e21 Updated README 2016-09-11 23:03:45 -04:00
Arthur Ariel Sabintsev 81e616a755 More syntactical changes to make it more swift-3-friendly 2016-08-16 21:20:37 -04:00
Arthur Ariel Sabintsev 644626a8de Fixed sample project 2016-08-16 21:14:10 -04:00
Arthur Ariel Sabintsev 0c238dba3a Updated to Xcode8b6 2016-08-16 20:45:21 -04:00
Arthur Ariel Sabintsev 2e082ce650 Merge branch 'swift3' of https://github.com/ArtSabintsev/Siren into swift3 2016-08-14 14:31:23 -04:00
Arthur Ariel Sabintsev ca00ff5ddc Merge branch 'master' into swift3 2016-08-14 14:30:52 -04:00
Arthur Ariel Sabintsev 5b42356910 Merge pull request #84 from GantMan/patch-1
Continuing influence - doc updates
2016-08-14 14:30:22 -04:00
Gant Laborde 8bf7b6ae83 Continuing influence - doc updates
another port.
2016-08-14 09:21:44 -05:00
Arthur Ariel Sabintsev 26d846901e Fixed Xcodeb5 issues with sample project 2016-08-13 14:59:05 -04:00
Arthur Ariel Sabintsev 8cd1d240c8 Updated CONTRIBUTORS.md 2016-08-13 14:42:20 -04:00
Arthur Ariel Sabintsev 0677e9cf4c Updated podspec 2016-08-13 14:40:58 -04:00
Arthur Ariel Sabintsev 24b7277faa Merge pull request #83 from thii/patch-1
Fix typo
2016-08-13 14:34:46 -04:00
Thi adb565191d Fix typo 2016-08-13 14:00:36 +09:00
Arthur Ariel Sabintsev 5463024d52 Merge branch 'master' into swift3 2016-08-05 20:59:33 -04:00
Arthur Ariel Sabintsev 78f4d02e78 Updated README 2016-08-05 20:58:52 -04:00
Arthur Ariel Sabintsev 4c0897ee2c Merge pull request #80 from joelparkerhenderson/patch-1
Update name from "Harpy" to "Siren"
2016-08-05 10:13:53 -04:00
Joel Parker Henderson d5be94fdf5 Update name from "Harpy" to "Siren" 2016-08-05 07:02:52 -05:00
Arthur Ariel Sabintsev 51f74c44e7 Support for Xcode8b4 2016-08-03 18:00:19 -04:00
Arthur Ariel Sabintsev 22f0a74423 Merged with develop (v0.9.4) 2016-07-26 23:53:33 -04:00
Arthur Ariel Sabintsev b2f9faec5c Updated contributors 2016-07-26 23:44:05 -04:00
Arthur Ariel Sabintsev 1346e98ab7 Fixed _BSMachError error and added updated podspec 2016-07-26 23:26:07 -04:00
Arthur Ariel Sabintsev 02c5a5fe1c Merge pull request #78 from thii/vi-localization
Add Vietnamese localization
2016-07-26 23:20:41 -04:00
Thi 6090905c63 Vietnamese localization test 2016-07-27 00:50:11 +09:00
Thi 9b51c18f43 Add Vietnamese localization 2016-07-27 00:46:36 +09:00
Arthur Ariel Sabintsev e6d5cc7706 Merge branch 'master' into swift3 2016-07-19 01:33:37 -05:00
Arthur Ariel Sabintsev 3818fcb98e Update README.md 2016-07-19 01:33:22 -05:00
Arthur Ariel Sabintsev 9cdb23396c Update README.md 2016-07-19 01:32:53 -05:00
Arthur Ariel Sabintsev 788fbe94d9 Update README.md 2016-07-19 01:32:39 -05:00
Arthur Ariel Sabintsev 5738982403 Updated syntax for Xcode 8b3 2016-07-18 16:23:00 -05:00
Arthur Ariel Sabintsev e99ae0dafc Merge branch 'master' into swift3 2016-07-18 16:21:05 -05:00
Arthur Ariel Sabintsev 07cc394df3 Update README.md 2016-07-18 15:55:15 -05:00
Arthur Ariel Sabintsev 61beab4398 Update README.md 2016-07-15 09:32:08 -05:00
Arthur Ariel Sabintsev 10ca21b91c Update README.md 2016-07-15 09:31:45 -05:00
Arthur Ariel Sabintsev f002994fc0 Merge branch 'master' into swift3 2016-07-14 11:25:05 -05:00
Arthur Ariel Sabintsev 2f77b8ec88 Update README.md 2016-07-14 11:24:37 -05:00
Arthur Ariel Sabintsev 6fd1ee5397 Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2016-07-14 11:23:45 -05:00
Arthur Ariel Sabintsev 036022115d Minor change to xcodeproj 2016-07-14 11:23:41 -05:00
Arthur Ariel Sabintsev 3ad716169f Update README.md 2016-07-13 22:24:08 -05:00
Arthur Ariel Sabintsev e0dda27c4e Updated syntax labels 2016-07-13 22:03:35 -05:00
Arthur Ariel Sabintsev b38582dfcd Merge branch 'master' into swift3 2016-07-13 21:57:56 -05:00
Arthur Ariel Sabintsev 598cf27728 Improved tests and edited scope for certain localization methods 2016-07-13 21:36:55 -05:00
Arthur Ariel Sabintsev 91bb2d51a7 Update README.md 2016-07-13 21:13:48 -05:00
Arthur Ariel Sabintsev b3ee4623ba Update README.md 2016-07-13 21:12:06 -05:00
Arthur Ariel Sabintsev 2f32e615d8 Update README.md 2016-07-13 21:10:36 -05:00
Arthur Ariel Sabintsev 5ef0af2a99 Update README.md 2016-07-13 16:06:51 -05:00
Arthur Ariel Sabintsev a4dffddc25 Update README.md 2016-07-13 16:05:16 -05:00
Arthur Ariel Sabintsev 25c365641f Update README.md 2016-07-08 13:06:37 -04:00
Arthur Ariel Sabintsev 4250d4144d Converted to Swift 3 using Xcode 8.0b2 migrator. Also made one small change post-conversion 2016-07-08 13:01:54 -04:00
Arthur Ariel Sabintsev 9f11ec3006 Updated Contributors.md 2016-06-24 00:40:21 -04:00
Arthur Ariel Sabintsev ae9c8b7881 Updated podspec and readme && gp 2016-06-24 00:32:11 -04:00
Arthur Ariel Sabintsev 180952e41e Added Croatian tests 2016-06-24 00:31:11 -04:00
Arthur Ariel Sabintsev 610f3aa0fd Merge pull request #73 from jinjic/croatianLocalization
croatianLocalization: Added Croatian Localization
2016-06-24 00:12:34 -04:00
Josip Injic c313976fe5 croatianLocalization: Added Croatian Localization 2016-06-23 17:30:08 -04:00
Arthur Ariel Sabintsev 6a9210ea98 Update README.md 2016-06-23 10:54:08 -04:00
Arthur Ariel Sabintsev 55e2391ea8 Update README.md 2016-06-23 10:53:34 -04:00
Arthur Ariel Sabintsev 5043485759 Update README.md 2016-06-18 14:38:11 -04:00
Arthur Ariel Sabintsev 2c796d19de Update README.md 2016-06-18 11:59:22 -04:00
Arthur Ariel Sabintsev 001dbf7f7b Update README.md 2016-06-18 11:50:37 -04:00
Arthur Ariel Sabintsev 0c16712707 Update README.md 2016-06-18 11:49:51 -04:00
Arthur Ariel Sabintsev 5a96d0e14b Update README.md 2016-06-18 11:47:05 -04:00
Arthur Ariel Sabintsev 9c3466180b Merge pull request #72 from ArtSabintsev/bugifx/fix-crash-for-new-apps
Bugifx/fix crash for new apps
2016-06-18 11:45:18 -04:00
Arthur Ariel Sabintsev 52e4503132 Updated CONTRIBUTORS.md file 2016-06-18 11:41:08 -04:00
Arthur Ariel Sabintsev 32311a2eb8 Merge pull request #71 from VahanMargaryan/master
Fixed error on apps on under development, not submitted to AppStore
2016-06-18 11:40:13 -04:00
Arthur Ariel Sabintsev 46886de89b Updated travis.yml file 2016-06-18 11:38:11 -04:00
Arthur Ariel Sabintsev d801159fd4 Project-level changes 2016-06-18 11:35:40 -04:00
Arthur Ariel Sabintsev 67e4aef8c7 Updated pospec 2016-06-18 11:32:32 -04:00
Arthur Ariel Sabintsev eb401381ef Fix crash for apps not in store 2016-06-18 11:31:52 -04:00
Vahan ae848c8d53 Fixed error on apps on under development, not submitted to AppStore 2016-06-18 12:22:54 +04:00
Arthur Ariel Sabintsev 866fadeacd Update README.md 2016-06-18 02:31:05 -04:00
Arthur Ariel Sabintsev 1c85fdd9d2 Update README.md 2016-06-18 02:29:50 -04:00
Arthur Ariel Sabintsev 82d3da4f69 Added Travis.yml file 2016-06-18 02:27:01 -04:00
Arthur Ariel Sabintsev 8ccc0219a3 Merge pull request #68 from ArtSabintsev/feature/tests
Adding Tests
2016-06-18 02:10:39 -04:00
Arthur Ariel Sabintsev 297936bad4 Updated README 2016-06-18 02:10:30 -04:00
Arthur Ariel Sabintsev fe29855443 Updated CONTRIBUTORS doc 2016-06-18 02:02:32 -04:00
Arthur Ariel Sabintsev 8b29e64fca Updated README 2016-06-18 01:57:07 -04:00
Arthur Ariel Sabintsev 68256dcceb Updated podspec 2016-06-18 01:54:30 -04:00
Arthur Ariel Sabintsev 5a50ae097f Added extra update check around minimum system version 2016-06-18 01:53:57 -04:00
Arthur Ariel Sabintsev e2bb7dbc2c Minor change 2016-06-18 01:18:12 -04:00
Arthur Ariel Sabintsev 995f6a524f Made code slightly more swifty 2016-06-18 01:17:27 -04:00
Arthur Ariel Sabintsev 03d2544526 Removed dead code from Siren class. Added test helper methods to Siren and tests around updating 2016-06-18 01:11:39 -04:00
Arthur Ariel Sabintsev bd0c4573ad Added Thai and Turkish localization tests 2016-06-18 00:35:10 -04:00
Arthur Ariel Sabintsev a2de47bd9f Added Spanish and Swedish localization tests 2016-06-18 00:31:27 -04:00
Arthur Ariel Sabintsev 98c49d9a35 Added Russian and Slovenian localization tests 2016-06-18 00:23:48 -04:00
Arthur Ariel Sabintsev 732c8f2867 Added Portuguese (Brazil & Portugal) localization tests 2016-06-18 00:21:45 -04:00
Arthur Ariel Sabintsev 9ee26f0efc Added tests for Malay and Polish Localizations 2016-06-18 00:17:37 -04:00
Arthur Ariel Sabintsev 157a8e8f44 Added Korean, Latvian, and Lithuanian localizations 2016-06-17 17:24:09 -04:00
Arthur Ariel Sabintsev 1d1144e175 Added Japanese and Italian localizations 2016-06-17 16:18:24 -04:00
Arthur Ariel Sabintsev ba1fa107fd Fixed localizations for Hungarian, italian, Portuguese (Portugal and Brazil) 2016-06-17 15:34:59 -04:00
Arthur Ariel Sabintsev 091803dd5e Added (failing) test for hungarian language localization 2016-06-15 22:09:04 -04:00
Arthur Ariel Sabintsev c64a30e0bf Added tests for Hebrew localization 2016-06-15 21:58:49 -04:00
Arthur Ariel Sabintsev 675bf7bc8b Added Dutch and Estonian localizations 2016-06-13 12:52:28 -04:00
Arthur Ariel Sabintsev 328e2ecbc7 Added Chinese Simplified and Traditional localization tests 2016-06-08 00:15:59 -04:00
Arthur Ariel Sabintsev caba1fdae1 Added tests for Basque localization 2016-06-08 00:10:06 -04:00
Arthur Ariel Sabintsev d6f3930c47 Added tests for Arabic, Armenian, Danish, and German languages. Also, exposed a couple methods in Siren for testability. 2016-06-08 00:05:07 -04:00
Arthur Ariel Sabintsev 29a30f69f5 Merge pull request #64 from ArtSabintsev/improvement/version-checking
Minor changes after PR 63
2016-05-23 23:06:23 -07:00
Arthur Ariel Sabintsev 07139b9b4a Fixed merge conflict 2016-05-24 02:06:17 -04:00
Arthur Ariel Sabintsev c0e40271d3 Minor changes after PR 63 2016-05-24 02:04:16 -04:00
Arthur Ariel Sabintsev c81daf17b5 Merge pull request #63 from pavankataria/patch-1
Issue with version checking algorithm
2016-05-23 23:02:15 -07:00
pavankataria eb6a0d56b9 https://github.com/ArtSabintsev/Siren/issues/62
Why is the following pattern check even being done? 
```
        if 2...4 ~= oldVersion.count && oldVersion.count == newVersion.count {
        }
```
The following scenario will skip this if statement and thus ignoring custom alert types:

current installed version: 15.0
current app store version: 15.0.1

why not just do this?
```
            if newVersion[0] > oldVersion[0] { // A.b.c.d
                alertType = majorUpdateAlertType
            } else if newVersion.count > 1 && (oldVersion.count <= 1 || newVersion[1] > oldVersion[1]) { // a.b.C.d
                alertType = minorUpdateAlertType
            } else if newVersion.count > 2 && (oldVersion.count <= 2 || newVersion[2] > oldVersion[2]) { // a.b.C.d
                alertType = patchUpdateAlertType
            } else if newVersion.count > 3 && (oldVersion.count <= 3 || newVersion[3] > oldVersion[3]) { // a.b.c.D
                alertType = revisionUpdateAlertType
            }
```

This will pass that test.
2016-05-23 14:58:37 +01:00
Arthur Ariel Sabintsev 6ffc0ac68a Fixed plist issue reported #58 2016-05-04 19:19:37 -04:00
Arthur Ariel Sabintsev 3f7c50f445 Updated readme 2016-04-27 03:03:53 -04:00
Arthur Ariel Sabintsev 3a21914790 Merge pull request #56 from ArtSabintsev/feature/irlabs-inspired-changes
Work in Progress for v0.8.0
2016-04-27 02:53:37 -04:00
Arthur Ariel Sabintsev 78dd7eaff7 Merged with master after mergining #54 and #55 2016-04-27 02:53:31 -04:00
Arthur Ariel Sabintsev 3ec8d95f7d Merge pull request #55 from irlabs/feature/delegateAsSwiftProtocol
Change SirenDelegate from @objc protocol to swift protocol
2016-04-27 02:49:34 -04:00
Arthur Ariel Sabintsev f339141104 Merge pull request #54 from irlabs/feature/optionalRequiredBundleId
Allow (optional) bundleID instead of (required) AppID
2016-04-27 02:49:27 -04:00
Arthur Ariel Sabintsev f735dfb75b Updated CONTRIBUTORS.md 2016-04-27 02:48:17 -04:00
Arthur Ariel Sabintsev a909585926 Updated README 2016-04-27 02:46:30 -04:00
Arthur Ariel Sabintsev 2a5d6830fe Changed scoping to public of default extension definition 2016-04-27 02:27:06 -04:00
Arthur Ariel Sabintsev 9260bcb93f Updated Podspec 2016-04-27 02:25:31 -04:00
Arthur Ariel Sabintsev 4eea6ce5a3 Updated sirenDidShowUpdateDialog delegate method to return alertType 2016-04-24 22:50:56 -04:00
Arthur Ariel Sabintsev 442da19ef1 Fixed appDelegate in sample project 2016-04-24 22:45:13 -04:00
Arthur Ariel Sabintsev b70ce2979b Extracted trackId as new, private appID. Hooked it all up 2016-04-24 22:44:27 -04:00
Arthur Ariel Sabintsev a3248f2f9e Added default/empty implementation of protocol functions 2016-04-24 22:26:57 -04:00
Arthur Ariel Sabintsev 6bb2aa9d97 Re-added guard at beginning of checkVersion 2016-04-24 22:13:55 -04:00
Arthur Ariel Sabintsev 1a8dc2fb19 Replaced appID with class func on NSBundle called bundleID. App is now able to fetch udpates without the developer explicitly adding an appID 2016-04-24 22:08:38 -04:00
Dirk van Oosterbosch 55edc3f5dd Making the extension public 2016-04-22 22:23:55 +02:00
Dirk van Oosterbosch 8f5bd92e23 Add alertType parameter to sirenDidShowUpdateDialog delegate method.
And converted the `SirenDelegate` protocol from a @objc protocol to a swift protocol, to allow for enums to be sent to the delegate. Also added empty implementations of the protocol methods in a protocol extension, because it's not possible to use the `optional` keyword with non-@objc protocols.
2016-04-22 16:10:26 +02:00
Dirk van Oosterbosch cfd099d7b9 Update the README to reflect the optional / required bundleID 2016-04-22 16:02:52 +02:00
Dirk van Oosterbosch 1ade5d1604 Require either appID or bundleID before checking the version.
Also bundleID (next to, or instead of appID) can now be used to get the info from the App Store. If the bundleID is given and an appID is not supplied, the appID will be read from the App Store json, since it is later needed when attempting to open the App Store link after "Upgrade"
2016-04-22 16:02:44 +02:00
Dirk van Oosterbosch fdc70034b3 Add specialized error code for when the version check is postponed,
because it already recently performed a check.
Also fixed a minor typo (verson instead of version)
2016-04-22 16:02:28 +02:00
Arthur Ariel Sabintsev 9444c0ce49 Update README.md 2016-04-19 08:52:28 -04:00
Arthur Ariel Sabintsev fc00c54589 Update README.md 2016-03-29 00:00:07 -04:00
Arthur Ariel Sabintsev 79062d02b5 Merge pull request #49 from ArtSabintsev/2016-refactor
Slight Refactor
2016-03-28 19:12:26 -04:00
Arthur Ariel Sabintsev 855a6d072f Updated README 2016-03-28 19:10:36 -04:00
Arthur Ariel Sabintsev 5bb360a85b Added link to OpenRadar 2016-03-28 02:59:18 -04:00
Arthur Ariel Sabintsev db4f19f4b8 Add more error handling 2016-03-28 02:21:57 -04:00
Arthur Ariel Sabintsev cdb2f7e6fc Added error handling and cleaned up logs 2016-03-28 01:47:14 -04:00
Arthur Ariel Sabintsev d0cfa3de7d Updated podspec 2016-03-22 23:52:29 -04:00
Arthur Ariel Sabintsev aef76136a7 Slight code refactor and code reorganization. Siren is now marked final. More variables are lazy. New delegate method added for all failure scenarios 2016-03-22 23:51:37 -04:00
Arthur Ariel Sabintsev fedf818b5f Merge pull request #47 from ArtSabintsev/refactor-delegate
Exposed currentAppStoreVersion
2016-03-15 20:31:33 -04:00
Arthur Ariel Sabintsev 375d19ac27 Comment change 2016-03-15 20:30:49 -04:00
Arthur Ariel Sabintsev 720513cac1 Exposed currentAppStoreVersion 2016-03-15 20:24:03 -04:00
Aaron Brager 6c99998b2f Merge pull request #46 from yusayusa/remove_semmicolon
remove semicolon
2016-03-10 08:08:35 -06:00
Kazuki Yusa c5b8045b82 remove semicolon 2016-03-10 19:19:31 +09:00
Arthur Ariel Sabintsev bce311ff80 Update README.md 2016-02-10 09:48:44 -06:00
Arthur Ariel Sabintsev 9d6cf1271a Update README.md 2016-02-07 23:23:44 -06:00
Arthur Ariel Sabintsev 1b8866f4b3 Added Swift Package manager Support 2016-02-07 23:22:37 -06:00
Arthur Ariel Sabintsev 97203166d1 updated podspec 2016-02-07 22:23:45 -06:00
Arthur Ariel Sabintsev 500bf49916 Merge pull request #42 from ArtSabintsev/carthage
Initial attempt at adding Carthage support
2016-02-07 22:04:50 -06:00
Arthur Ariel Sabintsev 221e34e913 Updated README 2016-02-07 22:03:49 -06:00
Arthur Ariel Sabintsev 901b0761c7 Initial attempt at adding Carthage support 2016-02-06 14:40:39 -06:00
Arthur Ariel Sabintsev dec674e8ab Update CONTRIBUTORS.md 2016-01-23 17:27:18 -05:00
Arthur Ariel Sabintsev 3fab9e56b3 Update CONTRIBUTORS.md 2016-01-23 17:26:44 -05:00
Arthur Ariel Sabintsev 421c27ccc1 Update CONTRIBUTORS.md 2016-01-23 17:26:27 -05:00
Arthur Ariel Sabintsev 659eff76e0 Updated podspec 2016-01-23 17:21:19 -05:00
Arthur Ariel Sabintsev 88fea94452 Merge pull request #40 from Maxim-Inv/master
Fix daysSinceLastVersionCheckDate
2016-01-23 17:20:39 -05:00
Maxim 17d655bb20 Fix daysSinceLastVersionCheckDate 2016-01-23 10:56:31 +02:00
Arthur Ariel Sabintsev 3a2781a0a8 Update README.md 2016-01-10 23:08:48 -06:00
Arthur Ariel Sabintsev 2ad0c1c328 Update README.md 2016-01-07 22:28:34 -06:00
Arthur Ariel Sabintsev ae172183f0 Update README.md 2016-01-07 22:26:40 -06:00
Arthur Ariel Sabintsev d81e8357dd Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2016-01-07 18:59:11 -06:00
Arthur Ariel Sabintsev b6cd1f6027 Improved inline documentation 2016-01-07 18:58:56 -06:00
Arthur Ariel Sabintsev fb2e915bb3 Merge pull request #38 from pixyzehn/feature/add-return-value-in-readme
Add return value in README
2015-12-19 21:40:07 -05:00
Nagasawa Hiroki 9e0acfc60e Add return value in README 2015-12-20 11:24:51 +09:00
Arthur Ariel Sabintsev 4b251ceaf4 Imported version update fix from Harpy #108 2015-12-10 00:45:33 -05:00
Arthur Ariel Sabintsev d1a9895497 Updated Contributors.md 2015-11-10 14:12:51 -05:00
Arthur Ariel Sabintsev 0aa3ce95ea Updated podspec and README 2015-11-10 14:11:33 -05:00
Arthur Ariel Sabintsev eb53545256 Merge pull request #37 from VahanMargaryan/master
Added Armenian language support (hy)
2015-11-10 14:09:37 -05:00
Vahan a9f205e779 Added Armenian language support (hy) 2015-11-06 21:39:51 +04:00
Arthur Ariel Sabintsev 0c1760410a Update Siren.podspec 2015-11-06 10:56:12 -05:00
Arthur Ariel Sabintsev e59fac5a59 Update README.md 2015-11-05 01:05:54 -05:00
Arthur Ariel Sabintsev 47ed9da2d6 Updated contributors.md 2015-11-04 22:26:14 -05:00
Arthur Ariel Sabintsev 1555ed2e00 Added Malay Localization 2015-11-04 22:24:18 -05:00
Arthur Ariel Sabintsev e43a87f284 Merge pull request #36 from SentulAsia/master
Added Malay language support (ms_MS)
2015-11-04 22:22:26 -05:00
Zaid Said 335380ea24 Added Malay language support (ms_MS) 2015-10-22 20:33:12 +08:00
Arthur Ariel Sabintsev 598d9f0cb1 Dropped iOS 7 support and cleaned up code base 2015-10-04 23:34:11 -05:00
Arthur Ariel Sabintsev 32cf1fb680 Updated README 2015-09-17 12:33:52 -05:00
Arthur Ariel Sabintsev 221056e96b Closes #31: sirenDidShowUpdateDialog() delegate method now being called properly 2015-09-17 12:32:01 -05:00
Arthur Ariel Sabintsev 3ae4866ea3 Updated README 2015-09-09 18:01:14 -04:00
Arthur Ariel Sabintsev 2cde4acedb Updated appName var definition 2015-09-09 17:59:15 -04:00
Arthur Ariel Sabintsev 07f75997ab Merge pull request #29 from ArtSabintsev/swift2
Xcode 7 / Swift 2.0 / iOS 9 Updates and multiple bug fixes.
2015-09-09 17:27:13 -04:00
Arthur Ariel Sabintsev bb59bf12f2 minor change to sample project 2015-09-09 17:26:45 -04:00
Arthur Ariel Sabintsev 71c7dd51dc Stylistic changes 2015-09-09 17:20:57 -04:00
Arthur Ariel Sabintsev 1c6f55d869 Changed error if-let to guard-let 2015-09-09 17:11:25 -04:00
Arthur Ariel Sabintsev 6f0fbc6b45 Deleted a dozen semi-colons 2015-09-09 17:08:44 -04:00
Arthur Ariel Sabintsev 687f312615 Updated NSUserDefault keys 2015-09-09 17:07:35 -04:00
Arthur Ariel Sabintsev e619a8c92b Updated README 2015-09-09 10:26:12 -04:00
Arthur Ariel Sabintsev c91b7fec9f Reverted sample project 2015-09-09 05:05:11 -04:00
Arthur Ariel Sabintsev 42b2f5c076 Fixes #26. Fixes issue with Siren not properly skipping a version when UIAlertController is presented. It did work in UIAlertViews. 2015-09-09 05:03:40 -04:00
Arthur Ariel Sabintsev 80d2a999e0 Improved safety in some places. Made NSBundle extension less afe, but did it to avoid unnecessary unwrapping elsewhere 2015-09-09 04:51:50 -04:00
Arthur Ariel Sabintsev 8842953bd2 Fixes #27 Fixes #24 - updaterWindow should no longer crash app 2015-09-09 04:32:29 -04:00
Arthur Ariel Sabintsev 4f79d6c945 Updated Sample project 2015-09-09 04:28:30 -04:00
Arthur Ariel Sabintsev 58f06eed5d Fixes #25 by adding didSet proeprty observer 2015-09-09 04:27:48 -04:00
Arthur Ariel Sabintsev 82e039db84 Improved checkVersion logic 2015-09-09 04:23:35 -04:00
Arthur Ariel Sabintsev 073afff8cb Improved checkVersion logic 2015-09-09 04:13:21 -04:00
Arthur Ariel Sabintsev 46e982f699 Initial Swift 2 port 2015-09-09 04:03:42 -04:00
Arthur Ariel Sabintsev 0a3ba7690e Updated markdown files, podspec, and added estonian and latvian translations 2015-08-12 12:00:27 -04:00
Arthur Ariel Sabintsev 98af0b6777 Added Hungarian localization 2015-08-03 21:23:44 -04:00
Arthur Ariel Sabintsev 4f561ebf49 Added Thai language support. Fixed localization bug 2015-06-28 12:01:22 -04:00
Arthur Ariel Sabintsev da65515aca Merge pull request #22 from nagaho/master
Bugfix: Siren now searches correct bundle when installed as a Cocoapod.
2015-06-28 11:46:02 -04:00
nagaho cdd8c06b11 Search in the correct bundle for resource bundle. 2015-06-22 23:08:21 +09:00
Arthur Ariel Sabintsev d108153121 Update README.md 2015-06-02 23:19:27 -04:00
Arthur Ariel Sabintsev 4ff4ed12b2 Updated README 2015-06-02 23:04:49 -04:00
Arthur Ariel Sabintsev 4cbac5258e Added Arabic localization 2015-06-02 23:03:16 -04:00
Arthur Ariel Sabintsev 09e8d99999 Updated docs 2015-06-01 20:04:52 -04:00
Arthur Ariel Sabintsev 573ed1ec4d Merge pull request #21 from liebeskind/master
Adds AlertType support for apps using revision version numbering and for apps using online major and minor version numbering.
2015-06-01 19:56:11 -04:00
liebeskind 9d46770715 Updates README to reflect addition of Revision functionality in a.b.c.d version system 2015-06-01 17:13:16 -04:00
liebeskind 259573e9f0 Updates example to demonstrate differentiated Alerts for Revision, Patch, Minor, and Major Updates 2015-06-01 17:10:08 -04:00
liebeskind e71411ea09 Updates example to demonstrate differentiated Alerts for Patch, Minor, and Major Updates 2015-06-01 17:09:01 -04:00
liebeskind 8c659fad60 Improved functionality for determining the type of alert that should be shown based on version updates. Also adds additional minor update - revision. Siren should now work if using a.b.c.d versioning system. 2015-06-01 17:00:33 -04:00
liebeskind 8883c65d82 Adds updateAlertType support for apps using only major and minor numbering system 2015-06-01 14:02:00 -04:00
Arthur Ariel Sabintsev 4df5fec911 Added new mechanism to present a UIAlertController 2015-05-04 21:53:50 -04:00
Arthur Ariel Sabintsev 8fc676be89 Merge pull request #18 from dbettermann/master
Adding a second UIWindow to display the UIAlertController.
2015-05-04 21:47:35 -04:00
Dylan Bettermann 033beba9ea Making the updaterWindow a property on the Siren class. 2015-04-29 18:50:43 -05:00
Dylan Bettermann d0f1afe4a7 Adding a second UIWindow so we can display the UIAlertController on its rootViewController 2015-04-28 20:31:36 -05:00
Arthur Ariel Sabintsev bf8130bf1e Added Lithuanian localization 2015-04-20 11:04:15 -04:00
Arthur Ariel Sabintsev 36ca1fcc80 Merge branch 'master' of github.com:ArtSabintsev/Siren 2015-04-01 11:28:55 -04:00
Arthur Ariel Sabintsev eb92d2173b Updated md files to reflect changes PR #15 changes. 2015-04-01 11:28:43 -04:00
Arthur Ariel Sabintsev 4622c17257 Merge pull request #15 from skandragon/master
Change scoping of API interfaces from internal to public to enable access to Siren through a .framework (fixes CocoaPods issue)
2015-04-01 11:10:42 -04:00
Michael Graff d1247acc99 mark API interfaces as public to enable access through a .framework 2015-04-01 02:49:04 -05:00
Arthur Ariel Sabintsev ba3044c709 Updated README 2015-04-01 03:05:33 -04:00
Arthur Ariel Sabintsev 4bff506491 Updated README 2015-04-01 03:03:53 -04:00
Arthur Ariel Sabintsev 17279f1da2 Updated README. Closes #11. Closes #12. Closes #13. 2015-04-01 03:01:00 -04:00
188 changed files with 26977 additions and 1127 deletions
+1
View File
@@ -0,0 +1 @@
* @artsabintsev
+18
View File
@@ -0,0 +1,18 @@
Before posting an issue, please make sure your issue has not already been resolved or answered elsewhere.
Common Issue #1:
> "Error retrieving iOS version number as there was no data returned."
Check if your app is available in the US App Store, otherwise add the corresponding country code when setting up Siren.
Common Issue #2:
> "Support for macOS App Store."
Siren does not and will not support the macOS App Store.
Common Issue #3:
> "Support for prompting TestFlight users to update to the newest beta build."
Siren does not support this functionality. There is no publicly accessible TestFlight API akin to that of the public App Store API that Siren can utilize to provide this functionality.
Please delete this text before submitting a new issue.
+1
View File
@@ -16,6 +16,7 @@ DerivedData
*.hmap
*.ipa
*.xcuserstate
.DS_Store
# CocoaPods
#
+10
View File
@@ -0,0 +1,10 @@
module: Siren
author: Arthur Ariel Sabintsev
author_url: http://www.sabintsev.com
github_url: https://github.com/artsabintsev/siren
copyright: "© 2015-2017 [Arthur Ariel Sabintsev](http://www.sabintsev.com)"
theme: apple
output: docs
documentation: docs/*.md
clean: true
podspec: Siren.podspec
+17
View File
@@ -0,0 +1,17 @@
reporter: "xcode"
included:
- ../Sources/
disabled_rules:
- cyclomatic_complexity
- nesting
- unused_optional_binding
- variable_name
# Specialized Rules
file_length:
- 1000
line_length:
- 200
Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Regular → Executable
+46 -1
View File
@@ -1,10 +1,55 @@
### Created and maintained by
### Creators
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) and [Aaron Brager](http://twitter.com/GetAaron)
### Siren Project Contributors
- [Dmitry Bespalov](https://github.com/diamondsky) for [Pull Request #7](https://github.com/ArtSabintsev/Siren/pull/7)
- [Daniel Bauke](https://github.com/bonkey) for [Pull Request #8](https://github.com/ArtSabintsev/Siren/pull/8)
- [ipedro](https://github.com/ipedro) for [Pull Request #76 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/76)
- [Michael Graff](http://github.com/skandragon) for [Pull Request #15](https://github.com/ArtSabintsev/Siren/pull/15)
- [Jaroslav_](https://github.com/jaroslavas) for [Pull Request #83 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/83)
- [Dylan Bettermann](https://github.com/dbettermann) for [Pull Request #18](https://github.com/ArtSabintsev/Siren/pull/18)
- [Daniel](https://github.com/Daniel) for [Pull Request #21](https://github.com/ArtSabintsev/Siren/pull/21)
- [nagaho](https://github.com/nagaho) for [Pull Request #22](https://github.com/ArtSabintsev/Siren/pull/22)
- [Parnsind Hantrakool](https://github.com/kong707) for [Pull Request #91 (Harpy)](https://github.com/ArtSabintsev/Harpy/issues/91)
- [Tibor Molnár](https://github.com/fatalaa) for [Pull Request #96 (Harpy)](https://github.com/ArtSabintsev/Harpy/issues/96)
- [Tanel Suurhans](https://github.com/tanelsuurhans) and [Jaroslav_](https://github.com/jaroslavas) for [Pull Request #99 (Harpy)](https://github.com/ArtSabintsev/Harpy/issues/99)
- [Zaid M. Said](https://github.com/SentulAsia) for [Pull Request #36](https://github.com/ArtSabintsev/Siren/pull/36)
- [Vahan Margaryan](https://github.com/VahanMargaryan) for [Pull Request #37](https://github.com/ArtSabintsev/Siren/pull/37)
- [Justus Kandzi](https://github.com/jkandzi) for [Pull Request #108 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/108)
- [Maxim-Inv](https://github.com/Maxim-Inv) for [Pull Request #40](https://github.com/ArtSabintsev/Siren/pull/40)
- [Dirk van Oosterbosch](https://github.com/irlabs) for [Pull Request #54](https://github.com/ArtSabintsev/Siren/pull/54) and [Pull Request #55](https://github.com/ArtSabintsev/Siren/pull/55)
- [pavankataria](https://github.com/pavankataria) for [Pull Request #63](https://github.com/ArtSabintsev/Siren/pull/63)
- [attilat85](https://github.com/attilat85) for [Pull Request #124 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/124)
- [Vahan Margaryan](https://github.com/VahanMargaryan) for [Pull Request #71](https://github.com/ArtSabintsev/Siren/pull/71)
- [Josip Injic](https://github.com/jinjic) for [Pull Request #73](https://github.com/ArtSabintsev/Siren/pull/73)
- [Thi](https://github.com/thii) for [Pull Request #78](https://github.com/ArtSabintsev/Siren/pull/78)
- [Ilija Puaca](https://github.com/ilijapuaca) for [Pull Request #141 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/141)
- [thii](https://github.com/ilijapuaca) for [Pull Request #83](https://github.com/ArtSabintsev/Siren/pull/83)
- [Kristaps Grinbergs](https://github.com/fassko) for [Pull Request #90](https://github.com/ArtSabintsev/Siren/pull/90)
- [Luciano Nascimento](https://github.com/@lucianocn) for [Pull Request #146 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/146)
- [Stefan Kieleithner](https://github.com/steviki) for [Pull Request #97](https://github.com/ArtSabintsev/Siren/pull/97)
- [Vladislav Jevremović](https://github.com/VladislavJevremovic) for [Pull Request #98](https://github.com/ArtSabintsev/Siren/pull/98)
- [Stefan Kieleithner](https://github.com/steviki) for [Pull Request #99](https://github.com/ArtSabintsev/Siren/pull/99)
- [Konstantinos N.](https://github.com/kwstasna) for [Pull Request #101](https://github.com/ArtSabintsev/Siren/pull/101)
- [Christoph Mantler](https://github.com/ChrisixFlash) for [Pull Request #103](https://github.com/ArtSabintsev/Siren/pull/103) and [Pull Request #106](https://github.com/ArtSabintsev/Siren/pull/106)
- [xedla](https://github.com/xedla) for [Pull Request #107](https://github.com/ArtSabintsev/Siren/pull/107)
- [Daniel Hu](https://github.com/zongmumask) for [Pull Request #116](https://github.com/ArtSabintsev/Siren/pull/116)
- [Jakob Krigovsky](https://github.com/sonicdoe) for [Pull Request #118](https://github.com/ArtSabintsev/Siren/pull/118)
- [germ4n](https://github.com/glm4) for [Pull Request #122](https://github.com/ArtSabintsev/Siren/pull/122)
- [Txai Wieser](https://github.com/txaiwieser) for [Pull Request #139](https://github.com/ArtSabintsev/Siren/pull/139) and [Pull Request #140](https://github.com/ArtSabintsev/Siren/pull/140)
- [premyslvlcek](https://github.com/premyslvlcek) for [Pull Request #143](https://github.com/ArtSabintsev/Siren/pull/143)
- [Seyed Mojtaba Hosseini Zeidabadi](https://github.com/MojtabaHs) for [Pull Request #144](https://github.com/ArtSabintsev/Siren/pull/143)
- [Chanchal Raj](https://github.com/RajChanchal) for [Pull Request #171 (Harpy)](https://github.com/ArtSabintsev/harpy/pull/171)
- [Ryoh Tsukahara](https://github.com/nixnoughtnothing) for [Pull Request #150](https://github.com/ArtSabintsev/Siren/pull/150) and [Pull Request #159](https://github.com/ArtSabintsev/Siren/pull/159)
- [Jason Wade](https://github.com/iJasonWade) for [Pull Request #162](https://github.com/ArtSabintsev/Siren/pull/162)
- [JussiSuojanen](https://github.com/JussiSuojanen) for [Pull Request #171](https://github.com/ArtSabintsev/Siren/pull/171)
- [Dmytro Cheverda](https://github.com/dimacheverda) for [Pull Request #175](https://github.com/ArtSabintsev/Siren/pull/175)
- [Vladislav Jevremovic](https://github.com/VladislavJevremovic) for [Pull Request #176](https://github.com/ArtSabintsev/Siren/pull/176)
- [NSemakov](https://github.com/NSemakov) for [Pull Request #179](https://github.com/ArtSabintsev/Siren/pull/179)
- [Attia Mo](https://github.com/attiamo) for [Pull Request #182](https://github.com/ArtSabintsev/Siren/pull/182)
- [wbison](https://github.com/wbison) for [Pull Request #185 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/185)
- [Balázs Vincze](https://github.com/vinczebalazs) for [Pull Request #200](https://github.com/ArtSabintsev/siren/pull/200)
- [Txai Wieser](https://github.com/txaiwieser) for [Pull Request #201](https://github.com/ArtSabintsev/siren/pull/200)
### Harpy Project Contributors
+5
View File
@@ -0,0 +1,5 @@
# A sample Gemfile
source "https://rubygems.org"
gem "cocoapods"
gem "jazzy"
+103
View File
@@ -0,0 +1,103 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (2.3.6)
activesupport (4.2.10)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
atomos (0.1.2)
claide (1.0.2)
cocoapods (1.4.0)
activesupport (>= 4.0.2, < 5)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.4.0)
cocoapods-deintegrate (>= 1.0.2, < 2.0)
cocoapods-downloader (>= 1.1.3, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-stats (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.3.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (~> 2.0.1)
gh_inspector (~> 1.0)
molinillo (~> 0.6.4)
nap (~> 1.0)
ruby-macho (~> 1.1)
xcodeproj (>= 1.5.4, < 2.0)
cocoapods-core (1.4.0)
activesupport (>= 4.0.2, < 6)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
cocoapods-deintegrate (1.0.2)
cocoapods-downloader (1.1.3)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.0)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.3.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.1.0)
colored2 (3.1.2)
concurrent-ruby (1.0.5)
escape (0.0.4)
ffi (1.9.23)
fourflusher (2.0.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jazzy (0.9.1)
cocoapods (~> 1.0)
mustache (~> 0.99)
open4
redcarpet (~> 3.2)
rouge (>= 2.0.6, < 4.0)
sass (~> 3.4)
sqlite3 (~> 1.3)
xcinvoke (~> 0.3.0)
liferaft (0.0.6)
minitest (5.11.3)
molinillo (0.6.4)
mustache (0.99.8)
nanaimo (0.2.3)
nap (1.1.0)
netrc (0.11.0)
open4 (1.3.4)
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
redcarpet (3.4.0)
rouge (3.1.1)
ruby-macho (1.1.0)
sass (3.5.5)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sqlite3 (1.3.13)
thread_safe (0.3.6)
tzinfo (1.2.5)
thread_safe (~> 0.1)
xcinvoke (0.3.0)
liferaft (~> 0.0.6)
xcodeproj (1.5.6)
CFPropertyList (~> 2.3.3)
atomos (~> 0.1.2)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.2.3)
PLATFORMS
ruby
DEPENDENCIES
cocoapods
jazzy
BUNDLED WITH
1.16.1
Regular → Executable
View File
+5
View File
@@ -0,0 +1,5 @@
import PackageDescription
let package = Package(
name: "Siren"
)
Regular → Executable
+242 -111
View File
@@ -1,187 +1,318 @@
# Siren
# Siren 🚨
### Notify users when a new version of your app is available, and prompt them with the App Store link.
### Notify users when a new version of your app is available and prompt them to upgrade.
![Swift Support](https://img.shields.io/badge/Swift-2.3%2C%203.1%2C%203.2%2C%204.0-orange.svg)
[![BuddyBuild](https://dashboard.buddybuild.com/api/statusImage?appID=58c4d0d85601d40100c5c51d&branch=master&build=latest)](https://dashboard.buddybuild.com/apps/58c4d0d85601d40100c5c51d/build/latest?branch=master) [![CocoaPods](https://img.shields.io/cocoapods/v/Siren.svg)](https://cocoapods.org/pods/Siren) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![SwiftPM Compatible](https://img.shields.io/badge/SwiftPM-Compatible-brightgreen.svg)](https://swift.org/package-manager/) [![CocoaPods](https://img.shields.io/cocoapods/dt/Siren.svg)](https://cocoapods.org/pods/Siren) [![CocoaPods](https://img.shields.io/cocoapods/dm/Siren.svg)](https://cocoapods.org/pods/Siren)
---
### About
## Table of Contents
- [About](https://github.com/ArtSabintsev/Siren#about)
- [Features](https://github.com/ArtSabintsev/Siren#features)
- [Screenshots](https://github.com/ArtSabintsev/Siren#screenshots)
- [Installation Instructions](https://github.com/ArtSabintsev/Siren#installation-instructions)
- [Example Code](https://github.com/ArtSabintsev/Siren#example-code)
- [Granular/Differentiated Version Management](https://github.com/ArtSabintsev/Siren#granular-version-update-management)
- [Delegates (Optional)](https://github.com/ArtSabintsev/Siren#optional-delegate-and-delegate-methods)
- [Localization](https://github.com/ArtSabintsev/Siren#localization)
- [Device Compatibility](https://github.com/ArtSabintsev/Siren#device-compatibility)
- [Testing Siren](https://github.com/ArtSabintsev/Siren#testing-siren)
- [App Store Review & Submissions](https://github.com/ArtSabintsev/Siren#app-store-submissions)
- [Phrased Releases](https://github.com/ArtSabintsev/Siren#phased-releases)
- [Words of Caution](https://github.com/ArtSabintsev/Siren#words-of-caution)
- [Ports](https://github.com/ArtSabintsev/Siren#ports)
- [Attribution](https://github.com/ArtSabintsev/Siren#created-and-maintained-by)
---
## About
**Siren** checks a user's currently installed version of your iOS app against the version that is currently available in the App Store.
If a new version is available, an alert can be presented to the user informing them of the newer version, and giving them the option to update the application. Alternatively, Siren can notify your app programmatically, enabling you to inform the user through alternative means, such as a custom interface.
- Siren is built to work with the [**Semantic Versioning**](http://semver.org/) system.
- Siren is a Swift language port of [**Harpy**](http://github.com/ArtSabintsev/Harpy), an Objective-C library that achieves the same functionality.
- Siren is actively maintained by [**Arthur Sabintsev**](http://github.com/ArtSabintsev) and [**Aaron Brager**](http://twitter.com/getaaron).
- Semantic Versioning is a three number versioning system (e.g., 1.0.0)
- Siren also supports two-number versioning (e.g., 1.0) and four-number versioning (e.g., 1.0.0.0)
- Siren is actively maintained by [**Arthur Sabintsev**](http://github.com/ArtSabintsev) and [**Aaron Brager**](http://twitter.com/getaaron)
### Changelog (v0.3.3)
- Added Brazilian Portuguese localization (thanks to [ipedro](https://github.com/ipedro))
### README Translations
- [**简体中文**](README.zh_CN.md) (by [**Daniel Hu**](http://www.jianshu.com/u/d8bbc4831623))
### Features
## Features
- [x] CocoaPods Support
- [x] Support for `UIAlertController` (iOS 8+) and `UIAlertView` (iOS 7)
- [x] Localized for 19 languages (See **Localization** Section)
- [x] Three types of alerts (see **Screenshots & Alert Types**)
- [x] Optional delegate methods (see **Optional Delegate** section)
- [x] Carthage Support
- [x] Swift Package Manager Support
- [x] Localized for 30+ languages (see [Localization](https://github.com/ArtSabintsev/Siren#localization))
- [x] Pre-Update Device Compatibility Check (see [Device Compatibility](https://github.com/ArtSabintsev/Siren#device-compatibility))
- [x] Three types of alerts (see [Screenshots](https://github.com/ArtSabintsev/Siren#screenshots))
- [x] Optional delegate methods (see [Delegates (Optional)](https://github.com/ArtSabintsev/Siren#optional-delegate-and-delegate-methods))
- [x] Unit Tests
- [x] Documentation can be found at http://sabintsev.com/Siren.
### Installation Instructions
## Screenshots
- The **left picture** forces the user to update the app.
- The **center picture** gives the user the option to update the app.
- The **right picture** gives the user the option to skip the current update.
- These options are controlled by the `Siren.AlertType` enum.
#### CocoaPods Installation
<img src="https://github.com/ArtSabintsev/Siren/blob/master/Assets/picForcedUpdate.png?raw=true" height="480"><img src="https://github.com/ArtSabintsev/Siren/blob/master/Assets/picOptionalUpdate.png?raw=true" height="480"><img src="https://github.com/ArtSabintsev/Siren/blob/master/Assets/picSkippedUpdate.png?raw=true" height="480">
## Installation Instructions
| Swift Version | Branch Name | Will Continue to Receive Updates?
| ------------- | ------------- | -------------
| 4.0 | master | **Yes**
| 3.2 | swift3.2 | No
| 3.1 | swift3.1 | No
| 2.3 | swift2.3 | No
### CocoaPods
For Swift 4 support:
```ruby
pod 'Siren'
```
- Requires [CocoaPods 0.36 prerelease](http://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks/) or later
- Only for apps with a minimum deployment target of iOS 8.0 or later
For Swift 3.2 support:
```ruby
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift3.2'
```
> CocoaPods does not support pods written in Swift on iOS 7. For more information, please see [this issue](https://github.com/CocoaPods/swift/issues/22).
If your app needs to support iOS 7, use **Manual Installation**.
For Swift 3.1 support:
```ruby
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift3.1'
```
#### Manual Installation
For Swift 2.3 support:
```ruby
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3'
```
1. [Download Siren](//github.com/ArtSabintsev/Siren/archive/master.zip).
2. Copy the `Siren` folder into your project.
### Carthage
For Swift 4 support:
```swift
github "ArtSabintsev/Siren"
```
### Setup Instructions
For Swift 3.2 support:
Here's some commented sample code. Adapt this to meet your app's needs.
```swift
github "ArtSabintsev/Siren", "swift3.2"
```
For Swift 3.1 support:
```swift
github "ArtSabintsev/Siren", "swift3.1"
```
For Swift 2.3 support:
```ruby
github "ArtSabintsev/Siren", "swift2.3"
```
### Swift Package Manager
```swift
.Package(url: "https://github.com/ArtSabintsev/Siren.git", majorVersion: 3)
```
## Example Code
Below is some commented sample code. Adapt this to meet your app's needs.
For a full list of optional settings/preferences, please refer to https://github.com/ArtSabintsev/Siren/blob/master/SirenExample/SirenExample/AppDelegate.swift in the Sample Project.
```Swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
/* Siren code should go below window?.makeKeyAndVisible() */
// Siren is a singleton
let siren = Siren.SharedInstance
// Required: Your app's iTunes App Store ID
siren.appID = <#Your_App_ID#>
// Required on iOS 8: The controller to present the alert from (usually the UIWindow's rootViewController)
siren.presentingViewController = window?.rootViewController
// Optional: Defaults to .Option
siren.alertType = <#SirenAlertType_Enum_Value#>
/*
Replace .Immediately with .Daily or .Weekly to specify a maximum daily or weekly frequency for version
checks.
*/
siren.checkVersion(.Immediately)
// Siren is a singleton
let siren = Siren.shared
// Optional: Defaults to .option
siren.alertType = <#Siren.AlertType_Enum_Value#>
// Optional: Change the various UIAlertController and UIAlertAction messaging. One or more values can be changes. If only a subset of values are changed, the defaults with which Siren comes with will be used.
siren.alertMessaging = SirenAlertMessaging(updateTitle: "New Fancy Title",
updateMessage: "New message goes here!",
updateButtonMessage: "Update Now, Plz!?",
nextTimeButtonMessage: "OK, next time it is!",
skipVersionButtonMessage: "Please don't push skip, please don't!")
// Optional: Set this variable if you would only like to show an alert if your app has been available on the store for a few days.
// This default value is set to 1 to avoid this issue: https://github.com/ArtSabintsev/Siren#words-of-caution
// To show the update immediately after Apple has updated their JSON, set this value to 0. Not recommended due to aforementioned reason in https://github.com/ArtSabintsev/Siren#words-of-caution.
siren.showAlertAfterCurrentVersionHasBeenReleasedForDays = 3
// Replace .immediately with .daily or .weekly to specify a maximum daily or weekly frequency for version checks.
// DO NOT CALL THIS METHOD IN didFinishLaunchingWithOptions IF YOU ALSO PLAN TO CALL IT IN applicationDidBecomeActive.
siren.checkVersion(checkType: .immediately)
return true
}
func applicationDidBecomeActive(application: UIApplication)
{
func applicationDidBecomeActive(application: UIApplication) {
/*
Perform daily (.Daily) or weekly (.Weekly) checks for new version of your app.
Perform daily (.daily) or weekly (.weekly) checks for new version of your app.
Useful if user returns to your app from the background after extended period of time.
Place in applicationDidBecomeActive(_:). */
Siren.sharedInstance.checkVersion(.Daily)
Siren.shared.checkVersion(checkType: .daily)
}
func applicationWillEnterForeground(application: UIApplication)
{
func applicationWillEnterForeground(application: UIApplication) {
/*
Useful if user returns to your app from the background after being sent to the
App Store, but doesn't update their app before coming back to your app.
ONLY USE WITH SirenAlertType.Force
Useful if user returns to your app from the background after being sent to the
App Store, but doesn't update their app before coming back to your app.
ONLY USE WITH Siren.AlertType.immediately
*/
Siren.sharedInstance.checkVersion(.Immediately)
Siren.shared.checkVersion(checkType: .immediately)
}
```
And you're all set!
### Screenshots & Alert Types
Siren can force an update, let the user optionally update, and allow the user to skip an update.
To control this behavior, assign a `SirenAlertType` to `alertType` (or one of the specific alert type properties).
> #### `siren.alertType = .Force`
>
> Forces the user to update.
>
> ![Forced Update](https://github.com/ArtSabintsev/Harpy/blob/master/samplePictures/picForcedUpdate.png?raw=true "Forced Update")
> ----
> #### `siren.alertType = .Option`
> The default behavior.
>
> ![Optional Update](https://github.com/ArtSabintsev/Harpy/blob/master/samplePictures/picOptionalUpdate.png?raw=true "Optional Update")
> ----
> #### `siren.alertType = .Skip`
> Allows the user to opt out of future reminders for this version.
>
> ![Skip Update](https://github.com/ArtSabintsev/Harpy/blob/master/samplePictures/picSkippedUpdate.png?raw=true "Optional Update")
> ----
> #### `siren.alertType = .None`
>
> This option doesn't show an alert view. It's useful for skipping Patch, Minor, or Major updates, or for presenting your own UI.
### Prompting for Updates without Alerts
Some developers may want to display a less obtrusive custom interface, like a banner or small icon. To accomplish this, you can disable alert presentation by doing the following:
```swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
...
siren.delegate = self
siren.alertType = .None
siren.alertType = .none
...
}
extension AppDelegate: SirenDelegate
{
extension AppDelegate: SirenDelegate {
// Returns a localized message to this delegate method upon performing a successful version check
func sirenDidDetectNewVersionWithoutAlert(message: String) {
println("\(message)")
func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType) {
print("\(message)")
}
}
```
Siren will call the `sirenDidDetectNewVersionWithoutAlert(message: String)` delegate method, passing a localized, suggested update string suitable for display. Implement this method to display your own messaging, optionally using `message`.
### Differentiated Alerts for Patch, Minor, and Major Updates
If you would like to set a different type of alert for patch, minor, and/or major updates, simply add one or all of the following *optional* lines to your setup *before* calling the `checkVersion()` method:
## Granular Version Update Management
If you would like to set a different type of alert for revision, patch, minor, and/or major updates, simply add one or all of the following *optional* lines to your setup *before* calling the `checkVersion()` method:
```swift
/* Siren defaults to SirenAlertType.Option for all updates */
siren.sharedInstance().patchUpdateAlertType = <#SirenAlertType_Enum_Value#>
siren.sharedInstance().minorUpdateAlertType = <#SirenAlertType_Enum_Value#>
siren.sharedInstance().majorUpdateAlertType = <#SirenAlertType_Enum_Value#>
/* Siren defaults to Siren.AlertType.option for all updates */
siren.shared.revisionUpdateAlertType = <#Siren.AlertType_Enum_Value#>
siren.shared.patchUpdateAlertType = <#Siren.AlertType_Enum_Value#>
siren.shared.minorUpdateAlertType = <#Siren.AlertType_Enum_Value#>
siren.shared.majorUpdateAlertType = <#Siren.AlertType_Enum_Value#>
```
### Optional Delegate and Delegate Methods
Five delegate methods allow you to handle or track the user's behavior:
## Optional Delegate and Delegate Methods
Six delegate methods allow you to handle or track the user's behavior. Each method has a default, empty implementation, effectively making each of these methods optional.
``` swift
@objc protocol SirenDelegate {
optional func sirenDidShowUpdateDialog() // User presented with update dialog
optional func sirenUserDidLaunchAppStore() // User did click on button that launched App Store.app
optional func sirenUserDidSkipVersion() // User did click on button that skips version update
optional func sirenUserDidCancel() // User did click on button that cancels update dialog
optional func sirenDidDetectNewVersionWithoutAlert(message: String) // Siren performed version check and did not display alert
public protocol SirenDelegate: class {
// User presented with update dialog
func sirenDidShowUpdateDialog(alertType: Siren.AlertType)
// User did click on button that launched App Store.app
func sirenUserDidLaunchAppStore()
// User did click on button that skips version update
func sirenUserDidSkipVersion()
// User did click on button that cancels update dialog
func sirenUserDidCancel()
// Siren failed to perform version check (may return system-level error)
func sirenDidFailVersionCheck(error: Error)
// Siren performed version check and did not display alert
func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType)
}
```
### Force Localization
Harpy supports 20 languages: Basque, Chinese (Simplified), Chinese (Traditional), Danish, Dutch, English, French, German, Hebrew, Italian, Japanese, Korean, Polish, Portuguese (Brazil), Portuguese (Portugal), Russian, Slovenian, Swedish, Spanish, and Turkish.
## Localization
Siren is localized for
- Arabic
- Armenian
- Basque
- Chinese (Simplified and Traditional)
- Croatian
- Czech
- Danish
- Dutch
- English
- Estonian
- Finnish
- French
- German
- Greek
- Hebrew
- Hungarian
- Indonesian
- Italian
- Japanese
- Korean
- Latvian
- Lithuanian
- Malay
- Norwegian (Bokmål)
- Persian (Afghanistan, Iran, Persian)
- Polish
- Portuguese (Brazil and Portugal)
- Russian
- Serbian (Cyrillic and Latin)
- Slovenian
- Spanish
- Swedish
- Thai
- Turkish
- Ukrainian
- Urdu
- Vietnamese
You may want the update dialog to *always* appear in a certain language, ignoring iOS's language setting (e.g. apps released in a specific country).
You can enable it like this:
You can enable it like so:
```swift
Siren.sharedInstance.forceLanguageLocalization = SirenLanguageType.<#SirenLanguageType_Enum_Value#>
Siren.shared.forceLanguageLocalization = Siren.LanguageType.<#Siren.LanguageType_Enum_Value#>
```
### How to test Siren
Temporarily change the version string in Xcode to an older version than the one that's currently available in the App Store. Afterwards, build and run your app, and you should see the alert.
## Device Compatibility
If an app update is available, Siren checks to make sure that the version of iOS on the user's device is compatible with the one that is required by the app update. For example, if a user has iOS 9 installed on their device, but the app update requires iOS 10, an alert will not be shown. This takes care of the *false positive* case regarding app updating.
### App Store Submissions
## Testing Siren
Temporarily change the version string in Xcode (within the `.xcodeproj`) to an older version than the one that's currently available in the App Store. Afterwards, build and run your app, and you should see the alert.
If you currently don't have an app in the store, change your bundleID to one that is already in the store. In the sample app packaged with this library, we use the [iTunes Connect Mobile](https://itunes.apple.com/us/app/itunes-connect/id376771144?mt=8) app's bundleID: `com.apple.itunesconnect.mobile`.
For your convenience, you may turn on debugging statements by setting `self.debugEnabled = true` before calling the `checkVersion()` method.
## App Store Submissions
The App Store reviewer will **not** see the alert. The version in the App Store will always be older than the version being reviewed.
### Created and maintained by
## Phased Releases
In 2017, Apple announced the [ability to rollout app updates gradually (a.k.a. Phased Releases)](https://itunespartner.apple.com/en/apps/faq/Managing%20Your%20Apps_Submission%20Process). Siren will continue to work as it has in the past, presenting an update modal to _all_ users. If you opt-in to a phased rollout for a specific version, you have a few choices:
- You can leave Siren configured as normal. Phased rollout will continue to auto-update apps. Since all users can still manually update your app directly, Siren will ignore the phase rollout and will prompt users to update.
- You can set `showAlertAfterCurrentVersionHasBeenReleasedForDays` to `7`, and Siren will not prompt any users until the latest version is 7 days old, after phased rollout is complete.
- You can remotely disable Siren until the rollout is done using your own API / backend logic.
## Words of Caution
Occasionally, the iTunes JSON will update faster than the App Store CDN, meaning the JSON may state that the new version of the app has been released, while no new binary is made available for download via the App Store. It is for this reason that Siren will, by default, wait 24 hours after the JSON has been updated to prompt the user to update. To change the default setting, please modify the value of `showAlertAfterCurrentVersionHasBeenReleasedForDays`.
## Ports
- **Objective-C (iOS)**
- [**Harpy**](http://github.com/ArtSabintsev/Harpy)
- Siren was ported _from_ Harpy, as Siren and Harpy are maintained by the same developer.
- **Java (Android)**
- [**Egghead Games' Siren library**](https://github.com/eggheadgames/Siren)
- The Siren Swift library inspired the Java library.
- **React Native (iOS)**
- [**Gant Laborde's Siren library**](https://github.com/GantMan/react-native-siren)
- The Siren Swift library inspired the React Native library.
## Created and maintained by
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) & [Aaron Brager](http://twitter.com/getaaron)
+232
View File
@@ -0,0 +1,232 @@
# Siren [English](README.md)
### 当您的 app 有新版本可用时提示用户进行更新。
[![Travis-CI](https://travis-ci.org/ArtSabintsev/Siren.svg?branch=master)](https://travis-ci.org/ArtSabintsev/Siren) [![CocoaPods](https://img.shields.io/cocoapods/v/Siren.svg)](https://cocoapods.org/pods/Siren) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![SwiftPM Compatible](https://img.shields.io/badge/SwiftPM-Compatible-brightgreen.svg)](https://swift.org/package-manager/) [![CocoaPods](https://img.shields.io/cocoapods/dt/Siren.svg)](https://cocoapods.org/pods/Siren) [![CocoaPods](https://img.shields.io/cocoapods/dm/Siren.svg)](https://cocoapods.org/pods/Siren)
---
## 关于
**Siren** 用于检测用户当前安装版本是否是 App Store 上的最新可用版本。
当 app 有更新时,Siren 会弹出提示框,用户可根据提示框提供的选项进行更新。或者您也可以根据 Siren 发出的消息来自定义通知用户的方式,比如您可以提供一个自定义的提示框。
- Siren 可配合 [**Semantic Versioning**](http://semver.org/) 系统使用
- Semantic 版本系统由三位数字标识 (比如,1.0.0)
- Siren 同时支持两位数字标识 (比如,1.0)
- Siren 同时支持四位数字标识 (比如,1.0.0.0)
- Siren 当前处于活跃维护状态,由[**Arthur Sabintsev**](http://github.com/ArtSabintsev) 和 [**Aaron Brager**](http://twitter.com/getaaron) 进行维护。
## Ports
- [**Harpy**](http://github.com/ArtSabintsev/Harpy) 是 Objective-C 实现的版本更新检查库,Siren 是 Harpy 的 swift 版本。
- Siren 和 Harpy 是由相同的开发者维护。
- 安卓平台 Play Store 上的 [**Egghead Games' Siren library**](https://github.com/eggheadgames/Siren) 库使用了和 Siren 相同的原理实现了版本更新检测。
- 针对 React Native 项目 (iOS/Android) 的 [**Gant Laborde's Siren library**](https://github.com/GantMan/react-native-siren) 库使用了和 Siren 相同的原理实现了版本更新检测。
## 特点
- [x] 支持 Cocoapods
- [x] 支持 Carthage
- [x] 支持 Swift 包管理器
- [x] 30+ 语言本地化 (查看**本地化**)
- [x] 设备兼容性检测 (查看**设备兼容性**)
- [x] 三种类型的弹出提示框 (查看**截图**)
- [x] 可选代理方法 (查看**可选代理**)
- [x] 单元测试!
## 截图
- **左图** 强制用户更新
- **中间** 给用户提供更新选项
- **右图** 给用户提供更新和跳过更新选项
- 这些选项对应着 `SirenAlertType` 枚举类型
<img src="https://github.com/ArtSabintsev/Harpy/blob/master/samplePictures/picForcedUpdate.png?raw=true" height=480">
<img src="https://github.com/ArtSabintsev/Harpy/blob/master/samplePictures/picOptionalUpdate.png?raw=true" height=480">
<img src="https://github.com/ArtSabintsev/Harpy/blob/master/samplePictures/picSkippedUpdate.png?raw=true" height=480">
## 安装指南
### CocoaPods
Swift 3 版本:
```ruby
pod 'Siren'
```
Swift 2.3 版本:
```ruby
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3'
```
Swift 2.2 版本:
```ruby
pod 'Siren', '0.9.5'
```
### Carthage
FSwift 3 版本:
``` swift
github "ArtSabintsev/Siren"
```
Swift 2.3 版本:
``` swift
github "ArtSabintsev/Siren" "swift2.3"
```
### Swift 包管理器
```swift
.Package(url: "https://github.com/ArtSabintsev/Siren.git", majorVersion: 1)
```
## 使用
下面是一些示例代码。请根据您的需求进行修改。更详细的使用说明请参考示例项目中的 https://github.com/ArtSabintsev/Siren/blob/master/Sample%20App/Sample%20App/AppDelegate.swift。
```Swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
/* Siren code should go below window?.makeKeyAndVisible() */
// Siren is a singleton
let siren = Siren.sharedInstance
// Optional: Defaults to .Option
siren.alertType = <#SirenAlertType_Enum_Value#>
/*
Replace .Immediately with .Daily or .Weekly to specify a maximum daily or weekly frequency for version
checks.
*/
siren.checkVersion(checkType: .immediately)
return true
}
func applicationDidBecomeActive(application: UIApplication) {
/*
Perform daily (.Daily) or weekly (.Weekly) checks for new version of your app.
Useful if user returns to your app from the background after extended period of time.
Place in applicationDidBecomeActive(_:). */
Siren.sharedInstance.checkVersion(checkType: .daily)
}
func applicationWillEnterForeground(application: UIApplication) {
/*
Useful if user returns to your app from the background after being sent to the
App Store, but doesn't update their app before coming back to your app.
ONLY USE WITH SirenAlertType.Force
*/
Siren.sharedInstance.checkVersion(checkType: .immediately)
}
```
### 使用非弹出提示框进行提示
您可以使用顶部条幅等更友好的方式进行提示。首先,您需要通过下面代码禁用弹出提示框:
```swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
...
siren.delegate = self
siren.alertType = .None
...
}
extension AppDelegate: SirenDelegate {
// 当检测到有更新可用时向该代理方法传递一个本地化的提示信息
func sirenDidDetectNewVersionWithoutAlert(message: String) {
print("\(message)")
}
}
```
Siren 会调用 `sirenDidDetectNewVersionWithoutAlert(message: String)` 代理方法,该方法传递了一个本地化的更新提示信息作为参数。您可以使用该参数作为提示信息,也可以使用自定义的提示信息。
## 为修订版,补丁,小版本,大版本设置不同的提示框类型
您可以为修订版,补丁,小版本,大版本等设置不同提示框类型,只需要在 `checkVersion()` 方法前调用进行如下设置即可:
```swift
/* Siren defaults to SirenAlertType.Option for all updates */
siren.sharedInstance().revisionUpdateAlertType = <#SirenAlertType_Enum_Value#>
siren.sharedInstance().patchUpdateAlertType = <#SirenAlertType_Enum_Value#>
siren.sharedInstance().minorUpdateAlertType = <#SirenAlertType_Enum_Value#>
siren.sharedInstance().majorUpdateAlertType = <#SirenAlertType_Enum_Value#>
```
##可选代理和代理方法
您可以通过下面六个代理方法跟踪用户进行的操作。
``` swift
public protocol SirenDelegate: class {
func sirenDidShowUpdateDialog(alertType: SirenAlertType) // 弹出更新提示框
func sirenUserDidLaunchAppStore() // 用户点击去 app store 更新
func sirenUserDidSkipVersion() // 用户点击跳过此次更新
func sirenUserDidCancel() // 用户点击取消更新
func sirenDidFailVersionCheck(error: NSError) // 检查更新失败(可能返回系统级别的错误)
func sirenDidDetectNewVersionWithoutAlert(message: String) // 检测到更新但不弹出提示框
}
```
## 本地化
Siren 为以下国家做了本地化
- Arabic
- Armenian
- Basque
- Chinese (Simplified and Traditional)
- Danish
- Dutch
- English
- Estonian
- Finnish
- French
- German
- Greek
- Hebrew
- Hungarian
- Indonesian
- Italian
- Japanese
- Korean
- Latvian
- Lithuanian
- Malay
- Norwegian (Bokmål)
- Polish
- Portuguese (Brazil and Portugal)
- Russian
- Serbian (Cyrillic and Latin)
- Slovenian
- Swedish
- Spanish
- Thai
- Turkish
- Vietnamese
您可以通过以下代码忽略 iOS 系统语言设置,为弹出框设置固定语言。
```swift
Siren.sharedInstance.forceLanguageLocalization = SirenLanguageType.<#SirenLanguageType_Enum_Value#>
```
## 设备兼容性
当有更新可用时,Siren 会检测用户的 iOS 版本号是否符合更新需求。比如,用户的系统是 iOS 9,但此次更新只针对 iOS 10,这时是不会出现弹出提示框。
## 测试
测试时,需要暂时将 Xcode 里(`.xcodeproj` 文件) 的版本号修改为比当前苹果商店中的可用版本号大。这样编译运行 app 时,您就可以看到弹出提示框。
如果您尚未发布过 App,把 bundleID 修改为一个 app store 已经存在的 bundleID。在示例项目中,我们使用了 [iTunes Connect Mobile](https://itunes.apple.com/us/app/itunes-connect/id376771144?mt=8) 的 bundleID`com.apple.itunesconnect.mobile`。
为方便调试,您可以在调用 `checkVersion()` 方法前通过 `self.debugEnabled = true` 来开启调试模式。
## 提交至 App Store
因为商店里的可用版本总是比提交审核的版本老,所以苹果商店审核人员在审核时是**不会**弹出提示框的。
##创建维护人员
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) & [Aaron Brager](http://twitter.com/getaaron)
## 翻译人员
[Daniel Hu](http://www.jianshu.com/u/d8bbc4831623)
@@ -1,304 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
8E1005E71A5DD02300509B14 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E1005DF1A5DD02300509B14 /* AppDelegate.swift */; };
8E1005E81A5DD02300509B14 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8E1005E01A5DD02300509B14 /* LaunchScreen.xib */; };
8E1005E91A5DD02300509B14 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8E1005E21A5DD02300509B14 /* Main.storyboard */; };
8E1005EA1A5DD02300509B14 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8E1005E41A5DD02300509B14 /* Images.xcassets */; };
8E1005EC1A5DD02300509B14 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E1005E61A5DD02300509B14 /* ViewController.swift */; };
8E1005F01A5DD04500509B14 /* Siren.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8E1005EE1A5DD04500509B14 /* Siren.bundle */; };
8E1005F11A5DD04500509B14 /* Siren.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E1005EF1A5DD04500509B14 /* Siren.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8E1005DF1A5DD02300509B14 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
8E1005E11A5DD02300509B14 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
8E1005E31A5DD02300509B14 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
8E1005E41A5DD02300509B14 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
8E1005E51A5DD02300509B14 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8E1005E61A5DD02300509B14 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
8E1005EE1A5DD04500509B14 /* Siren.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Siren.bundle; sourceTree = "<group>"; };
8E1005EF1A5DD04500509B14 /* Siren.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Siren.swift; sourceTree = "<group>"; };
8EC391811A58B465001C121E /* Sample App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Sample App.app"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8EC3917E1A58B465001C121E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
8E1005DE1A5DD02300509B14 /* Sample App */ = {
isa = PBXGroup;
children = (
8E1005ED1A5DD04500509B14 /* Siren */,
8E1005DF1A5DD02300509B14 /* AppDelegate.swift */,
8E1005E61A5DD02300509B14 /* ViewController.swift */,
8E1005E01A5DD02300509B14 /* LaunchScreen.xib */,
8E1005E21A5DD02300509B14 /* Main.storyboard */,
8E1005E51A5DD02300509B14 /* Info.plist */,
8E1005E41A5DD02300509B14 /* Images.xcassets */,
);
path = "Sample App";
sourceTree = "<group>";
};
8E1005ED1A5DD04500509B14 /* Siren */ = {
isa = PBXGroup;
children = (
8E1005EE1A5DD04500509B14 /* Siren.bundle */,
8E1005EF1A5DD04500509B14 /* Siren.swift */,
);
name = Siren;
path = ../../Siren;
sourceTree = "<group>";
};
8EC391781A58B465001C121E = {
isa = PBXGroup;
children = (
8E1005DE1A5DD02300509B14 /* Sample App */,
8EC391821A58B465001C121E /* Products */,
);
sourceTree = "<group>";
};
8EC391821A58B465001C121E /* Products */ = {
isa = PBXGroup;
children = (
8EC391811A58B465001C121E /* Sample App.app */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8EC391801A58B465001C121E /* Sample App */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "Sample App" */;
buildPhases = (
8EC3917D1A58B465001C121E /* Sources */,
8EC3917E1A58B465001C121E /* Frameworks */,
8EC3917F1A58B465001C121E /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Sample App";
productName = Siren;
productReference = 8EC391811A58B465001C121E /* Sample App.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
8EC391791A58B465001C121E /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0610;
ORGANIZATIONNAME = "Sabintsev iOS Projects";
TargetAttributes = {
8EC391801A58B465001C121E = {
CreatedOnToolsVersion = 6.1.1;
};
};
};
buildConfigurationList = 8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "Sample App" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 8EC391781A58B465001C121E;
productRefGroup = 8EC391821A58B465001C121E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
8EC391801A58B465001C121E /* Sample App */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8EC3917F1A58B465001C121E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8E1005F01A5DD04500509B14 /* Siren.bundle in Resources */,
8E1005EA1A5DD02300509B14 /* Images.xcassets in Resources */,
8E1005E81A5DD02300509B14 /* LaunchScreen.xib in Resources */,
8E1005E91A5DD02300509B14 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8EC3917D1A58B465001C121E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8E1005EC1A5DD02300509B14 /* ViewController.swift in Sources */,
8E1005F11A5DD04500509B14 /* Siren.swift in Sources */,
8E1005E71A5DD02300509B14 /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
8E1005E01A5DD02300509B14 /* LaunchScreen.xib */ = {
isa = PBXVariantGroup;
children = (
8E1005E11A5DD02300509B14 /* Base */,
);
name = LaunchScreen.xib;
sourceTree = "<group>";
};
8E1005E21A5DD02300509B14 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
8E1005E31A5DD02300509B14 /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
8EC3919E1A58B466001C121E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
8EC3919F1A58B466001C121E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
8EC391A11A58B466001C121E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "$(SRCROOT)/Sample App/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_NAME = "Sample App";
};
name = Debug;
};
8EC391A21A58B466001C121E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "$(SRCROOT)/Sample App/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_NAME = "Sample App";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "Sample App" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8EC3919E1A58B466001C121E /* Debug */,
8EC3919F1A58B466001C121E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "Sample App" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8EC391A11A58B466001C121E /* Debug */,
8EC391A21A58B466001C121E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 8EC391791A58B465001C121E /* Project object */;
}
-77
View File
@@ -1,77 +0,0 @@
//
// AppDelegate.swift
// Siren
//
// Created by Arthur Sabintsev on 1/3/15.
// Copyright (c) 2015 Sabintsev iOS Projects. All rights reserved.
//
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window?.makeKeyAndVisible()
setupSiren()
return true
}
func setupSiren() {
let siren = Siren.sharedInstance
// Required
siren.appID = "376771144" // For this example, we're using the iTunes Connect App (https://itunes.apple.com/us/app/itunes-connect/id376771144?mt=8)
// Required
siren.presentingViewController = window?.rootViewController
// Optional
siren.delegate = self
// Optional
siren.debugEnabled = true;
// Optional
siren.alertType = .Option
// Optional
// siren.forceLanguageLocalization = .Spanish // Optional: Sets all messages to appear in Spanish. Siren supports many other languages, not just English and Spanish.
// Required
siren.checkVersion(.Immediately)
}
}
extension AppDelegate: SirenDelegate
{
func sirenDidShowUpdateDialog() {
println("sirenDidShowUpdateDialog")
}
func sirenUserDidCancel() {
println("sirenUserDidCancel")
}
func sirenUserDidSkipVersion() {
println("sirenUserDidSkipVersion")
}
func sirenUserDidLaunchAppStore() {
println("sirenUserDidLaunchAppStore")
}
/**
This method is only hit when alertType is initialized to .None
*/
func sirenDidDetectNewVersionWithoutAlert(message: String) {
println("\(message)")
}
}
Regular → Executable
+15 -15
View File
@@ -1,23 +1,23 @@
Pod::Spec.new do |s|
# Version
s.version = "3.2.3"
s.swift_version = '4.0'
# Meta
s.name = "Siren"
s.version = "0.3.3"
s.summary = "Notify users when a new version of your iOS app is available, and prompt them with the App Store link.."
s.description = <<-DESC
Siren is checks a users currently installed version of your iOS app against the version that is currently available in the App Store. If a new version is available, an instance of UIAlertView (iOS 7) or UIAlertController (iOS 8) can be presented to the user informing them of the newer version, and giving them the option to update the application. Alternatively, Siren can notify your app programmatically, enabling you to inform the user through alternative means, such as a custom interface.
Siren is built to work with the Semantic Versioning system.
Siren is a Swift port of Harpy, an Objective-C library that achieves the same functionality.
Siren is actively maintained by Arthur Sabintsev and Aaron Brager.
DESC
s.summary = "Notify users that a new version of your iOS app is available, and prompt them with the App Store link."
s.homepage = "https://github.com/ArtSabintsev/Siren"
s.license = "MIT"
s.authors = { "Arthur Sabintsev" => "arthur@sabintsev.com", "Aaron Brager" => "getaaron@gmail.com" }
s.authors = { "Arthur Ariel Sabintsev" => "arthur@sabintsev.com", "Aaron Brager" => "getaaron@gmail.com" }
s.description = <<-DESC
Notify your users when a new version of your iOS app is available, and prompt them with the App Store link.
DESC
# Compatibility & Sources
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/ArtSabintsev/Siren.git", :tag => "0.3.3" }
s.source_files = 'Siren/Siren.swift'
s.resources = 'Siren/Siren.bundle'
s.source = { :git => "https://github.com/ArtSabintsev/Siren.git", :tag => s.version.to_s }
s.source_files = 'Sources/*.swift'
s.resources = 'Sources/Siren.bundle'
s.requires_arc = true
end
-603
View File
@@ -1,603 +0,0 @@
//
// Siren.swift
// Siren
//
// Created by Arthur Sabintsev on 1/3/15.
// Copyright (c) 2015 Sabintsev iOS Projects. All rights reserved.
//
import UIKit
// MARK: SirenDelegate Protocol
@objc protocol SirenDelegate {
optional func sirenDidShowUpdateDialog() // User presented with update dialog
optional func sirenUserDidLaunchAppStore() // User did click on button that launched App Store.app
optional func sirenUserDidSkipVersion() // User did click on button that skips version update
optional func sirenUserDidCancel() // User did click on button that cancels update dialog
optional func sirenDidDetectNewVersionWithoutAlert(message: String) // Siren performed version check and did not display alert
}
// MARK: Enumerations
/**
Determines the type of alert to present after a successful version check has been performed.
There are four options:
- Force: Forces user to update your app (1 button alert)
- Option: (DEFAULT) Presents user with option to update app now or at next launch (2 button alert)
- Skip: Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert)
- None: Doesn't show the alert, but instead returns a localized message for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method
*/
public enum SirenAlertType
{
case Force // Forces user to update your app (1 button alert)
case Option // (DEFAULT) Presents user with option to update app now or at next launch (2 button alert)
case Skip // Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert)
case None // Doesn't show the alert, but instead returns a localized message for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method
}
/**
Determines the frequency in which the the version check is performed
- .Immediately: Version check performed every time the app is launched
- .Daily: Version check performedonce a day
- .Weekly: Version check performed once a week
*/
public enum SirenVersionCheckType : Int
{
case Immediately = 0 // Version check performed every time the app is launched
case Daily = 1 // Version check performed once a day
case Weekly = 7 // Version check performed once a week
}
/**
Determines the available languages in which the update message and alert button titles should appear.
By default, the operating system's default lanuage setting is used. However, you can force a specific language
by setting the forceLanguageLocalization property before calling checkVersion()
*/
public enum SirenLanguageType: String
{
case Basque = "eu"
case ChineseSimplified = "zh-Hans"
case ChineseTraditional = "zh-Hant"
case Danish = "da"
case Dutch = "nl"
case English = "en"
case French = "fr"
case Hebrew = "he"
case German = "de"
case Italian = "it"
case Japanese = "ja"
case Korean = "ko"
case Polish = "pl"
case PortugueseBrazil = "pt"
case PortuguesePortugal = "pt-PT"
case Russian = "ru"
case Slovenian = "sl"
case Spanish = "es"
case Swedish = "sv"
case Turkish = "tr"
}
// MARK: Siren
/**
The Siren Class.
A singleton that is initialized using the sharedInstance() method.
*/
public class Siren: NSObject
{
// MARK: Constants
// NSUserDefault key that stores the timestamp of the last version check
let sirenDefaultStoredVersionCheckDate = "Siren Stored Date From Last Version Check"
// NSUserDefault key that stores the version that a user decided to skip
let sirenDefaultSkippedVersion = "Siren User Decided To Skip Version Update"
// Current installed version of your app
let currentInstalledVersion = NSBundle.mainBundle().currentInstalledVersion()
// NSBundle path for localization
let bundlePath = NSBundle.mainBundle().pathForResource("Siren", ofType: "Bundle")
// MARK: Variables
/**
The SirenDelegate variable, which should be set if you'd like to be notified:
- When a user views or interacts with the alert
- sirenDidShowUpdateDialog()
- sirenUserDidLaunchAppStore()
- sirenUserDidSkipVersion()
- sirenUserDidCancel()
- When a new version has been detected, and you would like to present a localized message in a custom UI
- sirenDidDetectNewVersionWithoutAlert(message: String)
*/
weak var delegate: SirenDelegate?
/**
The debug flag, which is disabled by default.
When enabled, a stream of println() statements are logged to your console when a version check is performed.
*/
lazy var debugEnabled = false
// Alert Vars
/**
Determines the type of alert that should be shown.
See the SirenAlertType enum for full details.
*/
var alertType = SirenAlertType.Option
/**
Determines the type of alert that should be shown for major version updates: A.b.c
Defaults to SirenAlertType.Option.
See the SirenAlertType enum for full details.
*/
var majorUpdateAlertType = SirenAlertType.Option
/**
Determines the type of alert that should be shown for minor version updates: a.B.c
Defaults to SirenAlertType.Option.
See the SirenAlertType enum for full details.
*/
var minorUpdateAlertType = SirenAlertType.Option
/**
Determines the type of alert that should be shown for minor patch updates: a.b.C
Defaults to SirenAlertType.Option.
See the SirenAlertType enum for full details.
*/
var patchUpdateAlertType = SirenAlertType.Option
// Required Vars
/**
The App Store / iTunes Connect ID for your app.
*/
var appID: String?
/**
The view controller that will present the instance of UIAlertController.
It is recommended that you set this value to window?.rootViewController.
This property must be set before calling checkVersion().
*/
var presentingViewController: UIViewController?
// Optional Vars
/**
The name of your app.
By default, it's set to the name of the app that's stored in your plist.
*/
lazy var appName: String = (NSBundle.mainBundle().infoDictionary?[kCFBundleNameKey] as? String) ?? ""
/**
The region or country of an App Store in which your app is available.
By default, all version checks are performed against the US App Store.
If your app is not available in the US App Store, you should set it to the identifier
of at least one App Store within which it is available.
*/
var countryCode: String?
/**
Overrides the default localization of a user's device when presenting the update message and button titles in the alert.
See the SirenLanguageType enum for more details.
*/
var forceLanguageLocalization: SirenLanguageType?
/**
Overrides the tint color for UIAlertController.
*/
var alertControllerTintColor: UIColor?
// Private
private var lastVersionCheckPerformedOnDate: NSDate?
private var currentAppStoreVersion: String?
// MARK: Initialization
public class var sharedInstance: Siren {
struct Singleton {
static let instance = Siren()
}
return Singleton.instance
}
override init() {
lastVersionCheckPerformedOnDate = NSUserDefaults.standardUserDefaults().objectForKey(sirenDefaultStoredVersionCheckDate) as? NSDate;
}
// MARK: Check Version
/**
Checks the currently installed version of your app against the App Store.
The default check is against the US App Store, but if your app is not listed in the US,
you should set the `countryCode` property before calling this method. Please refer to the countryCode property for more information.
:param: checkType The frequency in days in which you want a check to be performed. Please refer to the SirenVersionCheckType enum for more details.
*/
func checkVersion(checkType: SirenVersionCheckType) {
if (appID == nil) {
println("[Siren] Please make sure that you have set 'appID' before calling checkVersion.")
} else if (useAlertController && presentingViewController == nil) { // iOS 8 only
println("[Siren] Please make sure that you have set 'presentingViewController' before calling checkVersion.")
} else {
if checkType == .Immediately {
performVersionCheck()
} else {
if let lastCheckDate = lastVersionCheckPerformedOnDate {
if daysSinceLastVersionCheckDate() >= checkType.rawValue {
performVersionCheck()
}
} else {
performVersionCheck()
}
}
}
}
private func performVersionCheck() {
// Create Request
let itunesURL = iTunesURLFromString()
let request = NSMutableURLRequest(URL: itunesURL)
request.HTTPMethod = "GET"
// Perform Request
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
if data.length > 0 {
// Convert JSON data to Swift Dictionary of type [String : AnyObject]
let appData = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil) as? [String: AnyObject]
if let appData = appData {
dispatch_async(dispatch_get_main_queue(), { () -> Void in
// Print iTunesLookup results from appData
if self.debugEnabled {
println("[Siren] JSON results: \(appData)");
}
// Process Results (e.g., extract current version on the AppStore)
self.processVersionCheckResults(appData)
})
} else { // appData == nil
if self.debugEnabled {
println("[Siren] Error retrieving App Store data as data was nil: \(error.localizedDescription)")
}
}
} else { // data.length == 0
if self.debugEnabled {
println("[Siren] Error retrieving App Store data as no data was returned: \(error.localizedDescription)")
}
}
})
task.resume()
}
private func processVersionCheckResults(lookupResults: [String: AnyObject]) {
// Store version comparison date
self.storeVersionCheckDate()
let results = lookupResults["results"] as? [[String: AnyObject]]
if let results = results {
if results.isEmpty == false { // Conditional that avoids crash when app not in App Store or appID mistyped
self.currentAppStoreVersion = results[0]["version"] as? String
if let currentAppStoreVersion = self.currentAppStoreVersion {
if self.isAppStoreVersionNewer() {
self.showAlertIfCurrentAppStoreVersionNotSkipped()
} else {
if self.debugEnabled {
println("[Siren] App Store version of app is not newer")
}
}
} else { // lookupResults["results"][0] does not contain "version" key
if self.debugEnabled {
println("[Siren] Error retrieving App Store verson number as results[0] does not contain a 'version' key")
}
}
} else { // lookupResults does not contain any data as the returned array is empty
if self.debugEnabled {
println("[Siren] Error retrieving App Store verson number as results returns an empty array")
}
}
} else { // lookupResults does not contain any data
if self.debugEnabled {
println("[Siren] Error retrieving App Store verson number as there was no data returned")
}
}
}
}
// MARK: Alert
private extension Siren {
func showAlertIfCurrentAppStoreVersionNotSkipped() {
self.alertType = self.setAlertType()
if let previouslySkippedVersion = NSUserDefaults.standardUserDefaults().objectForKey(sirenDefaultSkippedVersion) as? String {
if currentAppStoreVersion! != previouslySkippedVersion {
showAlert()
}
} else {
showAlert()
}
}
func showAlert() {
let updateAvailableMessage = NSBundle().localizedString("Update Available", forceLanguageLocalization: forceLanguageLocalization)
var newVersionMessage = localizedNewVersionMessage();
if (useAlertController) { // iOS 8
let alertController = UIAlertController(title: updateAvailableMessage, message: newVersionMessage, preferredStyle: .Alert)
if let alertControllerTintColor = alertControllerTintColor {
alertController.view.tintColor = alertControllerTintColor
}
switch alertType {
case .Force:
alertController.addAction(updateAlertAction());
case .Option:
alertController.addAction(nextTimeAlertAction());
alertController.addAction(updateAlertAction());
case .Skip:
alertController.addAction(nextTimeAlertAction());
alertController.addAction(updateAlertAction());
alertController.addAction(skipAlertAction());
case .None:
delegate?.sirenDidDetectNewVersionWithoutAlert?(newVersionMessage)
}
if alertType != .None {
presentingViewController?.presentViewController(alertController, animated: true, completion: nil)
}
} else { // iOS 7
var alertView: UIAlertView?
let updateButtonTitle = localizedUpdateButtonTitle()
let nextTimeButtonTitle = localizedNextTimeButtonTitle()
let skipButtonTitle = localizedSkipButtonTitle()
switch alertType {
case .Force:
alertView = UIAlertView(title: updateAvailableMessage, message: newVersionMessage, delegate: self, cancelButtonTitle: updateButtonTitle)
case .Option:
alertView = UIAlertView(title: updateAvailableMessage, message: newVersionMessage, delegate: self, cancelButtonTitle: nextTimeButtonTitle)
alertView!.addButtonWithTitle(updateButtonTitle)
case .Skip:
alertView = UIAlertView(title: updateAvailableMessage, message: newVersionMessage, delegate: self, cancelButtonTitle: skipButtonTitle)
alertView!.addButtonWithTitle(updateButtonTitle)
alertView!.addButtonWithTitle(nextTimeButtonTitle)
case .None:
delegate?.sirenDidDetectNewVersionWithoutAlert?(newVersionMessage)
}
if let alertView = alertView {
alertView.show()
}
}
}
func updateAlertAction() -> UIAlertAction {
let title = localizedUpdateButtonTitle()
let action = UIAlertAction(title: title, style: .Default) { (alert: UIAlertAction!) -> Void in
self.launchAppStore()
self.delegate?.sirenUserDidLaunchAppStore?()
return
}
return action
}
func nextTimeAlertAction() -> UIAlertAction {
let title = localizedNextTimeButtonTitle()
let action = UIAlertAction(title: title, style: .Default) { (alert: UIAlertAction!) -> Void in
self.delegate?.sirenUserDidCancel?()
return
}
return action
}
func skipAlertAction() -> UIAlertAction {
let title = localizedSkipButtonTitle()
let action = UIAlertAction(title: title, style: .Default) { (alert: UIAlertAction!) -> Void in
self.delegate?.sirenUserDidSkipVersion?()
return
}
return action
}
}
// MARK: Helpers
private extension Siren {
func iTunesURLFromString() -> NSURL {
var storeURLString = "https://itunes.apple.com/lookup?id=\(appID!)"
if let countryCode = countryCode {
storeURLString += "&country=\(countryCode)"
}
if debugEnabled {
println("[Siren] iTunes Lookup URL: \(storeURLString)");
}
return NSURL(string: storeURLString)!
}
func daysSinceLastVersionCheckDate() -> Int {
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitDay, fromDate: NSDate(), toDate: lastVersionCheckPerformedOnDate!, options: nil)
return components.day
}
func isAppStoreVersionNewer() -> Bool {
var newVersionExists = false
if let currentInstalledVersion = self.currentInstalledVersion {
if (currentInstalledVersion.compare(currentAppStoreVersion!, options: .NumericSearch) == NSComparisonResult.OrderedAscending) {
newVersionExists = true
}
}
return newVersionExists
}
func storeVersionCheckDate() {
lastVersionCheckPerformedOnDate = NSDate()
if let lastVersionCheckPerformedOnDate = self.lastVersionCheckPerformedOnDate {
NSUserDefaults.standardUserDefaults().setObject(self.lastVersionCheckPerformedOnDate!, forKey: self.sirenDefaultStoredVersionCheckDate)
NSUserDefaults.standardUserDefaults().synchronize()
}
}
func setAlertType() -> SirenAlertType {
let oldVersion = split(currentInstalledVersion!) {$0 == "."}.map {$0.toInt() ?? 0}
let newVersion = split(currentAppStoreVersion!) {$0 == "."}.map {$0.toInt() ?? 0}
if oldVersion.count == 3 && newVersion.count == 3 {
if newVersion[0] > oldVersion[0] { // A.b.c
alertType = majorUpdateAlertType
} else if newVersion[1] > oldVersion[1] { // a.B.c
alertType = minorUpdateAlertType
} else if newVersion[2] > oldVersion[2] { // a.b.C
alertType = patchUpdateAlertType
}
}
return alertType
}
// iOS 8 Compatibility Check
var useAlertController: Bool { // iOS 8 check
return objc_getClass("UIAlertController") != nil
}
// Actions
func launchAppStore() {
let iTunesString = "https://itunes.apple.com/app/id\(appID!)";
let iTunesURL = NSURL(string: iTunesString);
UIApplication.sharedApplication().openURL(iTunesURL!);
}
}
// MARK: String Localization
private extension Siren {
func localizedNewVersionMessage() -> String {
let newVersionMessageToLocalize = "A new version of %@ is available. Please update to version %@ now."
var newVersionMessage = NSBundle().localizedString(newVersionMessageToLocalize, forceLanguageLocalization: forceLanguageLocalization)
newVersionMessage = String(format: newVersionMessage!, appName, currentAppStoreVersion!)
return newVersionMessage!
}
func localizedUpdateButtonTitle() -> String {
return NSBundle().localizedString("Update", forceLanguageLocalization: forceLanguageLocalization)!
}
func localizedNextTimeButtonTitle() -> String {
return NSBundle().localizedString("Next time", forceLanguageLocalization: forceLanguageLocalization)!
}
func localizedSkipButtonTitle() -> String {
return NSBundle().localizedString("Skip this version", forceLanguageLocalization: forceLanguageLocalization)!;
}
}
// MARK: NSBundle Extension
private extension NSBundle {
func currentInstalledVersion() -> String? {
return NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as? String
}
func sirenBundlePath() -> String {
return NSBundle.mainBundle().pathForResource("Siren", ofType: "bundle") as String!
}
func sirenForcedBundlePath(forceLanguageLocalization: SirenLanguageType) -> String {
let path = sirenBundlePath()
let name = forceLanguageLocalization.rawValue
return NSBundle(path: path)!.pathForResource(name, ofType: "lproj")!
}
func localizedString(stringKey: String, forceLanguageLocalization: SirenLanguageType?) -> String? {
var path: String
let table = "SirenLocalizable"
if let forceLanguageLocalization = forceLanguageLocalization {
path = sirenForcedBundlePath(forceLanguageLocalization)
} else {
path = sirenBundlePath()
}
return NSBundle(path: path)?.localizedStringForKey(stringKey, value: stringKey, table: table)
}
}
// MARK: UIAlertViewDelegate
extension Siren: UIAlertViewDelegate
{
public func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
switch alertType {
case .Force:
launchAppStore()
case .Option:
if buttonIndex == 1 { // Launch App Store.app
launchAppStore()
self.delegate?.sirenUserDidLaunchAppStore?()
} else { // Ask user on next launch
self.delegate?.sirenUserDidCancel?()
}
case .Skip:
if buttonIndex == 0 { // Launch App Store.app
NSUserDefaults.standardUserDefaults().setObject(currentAppStoreVersion!, forKey: sirenDefaultSkippedVersion)
NSUserDefaults.standardUserDefaults().synchronize()
self.delegate?.sirenUserDidSkipVersion?()
} else if buttonIndex == 1 {
launchAppStore()
self.delegate?.sirenUserDidLaunchAppStore?()
} else if buttonIndex == 2 { // Ask user on next launch
self.delegate?.sirenUserDidCancel?()
}
case .None:
if debugEnabled {
println("[Siren] No alert presented due to alertType == .None")
}
}
}
}
+24
View File
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
+19
View File
@@ -0,0 +1,19 @@
//
// Siren.h
// Siren
//
// Created by Sabintsev, Arthur on 3/4/17.
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for Siren.
FOUNDATION_EXPORT double SirenVersionNumber;
//! Project version string for Siren.
FOUNDATION_EXPORT const unsigned char SirenVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <Siren/PublicHeader.h>
+693
View File
@@ -0,0 +1,693 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
55EC364B1E6BB98A00726F13 /* Siren.h in Headers */ = {isa = PBXBuildFile; fileRef = 55EC36491E6BB98A00726F13 /* Siren.h */; settings = {ATTRIBUTES = (Public, ); }; };
55EC364E1E6BB98A00726F13 /* Siren.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55EC36471E6BB98A00726F13 /* Siren.framework */; };
55EC364F1E6BB98A00726F13 /* Siren.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 55EC36471E6BB98A00726F13 /* Siren.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
55EC36601E6BB99B00726F13 /* Siren.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 55EC365E1E6BB99B00726F13 /* Siren.bundle */; };
55EC36611E6BB99B00726F13 /* Siren.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55EC365F1E6BB99B00726F13 /* Siren.swift */; };
8E1635A91E6A0B9C0060CE27 /* SirenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EE6C74C1E6A0AE100DBE454 /* SirenTests.swift */; };
8E2499BF1FD83DDF00F384BA /* SirenAlertMessaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E2499BE1FD83DDF00F384BA /* SirenAlertMessaging.swift */; };
8E43D6231E8223EE00ECFFC8 /* SirenDateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E43D6221E8223EE00ECFFC8 /* SirenDateExtension.swift */; };
8E528A301E989A7A00B643C4 /* SirenDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E528A2F1E989A7A00B643C4 /* SirenDelegate.swift */; };
8E528A321E989E0A00B643C4 /* SirenTestHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E528A311E989E0A00B643C4 /* SirenTestHelper.swift */; };
8E5D15B11F3632D7001C0960 /* SirenLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E5D15B01F3632D7001C0960 /* SirenLog.swift */; };
8E9C238B1E7CDB42000ED3DA /* SirenBundleExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9C238A1E7CDB42000ED3DA /* SirenBundleExtension.swift */; };
8E9C238D1E7CDD31000ED3DA /* SirenUIAlertControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9C238C1E7CDD31000ED3DA /* SirenUIAlertControllerExtension.swift */; };
8E9C238F1E7CDDE7000ED3DA /* SirenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9C238E1E7CDDE7000ED3DA /* SirenViewController.swift */; };
8EACA9701F37F327003134CA /* SirenLookupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EACA96F1F37F327003134CA /* SirenLookupModel.swift */; };
8EACA9711F380294003134CA /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8EACA9671F37F2D3003134CA /* LaunchScreen.xib */; };
8EACA9721F380294003134CA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8EACA9691F37F2D3003134CA /* Main.storyboard */; };
8EACA9731F380294003134CA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EACA96B1F37F2D3003134CA /* Images.xcassets */; };
8EACA9741F38029B003134CA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EACA9661F37F2D3003134CA /* AppDelegate.swift */; };
8EACA9751F38029B003134CA /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EACA96D1F37F2D3003134CA /* ViewController.swift */; };
8EACA9771F38113E003134CA /* SirenError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EACA9761F38113D003134CA /* SirenError.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
55EC364C1E6BB98A00726F13 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8EC391791A58B465001C121E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 55EC36461E6BB98A00726F13;
remoteInfo = Siren;
};
8E3A6C091D07CB6F00A8B7CF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8EC391791A58B465001C121E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 8EC391801A58B465001C121E;
remoteInfo = "Sample App";
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
558455D81C6690B4004BE492 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
55EC364F1E6BB98A00726F13 /* Siren.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
55EC36471E6BB98A00726F13 /* Siren.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Siren.framework; sourceTree = BUILT_PRODUCTS_DIR; };
55EC36491E6BB98A00726F13 /* Siren.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Siren.h; sourceTree = "<group>"; };
55EC364A1E6BB98A00726F13 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
55EC365E1E6BB99B00726F13 /* Siren.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Siren.bundle; path = ../../Sources/Siren.bundle; sourceTree = "<group>"; };
55EC365F1E6BB99B00726F13 /* Siren.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Siren.swift; path = ../../Sources/Siren.swift; sourceTree = "<group>"; };
8E2499BE1FD83DDF00F384BA /* SirenAlertMessaging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SirenAlertMessaging.swift; path = ../../Sources/SirenAlertMessaging.swift; sourceTree = "<group>"; };
8E3A6C041D07CB6F00A8B7CF /* SirenExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SirenExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
8E43D6221E8223EE00ECFFC8 /* SirenDateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SirenDateExtension.swift; path = ../../Sources/SirenDateExtension.swift; sourceTree = "<group>"; };
8E528A2F1E989A7A00B643C4 /* SirenDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SirenDelegate.swift; path = ../../Sources/SirenDelegate.swift; sourceTree = "<group>"; };
8E528A311E989E0A00B643C4 /* SirenTestHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SirenTestHelper.swift; path = ../../Sources/SirenTestHelper.swift; sourceTree = "<group>"; };
8E5D15B01F3632D7001C0960 /* SirenLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SirenLog.swift; path = ../../Sources/SirenLog.swift; sourceTree = "<group>"; };
8E9C238A1E7CDB42000ED3DA /* SirenBundleExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SirenBundleExtension.swift; path = ../../Sources/SirenBundleExtension.swift; sourceTree = "<group>"; };
8E9C238C1E7CDD31000ED3DA /* SirenUIAlertControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SirenUIAlertControllerExtension.swift; path = ../../Sources/SirenUIAlertControllerExtension.swift; sourceTree = "<group>"; };
8E9C238E1E7CDDE7000ED3DA /* SirenViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SirenViewController.swift; path = ../../Sources/SirenViewController.swift; sourceTree = "<group>"; };
8EACA9661F37F2D3003134CA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
8EACA9681F37F2D3003134CA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
8EACA96A1F37F2D3003134CA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
8EACA96B1F37F2D3003134CA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
8EACA96C1F37F2D3003134CA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8EACA96D1F37F2D3003134CA /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
8EACA96F1F37F327003134CA /* SirenLookupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SirenLookupModel.swift; path = ../../Sources/SirenLookupModel.swift; sourceTree = "<group>"; };
8EACA9761F38113D003134CA /* SirenError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SirenError.swift; path = ../../Sources/SirenError.swift; sourceTree = "<group>"; };
8EC391811A58B465001C121E /* SirenExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SirenExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
8EE6C74B1E6A0AE100DBE454 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8EE6C74C1E6A0AE100DBE454 /* SirenTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenTests.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
55EC36431E6BB98A00726F13 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
8E3A6C011D07CB6F00A8B7CF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
8EC3917E1A58B465001C121E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
55EC364E1E6BB98A00726F13 /* Siren.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
55EC36481E6BB98A00726F13 /* Siren */ = {
isa = PBXGroup;
children = (
55EC365E1E6BB99B00726F13 /* Siren.bundle */,
55EC365F1E6BB99B00726F13 /* Siren.swift */,
8E2499BE1FD83DDF00F384BA /* SirenAlertMessaging.swift */,
8E9C238A1E7CDB42000ED3DA /* SirenBundleExtension.swift */,
8E43D6221E8223EE00ECFFC8 /* SirenDateExtension.swift */,
8E528A2F1E989A7A00B643C4 /* SirenDelegate.swift */,
8EACA9761F38113D003134CA /* SirenError.swift */,
8E5D15B01F3632D7001C0960 /* SirenLog.swift */,
8EACA96F1F37F327003134CA /* SirenLookupModel.swift */,
8E528A311E989E0A00B643C4 /* SirenTestHelper.swift */,
8E9C238C1E7CDD31000ED3DA /* SirenUIAlertControllerExtension.swift */,
8E9C238E1E7CDDE7000ED3DA /* SirenViewController.swift */,
55EC36491E6BB98A00726F13 /* Siren.h */,
55EC364A1E6BB98A00726F13 /* Info.plist */,
);
path = Siren;
sourceTree = "<group>";
};
8EACA9651F37F2D3003134CA /* SirenExample */ = {
isa = PBXGroup;
children = (
8EACA9661F37F2D3003134CA /* AppDelegate.swift */,
8EACA96E1F37F2DD003134CA /* Supporting Files */,
);
path = SirenExample;
sourceTree = "<group>";
};
8EACA96E1F37F2DD003134CA /* Supporting Files */ = {
isa = PBXGroup;
children = (
8EACA9671F37F2D3003134CA /* LaunchScreen.xib */,
8EACA9691F37F2D3003134CA /* Main.storyboard */,
8EACA96B1F37F2D3003134CA /* Images.xcassets */,
8EACA96C1F37F2D3003134CA /* Info.plist */,
8EACA96D1F37F2D3003134CA /* ViewController.swift */,
);
path = "Supporting Files";
sourceTree = "<group>";
};
8EC391781A58B465001C121E = {
isa = PBXGroup;
children = (
55EC36481E6BB98A00726F13 /* Siren */,
8EACA9651F37F2D3003134CA /* SirenExample */,
8EE6C74A1E6A0AE100DBE454 /* SirenExampleTests */,
8EC391821A58B465001C121E /* Products */,
);
sourceTree = "<group>";
};
8EC391821A58B465001C121E /* Products */ = {
isa = PBXGroup;
children = (
8EC391811A58B465001C121E /* SirenExample.app */,
8E3A6C041D07CB6F00A8B7CF /* SirenExampleTests.xctest */,
55EC36471E6BB98A00726F13 /* Siren.framework */,
);
name = Products;
sourceTree = "<group>";
};
8EE6C74A1E6A0AE100DBE454 /* SirenExampleTests */ = {
isa = PBXGroup;
children = (
8EE6C74B1E6A0AE100DBE454 /* Info.plist */,
8EE6C74C1E6A0AE100DBE454 /* SirenTests.swift */,
);
path = SirenExampleTests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
55EC36441E6BB98A00726F13 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
55EC364B1E6BB98A00726F13 /* Siren.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
55EC36461E6BB98A00726F13 /* Siren */ = {
isa = PBXNativeTarget;
buildConfigurationList = 55EC36521E6BB98A00726F13 /* Build configuration list for PBXNativeTarget "Siren" */;
buildPhases = (
55EC36421E6BB98A00726F13 /* Sources */,
55EC36431E6BB98A00726F13 /* Frameworks */,
55EC36441E6BB98A00726F13 /* Headers */,
55EC36451E6BB98A00726F13 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Siren;
productName = Siren;
productReference = 55EC36471E6BB98A00726F13 /* Siren.framework */;
productType = "com.apple.product-type.framework";
};
8E3A6C031D07CB6F00A8B7CF /* SirenExampleTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8E3A6C0D1D07CB6F00A8B7CF /* Build configuration list for PBXNativeTarget "SirenExampleTests" */;
buildPhases = (
8E3A6C001D07CB6F00A8B7CF /* Sources */,
8E3A6C011D07CB6F00A8B7CF /* Frameworks */,
8E3A6C021D07CB6F00A8B7CF /* Resources */,
);
buildRules = (
);
dependencies = (
8E3A6C0A1D07CB6F00A8B7CF /* PBXTargetDependency */,
);
name = SirenExampleTests;
productName = SirenTests;
productReference = 8E3A6C041D07CB6F00A8B7CF /* SirenExampleTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
8EC391801A58B465001C121E /* SirenExample */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "SirenExample" */;
buildPhases = (
8EC3917D1A58B465001C121E /* Sources */,
8EC3917E1A58B465001C121E /* Frameworks */,
8EE3A3F81E6A0E470010BDCE /* SwiftLint */,
8EC3917F1A58B465001C121E /* Resources */,
558455D81C6690B4004BE492 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
55EC364D1E6BB98A00726F13 /* PBXTargetDependency */,
);
name = SirenExample;
productName = Siren;
productReference = 8EC391811A58B465001C121E /* SirenExample.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
8EC391791A58B465001C121E /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftMigration = 0700;
LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 0900;
ORGANIZATIONNAME = "Sabintsev iOS Projects";
TargetAttributes = {
55EC36461E6BB98A00726F13 = {
CreatedOnToolsVersion = 8.2.1;
LastSwiftMigration = 0900;
ProvisioningStyle = Automatic;
};
8E3A6C031D07CB6F00A8B7CF = {
CreatedOnToolsVersion = 7.3.1;
LastSwiftMigration = 0900;
TestTargetID = 8EC391801A58B465001C121E;
};
8EC391801A58B465001C121E = {
CreatedOnToolsVersion = 6.1.1;
DevelopmentTeam = HT94948NDD;
DevelopmentTeamName = "Arthur Sabintsev";
LastSwiftMigration = 0900;
};
};
};
buildConfigurationList = 8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "SirenExample" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 8EC391781A58B465001C121E;
productRefGroup = 8EC391821A58B465001C121E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
8EC391801A58B465001C121E /* SirenExample */,
8E3A6C031D07CB6F00A8B7CF /* SirenExampleTests */,
55EC36461E6BB98A00726F13 /* Siren */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
55EC36451E6BB98A00726F13 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
55EC36601E6BB99B00726F13 /* Siren.bundle in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8E3A6C021D07CB6F00A8B7CF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
8EC3917F1A58B465001C121E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8EACA9711F380294003134CA /* LaunchScreen.xib in Resources */,
8EACA9721F380294003134CA /* Main.storyboard in Resources */,
8EACA9731F380294003134CA /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
8EE3A3F81E6A0E470010BDCE /* SwiftLint */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = SwiftLint;
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if which swiftlint >/dev/null; then\nswiftlint lint --config ../.swiftlint.yml\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
55EC36421E6BB98A00726F13 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8E528A321E989E0A00B643C4 /* SirenTestHelper.swift in Sources */,
8E9C238F1E7CDDE7000ED3DA /* SirenViewController.swift in Sources */,
8EACA9771F38113E003134CA /* SirenError.swift in Sources */,
55EC36611E6BB99B00726F13 /* Siren.swift in Sources */,
8E43D6231E8223EE00ECFFC8 /* SirenDateExtension.swift in Sources */,
8E5D15B11F3632D7001C0960 /* SirenLog.swift in Sources */,
8E9C238B1E7CDB42000ED3DA /* SirenBundleExtension.swift in Sources */,
8E528A301E989A7A00B643C4 /* SirenDelegate.swift in Sources */,
8E2499BF1FD83DDF00F384BA /* SirenAlertMessaging.swift in Sources */,
8EACA9701F37F327003134CA /* SirenLookupModel.swift in Sources */,
8E9C238D1E7CDD31000ED3DA /* SirenUIAlertControllerExtension.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8E3A6C001D07CB6F00A8B7CF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8E1635A91E6A0B9C0060CE27 /* SirenTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8EC3917D1A58B465001C121E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8EACA9741F38029B003134CA /* AppDelegate.swift in Sources */,
8EACA9751F38029B003134CA /* ViewController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
55EC364D1E6BB98A00726F13 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 55EC36461E6BB98A00726F13 /* Siren */;
targetProxy = 55EC364C1E6BB98A00726F13 /* PBXContainerItemProxy */;
};
8E3A6C0A1D07CB6F00A8B7CF /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8EC391801A58B465001C121E /* SirenExample */;
targetProxy = 8E3A6C091D07CB6F00A8B7CF /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
8EACA9671F37F2D3003134CA /* LaunchScreen.xib */ = {
isa = PBXVariantGroup;
children = (
8EACA9681F37F2D3003134CA /* Base */,
);
name = LaunchScreen.xib;
sourceTree = "<group>";
};
8EACA9691F37F2D3003134CA /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
8EACA96A1F37F2D3003134CA /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
55EC36501E6BB98A00726F13 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CODE_SIGN_IDENTITY = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Siren/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.apple.itunesconnect.mobile.tests;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
55EC36511E6BB98A00726F13 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CODE_SIGN_IDENTITY = "";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Siren/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.apple.itunesconnect.mobile.tests;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
8E3A6C0B1D07CB6F00A8B7CF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CLANG_ANALYZER_NONNULL = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = SirenExampleTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.sabintsev.SirenTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SirenExample.app/SirenExample";
};
name = Debug;
};
8E3A6C0C1D07CB6F00A8B7CF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CLANG_ANALYZER_NONNULL = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = SirenExampleTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.sabintsev.SirenTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SirenExample.app/SirenExample";
};
name = Release;
};
8EC3919E1A58B466001C121E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
8EC3919F1A58B466001C121E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
8EC391A11A58B466001C121E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "$(SRCROOT)/SirenExample/Supporting Files/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.apple.itunesconnect.mobile;
PRODUCT_NAME = SirenExample;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
};
name = Debug;
};
8EC391A21A58B466001C121E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "$(SRCROOT)/SirenExample/Supporting Files/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.apple.itunesconnect.mobile;
PRODUCT_NAME = SirenExample;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
55EC36521E6BB98A00726F13 /* Build configuration list for PBXNativeTarget "Siren" */ = {
isa = XCConfigurationList;
buildConfigurations = (
55EC36501E6BB98A00726F13 /* Debug */,
55EC36511E6BB98A00726F13 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8E3A6C0D1D07CB6F00A8B7CF /* Build configuration list for PBXNativeTarget "SirenExampleTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8E3A6C0B1D07CB6F00A8B7CF /* Debug */,
8E3A6C0C1D07CB6F00A8B7CF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "SirenExample" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8EC3919E1A58B466001C121E /* Debug */,
8EC3919F1A58B466001C121E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "SirenExample" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8EC391A11A58B466001C121E /* Debug */,
8EC391A21A58B466001C121E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 8EC391791A58B465001C121E /* Project object */;
}
@@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "self:Sample App.xcodeproj">
location = "self:/Users/Arthur/Documents/oss/siren/Sample App/SirenExample.xcodeproj">
</FileRef>
</Workspace>
@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0900"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "55EC36461E6BB98A00726F13"
BuildableName = "Siren.framework"
BlueprintName = "Siren"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "55EC36461E6BB98A00726F13"
BuildableName = "Siren.framework"
BlueprintName = "Siren"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "55EC36461E6BB98A00726F13"
BuildableName = "Siren.framework"
BlueprintName = "Siren"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0900"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "SirenExample.app"
BlueprintName = "SirenExample"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8E3A6C031D07CB6F00A8B7CF"
BuildableName = "SirenExampleTests.xctest"
BlueprintName = "SirenExampleTests"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "SirenExample.app"
BlueprintName = "SirenExample"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "SirenExample.app"
BlueprintName = "SirenExample"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "SirenExample.app"
BlueprintName = "SirenExample"
ReferencedContainer = "container:SirenExample.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
+109
View File
@@ -0,0 +1,109 @@
//
// AppDelegate.swift
// Siren
//
// Created by Arthur Sabintsev on 1/3/15.
// Copyright (c) 2015 Sabintsev iOS Projects. All rights reserved.
//
import UIKit
import Siren
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
window?.makeKeyAndVisible()
setupSiren()
return true
}
func setupSiren() {
let siren = Siren.shared
// Optional
siren.delegate = self
// Optional
siren.debugEnabled = true
// Optional - Change the name of your app. Useful if you have a long app name and want to display a shortened version in the update dialog (e.g., the UIAlertController).
// siren.appName = "Test App Name"
// Optional - Change the various UIAlertController and UIAlertAction messaging. One or more values can be changes. If only a subset of values are changed, the defaults with which Siren comes with will be used.
// siren.alertMessaging = SirenAlertMessaging(updateTitle: "New Fancy Title",
// updateMessage: "New message goes here!",
// updateButtonMessage: "Update Now, Plz!?",
// nextTimeButtonMessage: "OK, next time it is!",
// skipVersionButtonMessage: "Please don't push skip, please don't!")
// Optional - Defaults to .Option
// siren.alertType = .option // or .force, .skip, .none
// Optional - Can set differentiated Alerts for Major, Minor, Patch, and Revision Updates (Must be called AFTER siren.alertType, if you are using siren.alertType)
siren.majorUpdateAlertType = .option
siren.minorUpdateAlertType = .option
siren.patchUpdateAlertType = .option
siren.revisionUpdateAlertType = .option
// Optional - Sets all messages to appear in Russian. Siren supports many other languages, not just English and Russian.
// siren.forceLanguageLocalization = .russian
// Optional - Set this variable if your app is not available in the U.S. App Store. List of codes: https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/AppStoreTerritories.html
// siren.countryCode = ""
// Optional - Set this variable if you would only like to show an alert if your app has been available on the store for a few days.
// This default value is set to 1 to avoid this issue: https://github.com/ArtSabintsev/Siren#words-of-caution
// To show the update immediately after Apple has updated their JSON, set this value to 0. Not recommended due to aforementioned reason in https://github.com/ArtSabintsev/Siren#words-of-caution.
// siren.showAlertAfterCurrentVersionHasBeenReleasedForDays = 3
// Optional (Only do this if you don't call checkVersion in didBecomeActive)
// siren.checkVersion(checkType: .immediately)
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
Siren.shared.checkVersion(checkType: .immediately)
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
Siren.shared.checkVersion(checkType: .daily)
}
}
extension AppDelegate: SirenDelegate
{
func sirenDidShowUpdateDialog(alertType: Siren.AlertType) {
print(#function, alertType)
}
func sirenUserDidCancel() {
print(#function)
}
func sirenUserDidSkipVersion() {
print(#function)
}
func sirenUserDidLaunchAppStore() {
print(#function)
}
func sirenDidFailVersionCheck(error: Error) {
print(#function, error)
}
func sirenLatestVersionInstalled() {
print(#function, "Latest version of app is installed")
}
// This delegate method is only hit when alertType is initialized to .none
func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType) {
print(#function, "\(message).\nRelease type: \(updateType.rawValue.capitalized)")
}
}
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14B25" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11191" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11156"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
@@ -13,19 +13,17 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2015 Sabintsev iOS Projects. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
<rect key="frame" x="20" y="439" width="441" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sample App" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="140" width="441" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6211" systemVersion="14A298i" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vXZ-lx-hvc">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vXZ-lx-hvc">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6204"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="vXZ-lx-hvc" customClass="ViewController" customModule="Sample_App" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
@@ -3,11 +3,11 @@
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<string>en_US</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.sabintsev.$(PRODUCT_NAME:rfc1034identifier)</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
@@ -33,6 +33,8 @@
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
@@ -19,7 +19,6 @@ class ViewController: UIViewController {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
+24
View File
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
@@ -0,0 +1,838 @@
//
// SirenTests.swift
// SirenTests
//
// Created by Arthur Sabintsev on 6/7/16.
// Copyright © 2016 Sabintsev iOS Projects. All rights reserved.
//
import XCTest
@testable import Siren
class SirenTests: XCTestCase {
let siren = Siren.shared
}
// MARK: - Updates
extension SirenTests {
func testSingleDigitVersionUpdate() {
siren.testSetCurrentInstalledVersion(version: "1")
siren.testSetAppStoreVersion(version: "2")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
}
func testDoubleDigitVersionUpdate() {
siren.testSetCurrentInstalledVersion(version: "1.0")
siren.testSetAppStoreVersion(version: "2")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
}
func testTripleDigitVersionUpdate() {
siren.testSetCurrentInstalledVersion(version: "1.0.0")
siren.testSetAppStoreVersion(version: "2")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
}
func testQuadrupleDigitVersionUpdate() {
siren.testSetCurrentInstalledVersion(version: "1.0.0")
siren.testSetAppStoreVersion(version: "2")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "2.0.0.0")
XCTAssertTrue(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
siren.testSetAppStoreVersion(version: "0.0.0.9")
XCTAssertFalse(siren.testIsAppStoreVersionNewer())
}
}
// MARK: - Localization
extension SirenTests {
func testArabicLocalization() {
let language: Siren.LanguageType = .arabic
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "التحديث متوفر")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "المرة التالية")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "تخطى عن هذه النسخة")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "تحديث")
}
func testArmenianLocalization() {
let language: Siren.LanguageType = .armenian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Թարմացումը հասանելի Է")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Հաջորդ անգամ")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Բաց թողնել այս տարբերակը")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Թարմացնել")
}
func testBasqueLocalization() {
let language: Siren.LanguageType = .basque
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Eguneratzea erabilgarri")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Hurrengo batean")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Bertsio honetatik jauzi egin")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Eguneratu")
}
func testChineseSimplifiedLocalization() {
let language: Siren.LanguageType = .chineseSimplified
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "更新可用")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "下一次")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "跳过此版本")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "更新")
}
func testChineseTraditionalLocalization() {
let language: Siren.LanguageType = .chineseTraditional
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "有更新可用")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "下次")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "跳過此版本")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "更新")
}
func testCroatianLocalization() {
let language: Siren.LanguageType = .croatian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Nova ažuriranje je stigla")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Sljedeći put")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Preskoči ovu verziju")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Ažuriraj")
}
func testCzechLocalization() {
let language: Siren.LanguageType = .czech
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Aktualizace dostupná")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Příště")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Přeskočit tuto verzi")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Aktualizovat")
}
func testDanishLocalization() {
let language: Siren.LanguageType = .danish
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Tilgængelig opdatering")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Næste gang")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Spring denne version over")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Opdater")
}
func testDutchLocalization() {
let language: Siren.LanguageType = .dutch
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Update beschikbaar")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Volgende keer")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Sla deze versie over")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Updaten")
}
func testEstonianLocalization() {
let language: Siren.LanguageType = .estonian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Uuendus saadaval")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Järgmisel korral")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Jäta see version vahele")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Uuenda")
}
func testFinnishLocalization() {
let language: Siren.LanguageType = .finnish
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Päivitys saatavilla")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Ensi kerralla")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Jätä tämä versio väliin")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Päivitys")
}
func testFrenchLocalization() {
let language: Siren.LanguageType = .french
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Mise à jour disponible")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "La prochaine fois")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Sauter cette version")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Mettre à jour")
}
func testGermanLocalization() {
let language: Siren.LanguageType = .german
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Update erhältlich")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Später")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Diese Version überspringen")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Update")
}
func testGreekLocalization() {
let language: Siren.LanguageType = .greek
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Διαθέσιμη Ενημέρωση")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Άλλη φορά")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Αγνόησε αυτήν την έκδοση")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Αναβάθμιση")
}
func testHebrewLocalization() {
let language: Siren.LanguageType = .hebrew
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "עדכון זמין")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "בפעם הבאה")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "דלג על גרסה זו")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "עדכן")
}
func testHungarianLocalization() {
let language: Siren.LanguageType = .hungarian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Új frissítés érhető el")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Később")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Ennél a verziónál ne figyelmeztessen")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Frissítés")
}
func testIndonesianLocalization() {
let language: Siren.LanguageType = .indonesian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Pembaruan Tersedia")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Lain kali")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Lewati versi ini")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Perbarui")
}
func testItalianLocalization() {
let language: Siren.LanguageType = .italian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Aggiornamento disponibile")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "La prossima volta")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Salta questa versione")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Aggiorna")
}
func testJapaneseLocalization() {
let language: Siren.LanguageType = .japanese
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "アップデートのお知らせ")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "次回")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "このバージョンをスキップ")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "アップデート")
}
func testKoreanLocalization() {
let language: Siren.LanguageType = .korean
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "업데이트 가능")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "다음에")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "이 버전 건너뜀")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "업데이트")
}
func testLatvianLocalization() {
let language: Siren.LanguageType = .latvian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Atjauninājums pieejams")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Nākamreiz")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Izlaist šo versiju")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Atjaunināt")
}
func testLithuanianLocalization() {
let language: Siren.LanguageType = .lithuanian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Atnaujinimas")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Kitą kartą")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Praleisti šią versiją")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Atnaujinti")
}
func testMalayLocalization() {
let language: Siren.LanguageType = .malay
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Versi Terkini")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Lain kali")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Langkau versi ini")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Muat turun")
}
func testNorwegianLocalization() {
let language: Siren.LanguageType = .norwegian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Oppdatering tilgjengelig")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Neste gang")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Hopp over denne versjonen")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Oppdater")
}
func testPersianLocalization() {
let language: Siren.LanguageType = .persian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "بروزرسانی در دسترس")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "دفعه بعد")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "رد این نسخه")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "بروزرسانی")
}
func testPersianAfghanistanLocalization() {
let language: Siren.LanguageType = .persianAfghanistan
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "بروزرسانی در دسترس")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "دگر بار")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "رد این نسخه")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "بروزرسانی")
}
func testPersianIranLocalization() {
let language: Siren.LanguageType = .persianIran
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "بروزرسانی در دسترس")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "دفعه بعد")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "رد این نسخه")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "بروزرسانی")
}
func testPolishLocalization() {
let language: Siren.LanguageType = .polish
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Aktualizacja dostępna")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Następnym razem")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Pomiń wersję")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Zaktualizuj")
}
func testPortugueseBrazilLocalization() {
let language: Siren.LanguageType = .portugueseBrazil
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Atualização disponível")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Próxima vez")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Ignorar esta versão")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Atualizar")
}
func testPortuguesePortugalLocalization() {
let language: Siren.LanguageType = .portuguesePortugal
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Nova actualização disponível")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Próxima vez")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Ignorar esta versão")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Actualizar")
}
func testRussianLocalization() {
let language: Siren.LanguageType = .russian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Доступно обновление")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "В следующий раз")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Пропустить эту версию")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Обновить")
}
func testSerbianCyrillicLocalization() {
let language: Siren.LanguageType = .serbianCyrillic
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Ажурирање доступно")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Следећи пут")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Прескочи ову верзију")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Ажурирај")
}
func testSerbianLatinLocalization() {
let language: Siren.LanguageType = .serbianLatin
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Ažuriranje dostupno")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Sledeći put")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Preskoči ovu verziju")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Ažuriraj")
}
func testSlovenianLocalization() {
let language: Siren.LanguageType = .slovenian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Posodobitev aplikacije")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Naslednjič")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Ne želim")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Namesti")
}
func testSpanishLocalization() {
let language: Siren.LanguageType = .spanish
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Actualización disponible")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "La próxima vez")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Saltar esta versión")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Actualizar")
}
func testSwedishLocalization() {
let language: Siren.LanguageType = .swedish
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Tillgänglig uppdatering")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Nästa gång")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Hoppa över den här versionen")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Uppdatera")
}
func testThaiLocalization() {
let language: Siren.LanguageType = .thai
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "มีการอัพเดท")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "ไว้คราวหน้า")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "ข้ามเวอร์ชั่นนี้")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "อัพเดท")
}
func testTurkishLocalization() {
let language: Siren.LanguageType = .turkish
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Güncelleme Mevcut")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Daha sonra")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Boşver")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Güncelle")
}
func testUkrainianLocalization() {
let language: Siren.LanguageType = .ukrainian
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Доступне Оновлення")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Наступного разу")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Пропустити версію")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Оновити")
}
func testUrduLocalization() {
let language: Siren.LanguageType = .urdu
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "نیا اپڈیٹ")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "اگلی مرتبہ")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "اس ورزن کو چھوڑ دیں")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "اپڈیٹ کریں")
}
func testVietnameseLocalization() {
let language: Siren.LanguageType = .vietnamese
siren.forceLanguageLocalization = language
// Update Available
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update Available", forceLanguageLocalization: language), "Cập nhật mới")
// Next time
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Next time", forceLanguageLocalization: language), "Lần tới")
// Skip this version
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Skip this version", forceLanguageLocalization: language), "Bỏ qua phiên bản này")
// Update
XCTAssertEqual(Bundle().testLocalizedString(forKey: "Update", forceLanguageLocalization: language), "Cập nhật")
}
}
+138
View File
@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Classes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Classes Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Classes</h1>
<p>The following classes are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Siren"></a>
<a name="//apple_ref/swift/Section/Siren" class="dashAnchor"></a>
<a href="#/Siren">
<h3 class="section-name">Siren</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/c:@M@Siren@objc(cs)Siren"></a>
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
<a class="token" href="#/c:@M@Siren@objc(cs)Siren">Siren</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The Siren Class. A singleton that is initialized using the <code>shared</code> constant.</p>
<a href="Classes/Siren.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">Siren</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+744
View File
@@ -0,0 +1,744 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Siren Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
<a title="Siren Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
Siren Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Siren</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">Siren</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
<p>The Siren Class. A singleton that is initialized using the <code>shared</code> constant.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC0A11ErrorDomainSSv"></a>
<a name="//apple_ref/swift/Property/SirenErrorDomain" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC0A11ErrorDomainSSv">SirenErrorDomain</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The error domain for all errors created by Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">SirenErrorDomain</span> <span class="o">=</span> <span class="s">"Siren Error Domain"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC8delegateAA0A8Delegate_pSgXwv"></a>
<a name="//apple_ref/swift/Property/delegate" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC8delegateAA0A8Delegate_pSgXwv">delegate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The SirenDelegate variable, which should be set if you&rsquo;d like to be notified:</p>
<p>When a user views or interacts with the alert</p>
<ul>
<li>sirenDidShowUpdateDialog(alertType: AlertType)</li>
<li>sirenUserDidLaunchAppStore()</li>
<li>sirenUserDidSkipVersion()</li>
<li>sirenUserDidCancel()</li>
</ul>
<p>When a new version has been detected, and you would like to present a localized message in a custom UI. use this delegate method:</p>
<ul>
<li>sirenDidDetectNewVersionWithoutAlert(message: String)</li>
</ul>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">weak</span> <span class="k">var</span> <span class="nv">delegate</span><span class="p">:</span> <span class="kt"><a href="../Protocols/SirenDelegate.html">SirenDelegate</a></span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12debugEnabledSbv"></a>
<a name="//apple_ref/swift/Property/debugEnabled" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12debugEnabledSbv">debugEnabled</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The debug flag, which is disabled by default.
When enabled, a stream of print() statements are logged to your console when a version check is performed.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">debugEnabled</span> <span class="o">=</span> <span class="kc">false</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9alertTypeAB05AlertC0Ov"></a>
<a name="//apple_ref/swift/Property/alertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9alertTypeAB05AlertC0Ov">alertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/majorUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ov">majorUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for major version updates: A.b.c
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">majorUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/minorUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ov">minorUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for minor version updates: a.B.c
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">minorUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/patchUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ov">patchUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for minor patch updates: a.b.C
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">patchUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/revisionUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ov">revisionUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for revision updates: a.b.c.D
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">revisionUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC7appNameSSv"></a>
<a name="//apple_ref/swift/Property/appName" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC7appNameSSv">appName</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The name of your app.
By default, it&rsquo;s set to the name of the app that&rsquo;s stored in your plist.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">appName</span> <span class="o">=</span> <span class="kt">Bundle</span><span class="o">.</span><span class="nf">bestMatchingAppName</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC14alertMessagingAA0a5AlertC0Vv"></a>
<a name="//apple_ref/swift/Property/alertMessaging" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC14alertMessagingAA0a5AlertC0Vv">alertMessaging</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Overrides all the Strings to which Siren defaults.
Defaults to the values defined in <code><a href="../Structs/SirenAlertMessaging/Constants.html">SirenAlertMessaging.Constants</a></code></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertMessaging</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a></span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC11countryCodeSSSgv"></a>
<a name="//apple_ref/swift/Property/countryCode" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC11countryCodeSSSgv">countryCode</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The region or country of an App Store in which your app is available.
By default, all version checks are performed against the US App Store.
If your app is not available in the US App Store, set it to the identifier of at least one App Store within which it is available.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">countryCode</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgv"></a>
<a name="//apple_ref/swift/Property/forceLanguageLocalization" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgv">forceLanguageLocalization</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Overrides the default localization of a user&rsquo;s device when presenting the update message and button titles in the alert.
See the Siren.LanguageType enum for more details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">forceLanguageLocalization</span><span class="p">:</span> <span class="kt">Siren</span><span class="o">.</span><span class="kt"><a href="../Classes/Siren/LanguageType.html">LanguageType</a></span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgv"></a>
<a name="//apple_ref/swift/Property/alertControllerTintColor" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgv">alertControllerTintColor</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Overrides the tint color for UIAlertController.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertControllerTintColor</span><span class="p">:</span> <span class="kt">UIColor</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSiv"></a>
<a name="//apple_ref/swift/Property/showAlertAfterCurrentVersionHasBeenReleasedForDays" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSiv">showAlertAfterCurrentVersionHasBeenReleasedForDays</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>When this is set, the alert will only show up if the current version has already been released for X days
Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the app binary propogates to the App Store.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">showAlertAfterCurrentVersionHasBeenReleasedForDays</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="mi">1</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC22currentAppStoreVersionSSSgv"></a>
<a name="//apple_ref/swift/Property/currentAppStoreVersion" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC22currentAppStoreVersionSSSgv">currentAppStoreVersion</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The current version of your app that is available for download on the App Store</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">internal(set)</span> <span class="k">var</span> <span class="nv">currentAppStoreVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC6sharedABvZ"></a>
<a name="//apple_ref/swift/Variable/shared" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC6sharedABvZ">shared</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The App&rsquo;s Singleton</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">shared</span> <span class="o">=</span> <span class="kt">Siren</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12checkVersionyAB0C9CheckTypeO0bE0_tF"></a>
<a name="//apple_ref/swift/Method/checkVersion(checkType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12checkVersionyAB0C9CheckTypeO0bE0_tF">checkVersion(checkType:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Checks the currently installed version of your app against the App Store.
The default check is against the US App Store, but if your app is not listed in the US,
you should set the <code><a href="../Classes/Siren.html#/s:5SirenAAC11countryCodeSSSgv">countryCode</a></code> property before calling this method. Please refer to the countryCode property for more information.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">checkVersion</span><span class="p">(</span><span class="nv">checkType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/VersionCheckType.html">VersionCheckType</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>checkType</em>
</code>
</td>
<td>
<div>
<p>The frequency in days in which you want a check to be performed. Please refer to the Siren.VersionCheckType enum for more details.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC14launchAppStoreyyF"></a>
<a name="//apple_ref/swift/Method/launchAppStore()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC14launchAppStoreyyF">launchAppStore()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Launches the AppStore in two situations:</p>
<ul>
<li>User clicked the <code>Update</code> button in the UIAlertController modal.</li>
<li>Developer built a custom alert modal and needs to be able to call this function when the user chooses to update the app in the aforementioned custom modal.</li>
</ul>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">launchAppStore</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO"></a>
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO">AlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert to present after a successful version check has been performed.</p>
<a href="../Classes/Siren/AlertType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO"></a>
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO">VersionCheckType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the frequency in which the the version check is performed and the user is prompted to update the app.</p>
<a href="../Classes/Siren/VersionCheckType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12LanguageTypeO"></a>
<a name="//apple_ref/swift/Enum/LanguageType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12LanguageTypeO">LanguageType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the available languages in which the update message and alert button titles should appear.</p>
<p>By default, the operating system&rsquo;s default lanuage setting is used. However, you can force a specific language
by setting the forceLanguageLocalization property before calling checkVersion()</p>
<a href="../Classes/Siren/LanguageType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">LanguageType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,231 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>AlertType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
<a title="AlertType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
AlertType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>AlertType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
</div>
</div>
<p>Determines the type of alert to present after a successful version check has been performed.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO5forceA2DmF"></a>
<a name="//apple_ref/swift/Element/force" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO5forceA2DmF">force</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Forces user to update your app (1 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">force</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO6optionA2DmF"></a>
<a name="//apple_ref/swift/Element/option" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO6optionA2DmF">option</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>(DEFAULT) Presents user with option to update app now or at next launch (2 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO4skipA2DmF"></a>
<a name="//apple_ref/swift/Element/skip" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO4skipA2DmF">skip</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">skip</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO4noneA2DmF"></a>
<a name="//apple_ref/swift/Element/none" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO4noneA2DmF">none</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Doesn&rsquo;t show the alert, but instead returns a localized message
for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="k">none</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,199 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>VersionCheckType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
<a title="VersionCheckType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
VersionCheckType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>VersionCheckType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
</div>
</div>
<p>Determines the frequency in which the the version check is performed and the user is prompted to update the app.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO11immediatelyA2DmF"></a>
<a name="//apple_ref/swift/Element/immediately" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO11immediatelyA2DmF">immediately</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed every time the app is launched.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">immediately</span> <span class="o">=</span> <span class="mi">0</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO5dailyA2DmF"></a>
<a name="//apple_ref/swift/Element/daily" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO5dailyA2DmF">daily</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed once a day.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">daily</span> <span class="o">=</span> <span class="mi">1</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO6weeklyA2DmF"></a>
<a name="//apple_ref/swift/Element/weekly" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO6weeklyA2DmF">weekly</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed once a week.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">weekly</span> <span class="o">=</span> <span class="mi">7</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+142
View File
@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Enumerations Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Enumerations Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Enumerations Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Enumerations</h1>
<p>The following enumerations are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO"></a>
<a name="//apple_ref/swift/Enum/UpdateType" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO">UpdateType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>MARK - Siren UpdateType
<code>UpdateType</code> defines what kind of update is available
It is used as parameter if user wants to use
custom alert to inform the user about an update.</p>
<ul>
<li>major: Major release available: A.b.c.d</li>
<li>minor: Minor release available: a.B.c.d</li>
<li>patch: Patch release available: a.b.C.d</li>
<li>revision: Revision release available: a.b.c.D</li>
<li>unknown: No information available about the update</li>
</ul>
<a href="Enums/UpdateType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UpdateType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+267
View File
@@ -0,0 +1,267 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>UpdateType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/UpdateType" class="dashAnchor"></a>
<a title="UpdateType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
UpdateType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>UpdateType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UpdateType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
<p>MARK - Siren UpdateType
<code>UpdateType</code> defines what kind of update is available
It is used as parameter if user wants to use
custom alert to inform the user about an update.</p>
<ul>
<li>major: Major release available: A.b.c.d</li>
<li>minor: Minor release available: a.B.c.d</li>
<li>patch: Patch release available: a.b.C.d</li>
<li>revision: Revision release available: a.b.c.D</li>
<li>unknown: No information available about the update</li>
</ul>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5majorA2CmF"></a>
<a name="//apple_ref/swift/Element/major" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5majorA2CmF">major</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">major</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5minorA2CmF"></a>
<a name="//apple_ref/swift/Element/minor" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5minorA2CmF">minor</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">minor</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5patchA2CmF"></a>
<a name="//apple_ref/swift/Element/patch" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5patchA2CmF">patch</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">patch</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO8revisionA2CmF"></a>
<a name="//apple_ref/swift/Element/revision" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO8revisionA2CmF">revision</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">revision</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO7unknownA2CmF"></a>
<a name="//apple_ref/swift/Element/unknown" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO7unknownA2CmF">unknown</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">unknown</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+138
View File
@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Protocols Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Protocols Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Protocols Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Protocols</h1>
<p>The following protocols are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/SirenDelegate%20Protocol"></a>
<a name="//apple_ref/swift/Section/SirenDelegate Protocol" class="dashAnchor"></a>
<a href="#/SirenDelegate%20Protocol">
<h3 class="section-name">SirenDelegate Protocol</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP"></a>
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP">SirenDelegate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Delegate that handles all codepaths for Siren upon version check completion.</p>
<a href="Protocols/SirenDelegate.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kt">NSObjectProtocol</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,348 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenDelegate Protocol Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
<a title="SirenDelegate Protocol Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
SirenDelegate Protocol Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenDelegate</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kt">NSObjectProtocol</span></code></pre>
</div>
</div>
<p>Delegate that handles all codepaths for Siren upon version check completion.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP24sirenDidShowUpdateDialogyA2AC9AlertTypeO05alertI0_tF"></a>
<a name="//apple_ref/swift/Method/sirenDidShowUpdateDialog(alertType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidShowUpdateDialogyA2AC9AlertTypeO05alertI0_tF">sirenDidShowUpdateDialog(alertType:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User presented with update dialog.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidShowUpdateDialog</span><span class="p">(</span><span class="nv">alertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren.html">Siren</a></span><span class="o">.</span><span class="kt">AlertType</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP26sirenUserDidLaunchAppStoreyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidLaunchAppStore()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP26sirenUserDidLaunchAppStoreyyF">sirenUserDidLaunchAppStore()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that launched App Store.app.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP23sirenUserDidSkipVersionyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidSkipVersion()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP23sirenUserDidSkipVersionyyF">sirenUserDidSkipVersion()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that skips version update.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP18sirenUserDidCancelyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidCancel()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP18sirenUserDidCancelyyF">sirenUserDidCancel()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that cancels update dialog.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP24sirenDidFailVersionCheckys5Error_p5error_tF"></a>
<a name="//apple_ref/swift/Method/sirenDidFailVersionCheck(error:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidFailVersionCheckys5Error_p5error_tF">sirenDidFailVersionCheck(error:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren failed to perform version check (may return system-level error).</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidFailVersionCheck</span><span class="p">(</span><span class="nv">error</span><span class="p">:</span> <span class="kt">Error</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlertySS7message_AA10UpdateTypeO06updateL0tF"></a>
<a name="//apple_ref/swift/Method/sirenDidDetectNewVersionWithoutAlert(message:updateType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlertySS7message_AA10UpdateTypeO06updateL0tF">sirenDidDetectNewVersionWithoutAlert(message:updateType:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren performed version check and did not display alert.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidDetectNewVersionWithoutAlert</span><span class="p">(</span><span class="nv">message</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">updateType</span><span class="p">:</span> <span class="kt"><a href="../Enums/UpdateType.html">UpdateType</a></span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP27sirenLatestVersionInstalledyyF"></a>
<a name="//apple_ref/swift/Method/sirenLatestVersionInstalled()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP27sirenLatestVersionInstalledyyF">sirenLatestVersionInstalled()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren performed version check and latest version is installed.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+183
View File
@@ -0,0 +1,183 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Structures Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Structures Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Structures Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Structures</h1>
<p>The following structures are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Siren%20Error%20Handling"></a>
<a name="//apple_ref/swift/Section/Siren Error Handling" class="dashAnchor"></a>
<a href="#/Siren%20Error%20Handling">
<h3 class="section-name">Siren Error Handling</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV"></a>
<a name="//apple_ref/swift/Struct/SirenError" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV">SirenError</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Structs/SirenError.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenError</span><span class="p">:</span> <span class="kt">LocalizedError</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Siren%20Alert%20Messaging%20Customization"></a>
<a name="//apple_ref/swift/Section/Siren Alert Messaging Customization" class="dashAnchor"></a>
<a href="#/Siren%20Alert%20Messaging%20Customization">
<h3 class="section-name">Siren Alert Messaging Customization</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV"></a>
<a name="//apple_ref/swift/Struct/SirenAlertMessaging" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV">SirenAlertMessaging</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Allows the overriding of all the <code>UIAlertController</code> and <code>UIActionSheet</code> Strings to which Siren defaults.</p>
<div class="aside aside-warning">
<p class="aside-title">Warning</p>
Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides.
</div>
<p>As SirenAlertMessaging is a Struct, one <em>or</em> more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.</p>
<a href="Structs/SirenAlertMessaging.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenAlertMessaging</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,242 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenAlertMessaging Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/SirenAlertMessaging" class="dashAnchor"></a>
<a title="SirenAlertMessaging Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
SirenAlertMessaging Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenAlertMessaging</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenAlertMessaging</span></code></pre>
</div>
</div>
<p>Allows the overriding of all the <code>UIAlertController</code> and <code>UIActionSheet</code> Strings to which Siren defaults.</p>
<div class="aside aside-warning">
<p class="aside-title">Warning</p>
Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides.
</div>
<p>As SirenAlertMessaging is a Struct, one <em>or</em> more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV"></a>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV">Constants</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="../Structs/SirenAlertMessaging/Constants.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingVACSS11updateTitle_SS0D7MessageSS0d6ButtonF0SS08nextTimegF0SS011skipVersiongF0tcfc"></a>
<a name="//apple_ref/swift/Method/init(updateTitle:updateMessage:updateButtonMessage:nextTimeButtonMessage:skipVersionButtonMessage:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingVACSS11updateTitle_SS0D7MessageSS0d6ButtonF0SS08nextTimegF0SS011skipVersiongF0tcfc">init(updateTitle:updateMessage:updateButtonMessage:nextTimeButtonMessage:skipVersionButtonMessage:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The public initializer</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="n">updateTitle</span> <span class="nv">title</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">updateTitle</span><span class="p">,</span>
<span class="n">updateMessage</span> <span class="nv">message</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">updateMessage</span><span class="p">,</span>
<span class="nv">updateButtonMessage</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">updateNow</span><span class="p">,</span>
<span class="nv">nextTimeButtonMessage</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">nextTime</span><span class="p">,</span>
<span class="nv">skipVersionButtonMessage</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">skipVersion</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>title</em>
</code>
</td>
<td>
<div>
<p>The title field of the <code>UIAlertController</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>message</em>
</code>
</td>
<td>
<div>
<p>The <code>message</code> field of the <code>UIAlertController</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>updateButtonMessage</em>
</code>
</td>
<td>
<div>
<p>The <code>title</code> field of the Update Button <code>UIAlertAction</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>nextTimeButtonMessage</em>
</code>
</td>
<td>
<div>
<p>The <code>title</code> field of the Next Time Button <code>UIAlertAction</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>skipVersionButtonMessage</em>
</code>
</td>
<td>
<div>
<p>The <code>title</code> field of the Skip Button <code>UIAlertAction</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,239 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Constants Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a title="Constants Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
Constants Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Constants</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSSvZ"></a>
<a name="//apple_ref/swift/Variable/nextTime" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSSvZ">nextTime</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">nextTime</span> <span class="o">=</span> <span class="s">"Next time"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSSvZ"></a>
<a name="//apple_ref/swift/Variable/skipVersion" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSSvZ">skipVersion</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">skipVersion</span> <span class="o">=</span> <span class="s">"Skip this version"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSSvZ"></a>
<a name="//apple_ref/swift/Variable/updateMessage" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSSvZ">updateMessage</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">updateMessage</span> <span class="o">=</span> <span class="s">"A new version of %@ is available. Please update to version %@ now."</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSSvZ"></a>
<a name="//apple_ref/swift/Variable/updateTitle" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSSvZ">updateTitle</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">updateTitle</span> <span class="o">=</span> <span class="s">"Update Available"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSSvZ"></a>
<a name="//apple_ref/swift/Variable/updateNow" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSSvZ">updateNow</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">updateNow</span> <span class="o">=</span> <span class="s">"Update"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+136
View File
@@ -0,0 +1,136 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenError Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/SirenError" class="dashAnchor"></a>
<a title="SirenError Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
SirenError Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenError</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenError</span><span class="p">:</span> <span class="kt">LocalizedError</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO"></a>
<a name="//apple_ref/swift/Enum/Known" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO">Known</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="../Structs/SirenError/Known.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">Known</span><span class="p">:</span> <span class="kt">Error</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,375 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Known Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/Known" class="dashAnchor"></a>
<a title="Known Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
Known Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Known</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">Known</span><span class="p">:</span> <span class="kt">Error</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreAppIDFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureA2EmF">appStoreAppIDFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreAppIDFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureAEs0B0_pSg010underlyingB0_tcAEmF"></a>
<a name="//apple_ref/swift/Element/appStoreDataRetrievalFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureAEs0B0_pSg010underlyingB0_tcAEmF">appStoreDataRetrievalFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">appStoreDataRetrievalFailure</span><span class="p">(</span><span class="nv">underlyingError</span><span class="p">:</span> <span class="kt">Error</span><span class="p">?)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureAEs0B0_p010underlyingB0_tcAEmF"></a>
<a name="//apple_ref/swift/Element/appStoreJSONParsingFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureAEs0B0_p010underlyingB0_tcAEmF">appStoreJSONParsingFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">appStoreJSONParsingFailure</span><span class="p">(</span><span class="nv">underlyingError</span><span class="p">:</span> <span class="kt">Error</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreOSVersionNumberFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureA2EmF">appStoreOSVersionNumberFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreOSVersionNumberFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreOSVersionUnsupported" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedA2EmF">appStoreOSVersionUnsupported</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreOSVersionUnsupported</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreVersionArrayFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureA2EmF">appStoreVersionArrayFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreVersionArrayFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO12malformedURLA2EmF"></a>
<a name="//apple_ref/swift/Element/malformedURL" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO12malformedURLA2EmF">malformedURL</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">malformedURL</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableA2EmF"></a>
<a name="//apple_ref/swift/Element/noUpdateAvailable" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableA2EmF">noUpdateAvailable</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">noUpdateAvailable</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyA2EmF"></a>
<a name="//apple_ref/swift/Element/recentlyCheckedAlready" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyA2EmF">recentlyCheckedAlready</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">recentlyCheckedAlready</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+28
View File
@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="136" height="20">
<linearGradient id="b" x2="0" y2="100%">
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<clipPath id="a">
<rect width="136" height="20" rx="3" fill="#fff"/>
</clipPath>
<g clip-path="url(#a)">
<path fill="#555" d="M0 0h93v20H0z"/>
<path fill="#4c1" d="M93 0h43v20H93z"/>
<path fill="url(#b)" d="M0 0h136v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110">
<text x="475" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="830">
documentation
</text>
<text x="475" y="140" transform="scale(.1)" textLength="830">
documentation
</text>
<text x="1135" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="330">
100%
</text>
<text x="1135" y="140" transform="scale(.1)" textLength="330">
100%
</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+200
View File
@@ -0,0 +1,200 @@
/* Credit to https://gist.github.com/wataru420/2048287 */
.highlight {
/* Comment */
/* Error */
/* Keyword */
/* Operator */
/* Comment.Multiline */
/* Comment.Preproc */
/* Comment.Single */
/* Comment.Special */
/* Generic.Deleted */
/* Generic.Deleted.Specific */
/* Generic.Emph */
/* Generic.Error */
/* Generic.Heading */
/* Generic.Inserted */
/* Generic.Inserted.Specific */
/* Generic.Output */
/* Generic.Prompt */
/* Generic.Strong */
/* Generic.Subheading */
/* Generic.Traceback */
/* Keyword.Constant */
/* Keyword.Declaration */
/* Keyword.Pseudo */
/* Keyword.Reserved */
/* Keyword.Type */
/* Literal.Number */
/* Literal.String */
/* Name.Attribute */
/* Name.Builtin */
/* Name.Class */
/* Name.Constant */
/* Name.Entity */
/* Name.Exception */
/* Name.Function */
/* Name.Namespace */
/* Name.Tag */
/* Name.Variable */
/* Operator.Word */
/* Text.Whitespace */
/* Literal.Number.Float */
/* Literal.Number.Hex */
/* Literal.Number.Integer */
/* Literal.Number.Oct */
/* Literal.String.Backtick */
/* Literal.String.Char */
/* Literal.String.Doc */
/* Literal.String.Double */
/* Literal.String.Escape */
/* Literal.String.Heredoc */
/* Literal.String.Interpol */
/* Literal.String.Other */
/* Literal.String.Regex */
/* Literal.String.Single */
/* Literal.String.Symbol */
/* Name.Builtin.Pseudo */
/* Name.Variable.Class */
/* Name.Variable.Global */
/* Name.Variable.Instance */
/* Literal.Number.Integer.Long */ }
.highlight .c {
color: #999988;
font-style: italic; }
.highlight .err {
color: #a61717;
background-color: #e3d2d2; }
.highlight .k {
color: #000000;
font-weight: bold; }
.highlight .o {
color: #000000;
font-weight: bold; }
.highlight .cm {
color: #999988;
font-style: italic; }
.highlight .cp {
color: #999999;
font-weight: bold; }
.highlight .c1 {
color: #999988;
font-style: italic; }
.highlight .cs {
color: #999999;
font-weight: bold;
font-style: italic; }
.highlight .gd {
color: #000000;
background-color: #ffdddd; }
.highlight .gd .x {
color: #000000;
background-color: #ffaaaa; }
.highlight .ge {
color: #000000;
font-style: italic; }
.highlight .gr {
color: #aa0000; }
.highlight .gh {
color: #999999; }
.highlight .gi {
color: #000000;
background-color: #ddffdd; }
.highlight .gi .x {
color: #000000;
background-color: #aaffaa; }
.highlight .go {
color: #888888; }
.highlight .gp {
color: #555555; }
.highlight .gs {
font-weight: bold; }
.highlight .gu {
color: #aaaaaa; }
.highlight .gt {
color: #aa0000; }
.highlight .kc {
color: #000000;
font-weight: bold; }
.highlight .kd {
color: #000000;
font-weight: bold; }
.highlight .kp {
color: #000000;
font-weight: bold; }
.highlight .kr {
color: #000000;
font-weight: bold; }
.highlight .kt {
color: #445588; }
.highlight .m {
color: #009999; }
.highlight .s {
color: #d14; }
.highlight .na {
color: #008080; }
.highlight .nb {
color: #0086B3; }
.highlight .nc {
color: #445588;
font-weight: bold; }
.highlight .no {
color: #008080; }
.highlight .ni {
color: #800080; }
.highlight .ne {
color: #990000;
font-weight: bold; }
.highlight .nf {
color: #990000; }
.highlight .nn {
color: #555555; }
.highlight .nt {
color: #000080; }
.highlight .nv {
color: #008080; }
.highlight .ow {
color: #000000;
font-weight: bold; }
.highlight .w {
color: #bbbbbb; }
.highlight .mf {
color: #009999; }
.highlight .mh {
color: #009999; }
.highlight .mi {
color: #009999; }
.highlight .mo {
color: #009999; }
.highlight .sb {
color: #d14; }
.highlight .sc {
color: #d14; }
.highlight .sd {
color: #d14; }
.highlight .s2 {
color: #d14; }
.highlight .se {
color: #d14; }
.highlight .sh {
color: #d14; }
.highlight .si {
color: #d14; }
.highlight .sx {
color: #d14; }
.highlight .sr {
color: #009926; }
.highlight .s1 {
color: #d14; }
.highlight .ss {
color: #990073; }
.highlight .bp {
color: #999999; }
.highlight .vc {
color: #008080; }
.highlight .vg {
color: #008080; }
.highlight .vi {
color: #008080; }
.highlight .il {
color: #009999; }
+337
View File
@@ -0,0 +1,337 @@
html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td {
background: transparent;
border: 0;
margin: 0;
outline: 0;
padding: 0;
vertical-align: baseline; }
body {
background-color: #f2f2f2;
font-family: Helvetica, freesans, Arial, sans-serif;
font-size: 14px;
-webkit-font-smoothing: subpixel-antialiased;
word-wrap: break-word; }
h1, h2, h3 {
margin-top: 0.8em;
margin-bottom: 0.3em;
font-weight: 100;
color: black; }
h1 {
font-size: 2.5em; }
h2 {
font-size: 2em;
border-bottom: 1px solid #e2e2e2; }
h4 {
font-size: 13px;
line-height: 1.5;
margin-top: 21px; }
h5 {
font-size: 1.1em; }
h6 {
font-size: 1.1em;
color: #777; }
.section-name {
color: gray;
display: block;
font-family: Helvetica;
font-size: 22px;
font-weight: 100;
margin-bottom: 15px; }
pre, code {
font: 0.95em Menlo, monospace;
color: #777;
word-wrap: normal; }
p code, li code {
background-color: #eee;
padding: 2px 4px;
border-radius: 4px; }
a {
color: #0088cc;
text-decoration: none; }
ul {
padding-left: 15px; }
li {
line-height: 1.8em; }
img {
max-width: 100%; }
blockquote {
margin-left: 0;
padding: 0 10px;
border-left: 4px solid #ccc; }
.content-wrapper {
margin: 0 auto;
width: 980px; }
header {
font-size: 0.85em;
line-height: 26px;
background-color: #414141;
position: fixed;
width: 100%;
z-index: 1; }
header img {
padding-right: 6px;
vertical-align: -4px;
height: 16px; }
header a {
color: #fff; }
header p {
float: left;
color: #999; }
header .header-right {
float: right;
margin-left: 16px; }
#breadcrumbs {
background-color: #f2f2f2;
height: 27px;
padding-top: 17px;
position: fixed;
width: 100%;
z-index: 1;
margin-top: 26px; }
#breadcrumbs #carat {
height: 10px;
margin: 0 5px; }
.sidebar {
background-color: #f9f9f9;
border: 1px solid #e2e2e2;
overflow-y: auto;
overflow-x: hidden;
position: fixed;
top: 70px;
bottom: 0;
width: 230px;
word-wrap: normal; }
.nav-groups {
list-style-type: none;
background: #fff;
padding-left: 0; }
.nav-group-name {
border-bottom: 1px solid #e2e2e2;
font-size: 1.1em;
font-weight: 100;
padding: 15px 0 15px 20px; }
.nav-group-name > a {
color: #333; }
.nav-group-tasks {
margin-top: 5px; }
.nav-group-task {
font-size: 0.9em;
list-style-type: none;
white-space: nowrap; }
.nav-group-task a {
color: #888; }
.main-content {
background-color: #fff;
border: 1px solid #e2e2e2;
margin-left: 246px;
position: absolute;
overflow: hidden;
padding-bottom: 60px;
top: 70px;
width: 734px; }
.main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote {
margin-bottom: 1em; }
.main-content p {
line-height: 1.8em; }
.main-content section .section:first-child {
margin-top: 0;
padding-top: 0; }
.main-content section .task-group-section .task-group:first-of-type {
padding-top: 10px; }
.main-content section .task-group-section .task-group:first-of-type .section-name {
padding-top: 15px; }
.main-content section .heading:before {
content: "";
display: block;
padding-top: 70px;
margin: -70px 0 0; }
.section {
padding: 0 25px; }
.highlight {
background-color: #eee;
padding: 10px 12px;
border: 1px solid #e2e2e2;
border-radius: 4px;
overflow-x: auto; }
.declaration .highlight {
overflow-x: initial;
padding: 0 40px 40px 0;
margin-bottom: -25px;
background-color: transparent;
border: none; }
.section-name {
margin: 0;
margin-left: 18px; }
.task-group-section {
padding-left: 6px;
border-top: 1px solid #e2e2e2; }
.task-group {
padding-top: 0px; }
.task-name-container a[name]:before {
content: "";
display: block;
padding-top: 70px;
margin: -70px 0 0; }
.item {
padding-top: 8px;
width: 100%;
list-style-type: none; }
.item a[name]:before {
content: "";
display: block;
padding-top: 70px;
margin: -70px 0 0; }
.item code {
background-color: transparent;
padding: 0; }
.item .token {
padding-left: 3px;
margin-left: 15px;
font-size: 11.9px; }
.item .declaration-note {
font-size: .85em;
color: gray;
font-style: italic; }
.pointer-container {
border-bottom: 1px solid #e2e2e2;
left: -23px;
padding-bottom: 13px;
position: relative;
width: 110%; }
.pointer {
background: #f9f9f9;
border-left: 1px solid #e2e2e2;
border-top: 1px solid #e2e2e2;
height: 12px;
left: 21px;
top: -7px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
width: 12px; }
.height-container {
display: none;
left: -25px;
padding: 0 25px;
position: relative;
width: 100%;
overflow: hidden; }
.height-container .section {
background: #f9f9f9;
border-bottom: 1px solid #e2e2e2;
left: -25px;
position: relative;
width: 100%;
padding-top: 10px;
padding-bottom: 5px; }
.aside, .language {
padding: 6px 12px;
margin: 12px 0;
border-left: 5px solid #dddddd;
overflow-y: hidden; }
.aside .aside-title, .language .aside-title {
font-size: 9px;
letter-spacing: 2px;
text-transform: uppercase;
padding-bottom: 0;
margin: 0;
color: #aaa;
-webkit-user-select: none; }
.aside p:last-child, .language p:last-child {
margin-bottom: 0; }
.language {
border-left: 5px solid #cde9f4; }
.language .aside-title {
color: #4b8afb; }
.aside-warning {
border-left: 5px solid #ff6666; }
.aside-warning .aside-title {
color: #ff0000; }
.graybox {
border-collapse: collapse;
width: 100%; }
.graybox p {
margin: 0;
word-break: break-word;
min-width: 50px; }
.graybox td {
border: 1px solid #e2e2e2;
padding: 5px 25px 5px 10px;
vertical-align: middle; }
.graybox tr td:first-of-type {
text-align: right;
padding: 7px;
vertical-align: top;
word-break: normal;
width: 40px; }
.slightly-smaller {
font-size: 0.9em; }
#footer {
position: absolute;
bottom: 10px;
margin-left: 25px; }
#footer p {
margin: 0;
color: #aaa;
font-size: 0.8em; }
html.dash header, html.dash #breadcrumbs, html.dash .sidebar {
display: none; }
html.dash .main-content {
width: 980px;
margin-left: 0;
border: none;
width: 100%;
top: 0;
padding-bottom: 0; }
html.dash .height-container {
display: block; }
html.dash .item .token {
margin-left: 0; }
html.dash .content-wrapper {
width: auto; }
html.dash #footer {
position: static; }
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>com.jazzy.</string>
<key>CFBundleName</key>
<string></string>
<key>DocSetPlatformFamily</key>
<string></string>
<key>isDashDocset</key>
<true/>
<key>dashIndexFilePath</key>
<string>index.html</string>
<key>isJavaScriptEnabled</key>
<true/>
<key>DashDocSetFamily</key>
<string>dashtoc</string>
</dict>
</plist>
@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Classes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Classes Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Classes</h1>
<p>The following classes are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Siren"></a>
<a name="//apple_ref/swift/Section/Siren" class="dashAnchor"></a>
<a href="#/Siren">
<h3 class="section-name">Siren</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/c:@M@Siren@objc(cs)Siren"></a>
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
<a class="token" href="#/c:@M@Siren@objc(cs)Siren">Siren</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The Siren Class. A singleton that is initialized using the <code>shared</code> constant.</p>
<a href="Classes/Siren.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">Siren</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,744 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Siren Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
<a title="Siren Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
Siren Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Siren</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">Siren</span><span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
<p>The Siren Class. A singleton that is initialized using the <code>shared</code> constant.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC0A11ErrorDomainSSv"></a>
<a name="//apple_ref/swift/Property/SirenErrorDomain" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC0A11ErrorDomainSSv">SirenErrorDomain</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The error domain for all errors created by Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">SirenErrorDomain</span> <span class="o">=</span> <span class="s">"Siren Error Domain"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC8delegateAA0A8Delegate_pSgXwv"></a>
<a name="//apple_ref/swift/Property/delegate" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC8delegateAA0A8Delegate_pSgXwv">delegate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The SirenDelegate variable, which should be set if you&rsquo;d like to be notified:</p>
<p>When a user views or interacts with the alert</p>
<ul>
<li>sirenDidShowUpdateDialog(alertType: AlertType)</li>
<li>sirenUserDidLaunchAppStore()</li>
<li>sirenUserDidSkipVersion()</li>
<li>sirenUserDidCancel()</li>
</ul>
<p>When a new version has been detected, and you would like to present a localized message in a custom UI. use this delegate method:</p>
<ul>
<li>sirenDidDetectNewVersionWithoutAlert(message: String)</li>
</ul>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">weak</span> <span class="k">var</span> <span class="nv">delegate</span><span class="p">:</span> <span class="kt"><a href="../Protocols/SirenDelegate.html">SirenDelegate</a></span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12debugEnabledSbv"></a>
<a name="//apple_ref/swift/Property/debugEnabled" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12debugEnabledSbv">debugEnabled</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The debug flag, which is disabled by default.
When enabled, a stream of print() statements are logged to your console when a version check is performed.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">debugEnabled</span> <span class="o">=</span> <span class="kc">false</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9alertTypeAB05AlertC0Ov"></a>
<a name="//apple_ref/swift/Property/alertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9alertTypeAB05AlertC0Ov">alertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/majorUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ov">majorUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for major version updates: A.b.c
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">majorUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/minorUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ov">minorUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for minor version updates: a.B.c
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">minorUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/patchUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ov">patchUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for minor patch updates: a.b.C
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">patchUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ov"></a>
<a name="//apple_ref/swift/Property/revisionUpdateAlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ov">revisionUpdateAlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert that should be shown for revision updates: a.b.c.D
Defaults to Siren.AlertType.option.
See the Siren.AlertType enum for full details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">revisionUpdateAlertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC7appNameSSv"></a>
<a name="//apple_ref/swift/Property/appName" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC7appNameSSv">appName</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The name of your app.
By default, it&rsquo;s set to the name of the app that&rsquo;s stored in your plist.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">appName</span> <span class="o">=</span> <span class="kt">Bundle</span><span class="o">.</span><span class="nf">bestMatchingAppName</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC14alertMessagingAA0a5AlertC0Vv"></a>
<a name="//apple_ref/swift/Property/alertMessaging" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC14alertMessagingAA0a5AlertC0Vv">alertMessaging</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Overrides all the Strings to which Siren defaults.
Defaults to the values defined in <code><a href="../Structs/SirenAlertMessaging/Constants.html">SirenAlertMessaging.Constants</a></code></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertMessaging</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a></span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC11countryCodeSSSgv"></a>
<a name="//apple_ref/swift/Property/countryCode" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC11countryCodeSSSgv">countryCode</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The region or country of an App Store in which your app is available.
By default, all version checks are performed against the US App Store.
If your app is not available in the US App Store, set it to the identifier of at least one App Store within which it is available.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">countryCode</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgv"></a>
<a name="//apple_ref/swift/Property/forceLanguageLocalization" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgv">forceLanguageLocalization</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Overrides the default localization of a user&rsquo;s device when presenting the update message and button titles in the alert.
See the Siren.LanguageType enum for more details.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">forceLanguageLocalization</span><span class="p">:</span> <span class="kt">Siren</span><span class="o">.</span><span class="kt"><a href="../Classes/Siren/LanguageType.html">LanguageType</a></span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgv"></a>
<a name="//apple_ref/swift/Property/alertControllerTintColor" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgv">alertControllerTintColor</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Overrides the tint color for UIAlertController.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertControllerTintColor</span><span class="p">:</span> <span class="kt">UIColor</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSiv"></a>
<a name="//apple_ref/swift/Property/showAlertAfterCurrentVersionHasBeenReleasedForDays" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSiv">showAlertAfterCurrentVersionHasBeenReleasedForDays</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>When this is set, the alert will only show up if the current version has already been released for X days
Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the app binary propogates to the App Store.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">showAlertAfterCurrentVersionHasBeenReleasedForDays</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="mi">1</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC22currentAppStoreVersionSSSgv"></a>
<a name="//apple_ref/swift/Property/currentAppStoreVersion" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC22currentAppStoreVersionSSSgv">currentAppStoreVersion</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The current version of your app that is available for download on the App Store</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">internal(set)</span> <span class="k">var</span> <span class="nv">currentAppStoreVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC6sharedABvZ"></a>
<a name="//apple_ref/swift/Variable/shared" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC6sharedABvZ">shared</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The App&rsquo;s Singleton</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">shared</span> <span class="o">=</span> <span class="kt">Siren</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12checkVersionyAB0C9CheckTypeO0bE0_tF"></a>
<a name="//apple_ref/swift/Method/checkVersion(checkType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12checkVersionyAB0C9CheckTypeO0bE0_tF">checkVersion(checkType:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Checks the currently installed version of your app against the App Store.
The default check is against the US App Store, but if your app is not listed in the US,
you should set the <code><a href="../Classes/Siren.html#/s:5SirenAAC11countryCodeSSSgv">countryCode</a></code> property before calling this method. Please refer to the countryCode property for more information.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">checkVersion</span><span class="p">(</span><span class="nv">checkType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren/VersionCheckType.html">VersionCheckType</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>checkType</em>
</code>
</td>
<td>
<div>
<p>The frequency in days in which you want a check to be performed. Please refer to the Siren.VersionCheckType enum for more details.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC14launchAppStoreyyF"></a>
<a name="//apple_ref/swift/Method/launchAppStore()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC14launchAppStoreyyF">launchAppStore()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Launches the AppStore in two situations:</p>
<ul>
<li>User clicked the <code>Update</code> button in the UIAlertController modal.</li>
<li>Developer built a custom alert modal and needs to be able to call this function when the user chooses to update the app in the aforementioned custom modal.</li>
</ul>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">launchAppStore</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO"></a>
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO">AlertType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the type of alert to present after a successful version check has been performed.</p>
<a href="../Classes/Siren/AlertType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO"></a>
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO">VersionCheckType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the frequency in which the the version check is performed and the user is prompted to update the app.</p>
<a href="../Classes/Siren/VersionCheckType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12LanguageTypeO"></a>
<a name="//apple_ref/swift/Enum/LanguageType" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12LanguageTypeO">LanguageType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines the available languages in which the update message and alert button titles should appear.</p>
<p>By default, the operating system&rsquo;s default lanuage setting is used. However, you can force a specific language
by setting the forceLanguageLocalization property before calling checkVersion()</p>
<a href="../Classes/Siren/LanguageType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">LanguageType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,231 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>AlertType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
<a title="AlertType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
AlertType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>AlertType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
</div>
</div>
<p>Determines the type of alert to present after a successful version check has been performed.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO5forceA2DmF"></a>
<a name="//apple_ref/swift/Element/force" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO5forceA2DmF">force</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Forces user to update your app (1 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">force</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO6optionA2DmF"></a>
<a name="//apple_ref/swift/Element/option" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO6optionA2DmF">option</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>(DEFAULT) Presents user with option to update app now or at next launch (2 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO4skipA2DmF"></a>
<a name="//apple_ref/swift/Element/skip" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO4skipA2DmF">skip</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">skip</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO4noneA2DmF"></a>
<a name="//apple_ref/swift/Element/none" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO4noneA2DmF">none</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Doesn&rsquo;t show the alert, but instead returns a localized message
for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="k">none</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,199 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>VersionCheckType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
<a title="VersionCheckType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
VersionCheckType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>VersionCheckType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
</div>
</div>
<p>Determines the frequency in which the the version check is performed and the user is prompted to update the app.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO11immediatelyA2DmF"></a>
<a name="//apple_ref/swift/Element/immediately" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO11immediatelyA2DmF">immediately</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed every time the app is launched.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">immediately</span> <span class="o">=</span> <span class="mi">0</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO5dailyA2DmF"></a>
<a name="//apple_ref/swift/Element/daily" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO5dailyA2DmF">daily</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed once a day.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">daily</span> <span class="o">=</span> <span class="mi">1</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO6weeklyA2DmF"></a>
<a name="//apple_ref/swift/Element/weekly" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO6weeklyA2DmF">weekly</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed once a week.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">weekly</span> <span class="o">=</span> <span class="mi">7</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Enumerations Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Enumerations Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Enumerations Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Enumerations</h1>
<p>The following enumerations are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO"></a>
<a name="//apple_ref/swift/Enum/UpdateType" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO">UpdateType</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>MARK - Siren UpdateType
<code>UpdateType</code> defines what kind of update is available
It is used as parameter if user wants to use
custom alert to inform the user about an update.</p>
<ul>
<li>major: Major release available: A.b.c.d</li>
<li>minor: Minor release available: a.B.c.d</li>
<li>patch: Patch release available: a.b.C.d</li>
<li>revision: Revision release available: a.b.c.D</li>
<li>unknown: No information available about the update</li>
</ul>
<a href="Enums/UpdateType.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UpdateType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,267 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>UpdateType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/UpdateType" class="dashAnchor"></a>
<a title="UpdateType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
UpdateType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>UpdateType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UpdateType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
<p>MARK - Siren UpdateType
<code>UpdateType</code> defines what kind of update is available
It is used as parameter if user wants to use
custom alert to inform the user about an update.</p>
<ul>
<li>major: Major release available: A.b.c.d</li>
<li>minor: Minor release available: a.B.c.d</li>
<li>patch: Patch release available: a.b.C.d</li>
<li>revision: Revision release available: a.b.c.D</li>
<li>unknown: No information available about the update</li>
</ul>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5majorA2CmF"></a>
<a name="//apple_ref/swift/Element/major" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5majorA2CmF">major</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">major</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5minorA2CmF"></a>
<a name="//apple_ref/swift/Element/minor" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5minorA2CmF">minor</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">minor</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5patchA2CmF"></a>
<a name="//apple_ref/swift/Element/patch" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5patchA2CmF">patch</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">patch</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO8revisionA2CmF"></a>
<a name="//apple_ref/swift/Element/revision" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO8revisionA2CmF">revision</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">revision</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO7unknownA2CmF"></a>
<a name="//apple_ref/swift/Element/unknown" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO7unknownA2CmF">unknown</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">unknown</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Protocols Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Protocols Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Protocols Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Protocols</h1>
<p>The following protocols are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/SirenDelegate%20Protocol"></a>
<a name="//apple_ref/swift/Section/SirenDelegate Protocol" class="dashAnchor"></a>
<a href="#/SirenDelegate%20Protocol">
<h3 class="section-name">SirenDelegate Protocol</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP"></a>
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP">SirenDelegate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Delegate that handles all codepaths for Siren upon version check completion.</p>
<a href="Protocols/SirenDelegate.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kt">NSObjectProtocol</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,348 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenDelegate Protocol Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
<a title="SirenDelegate Protocol Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
SirenDelegate Protocol Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenDelegate</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kt">NSObjectProtocol</span></code></pre>
</div>
</div>
<p>Delegate that handles all codepaths for Siren upon version check completion.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP24sirenDidShowUpdateDialogyA2AC9AlertTypeO05alertI0_tF"></a>
<a name="//apple_ref/swift/Method/sirenDidShowUpdateDialog(alertType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidShowUpdateDialogyA2AC9AlertTypeO05alertI0_tF">sirenDidShowUpdateDialog(alertType:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User presented with update dialog.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidShowUpdateDialog</span><span class="p">(</span><span class="nv">alertType</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren.html">Siren</a></span><span class="o">.</span><span class="kt">AlertType</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP26sirenUserDidLaunchAppStoreyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidLaunchAppStore()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP26sirenUserDidLaunchAppStoreyyF">sirenUserDidLaunchAppStore()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that launched App Store.app.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP23sirenUserDidSkipVersionyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidSkipVersion()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP23sirenUserDidSkipVersionyyF">sirenUserDidSkipVersion()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that skips version update.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP18sirenUserDidCancelyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidCancel()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP18sirenUserDidCancelyyF">sirenUserDidCancel()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that cancels update dialog.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP24sirenDidFailVersionCheckys5Error_p5error_tF"></a>
<a name="//apple_ref/swift/Method/sirenDidFailVersionCheck(error:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidFailVersionCheckys5Error_p5error_tF">sirenDidFailVersionCheck(error:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren failed to perform version check (may return system-level error).</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidFailVersionCheck</span><span class="p">(</span><span class="nv">error</span><span class="p">:</span> <span class="kt">Error</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlertySS7message_AA10UpdateTypeO06updateL0tF"></a>
<a name="//apple_ref/swift/Method/sirenDidDetectNewVersionWithoutAlert(message:updateType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlertySS7message_AA10UpdateTypeO06updateL0tF">sirenDidDetectNewVersionWithoutAlert(message:updateType:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren performed version check and did not display alert.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidDetectNewVersionWithoutAlert</span><span class="p">(</span><span class="nv">message</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">updateType</span><span class="p">:</span> <span class="kt"><a href="../Enums/UpdateType.html">UpdateType</a></span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP27sirenLatestVersionInstalledyyF"></a>
<a name="//apple_ref/swift/Method/sirenLatestVersionInstalled()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP27sirenLatestVersionInstalledyyF">sirenLatestVersionInstalled()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren performed version check and latest version is installed.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,183 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Structures Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Structures Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Structures Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Structures</h1>
<p>The following structures are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Siren%20Error%20Handling"></a>
<a name="//apple_ref/swift/Section/Siren Error Handling" class="dashAnchor"></a>
<a href="#/Siren%20Error%20Handling">
<h3 class="section-name">Siren Error Handling</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV"></a>
<a name="//apple_ref/swift/Struct/SirenError" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV">SirenError</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Structs/SirenError.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenError</span><span class="p">:</span> <span class="kt">LocalizedError</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Siren%20Alert%20Messaging%20Customization"></a>
<a name="//apple_ref/swift/Section/Siren Alert Messaging Customization" class="dashAnchor"></a>
<a href="#/Siren%20Alert%20Messaging%20Customization">
<h3 class="section-name">Siren Alert Messaging Customization</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV"></a>
<a name="//apple_ref/swift/Struct/SirenAlertMessaging" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV">SirenAlertMessaging</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Allows the overriding of all the <code>UIAlertController</code> and <code>UIActionSheet</code> Strings to which Siren defaults.</p>
<div class="aside aside-warning">
<p class="aside-title">Warning</p>
Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides.
</div>
<p>As SirenAlertMessaging is a Struct, one <em>or</em> more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.</p>
<a href="Structs/SirenAlertMessaging.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenAlertMessaging</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,242 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenAlertMessaging Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/SirenAlertMessaging" class="dashAnchor"></a>
<a title="SirenAlertMessaging Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
SirenAlertMessaging Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenAlertMessaging</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenAlertMessaging</span></code></pre>
</div>
</div>
<p>Allows the overriding of all the <code>UIAlertController</code> and <code>UIActionSheet</code> Strings to which Siren defaults.</p>
<div class="aside aside-warning">
<p class="aside-title">Warning</p>
Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides.
</div>
<p>As SirenAlertMessaging is a Struct, one <em>or</em> more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV"></a>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV">Constants</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="../Structs/SirenAlertMessaging/Constants.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingVACSS11updateTitle_SS0D7MessageSS0d6ButtonF0SS08nextTimegF0SS011skipVersiongF0tcfc"></a>
<a name="//apple_ref/swift/Method/init(updateTitle:updateMessage:updateButtonMessage:nextTimeButtonMessage:skipVersionButtonMessage:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingVACSS11updateTitle_SS0D7MessageSS0d6ButtonF0SS08nextTimegF0SS011skipVersiongF0tcfc">init(updateTitle:updateMessage:updateButtonMessage:nextTimeButtonMessage:skipVersionButtonMessage:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The public initializer</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="n">updateTitle</span> <span class="nv">title</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">updateTitle</span><span class="p">,</span>
<span class="n">updateMessage</span> <span class="nv">message</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">updateMessage</span><span class="p">,</span>
<span class="nv">updateButtonMessage</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">updateNow</span><span class="p">,</span>
<span class="nv">nextTimeButtonMessage</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">nextTime</span><span class="p">,</span>
<span class="nv">skipVersionButtonMessage</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt"><a href="../Structs/SirenAlertMessaging/Constants.html">Constants</a></span><span class="o">.</span><span class="n">skipVersion</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>title</em>
</code>
</td>
<td>
<div>
<p>The title field of the <code>UIAlertController</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>message</em>
</code>
</td>
<td>
<div>
<p>The <code>message</code> field of the <code>UIAlertController</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>updateButtonMessage</em>
</code>
</td>
<td>
<div>
<p>The <code>title</code> field of the Update Button <code>UIAlertAction</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>nextTimeButtonMessage</em>
</code>
</td>
<td>
<div>
<p>The <code>title</code> field of the Next Time Button <code>UIAlertAction</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>skipVersionButtonMessage</em>
</code>
</td>
<td>
<div>
<p>The <code>title</code> field of the Skip Button <code>UIAlertAction</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,239 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Constants Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a title="Constants Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
Constants Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Constants</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSSvZ"></a>
<a name="//apple_ref/swift/Variable/nextTime" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSSvZ">nextTime</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">nextTime</span> <span class="o">=</span> <span class="s">"Next time"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSSvZ"></a>
<a name="//apple_ref/swift/Variable/skipVersion" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSSvZ">skipVersion</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">skipVersion</span> <span class="o">=</span> <span class="s">"Skip this version"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSSvZ"></a>
<a name="//apple_ref/swift/Variable/updateMessage" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSSvZ">updateMessage</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">updateMessage</span> <span class="o">=</span> <span class="s">"A new version of %@ is available. Please update to version %@ now."</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSSvZ"></a>
<a name="//apple_ref/swift/Variable/updateTitle" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSSvZ">updateTitle</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">updateTitle</span> <span class="o">=</span> <span class="s">"Update Available"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSSvZ"></a>
<a name="//apple_ref/swift/Variable/updateNow" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSSvZ">updateNow</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">updateNow</span> <span class="o">=</span> <span class="s">"Update"</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,136 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenError Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/SirenError" class="dashAnchor"></a>
<a title="SirenError Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html"> Reference</a>
<img id="carat" src="../img/carat.png" />
SirenError Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenError</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SirenError</span><span class="p">:</span> <span class="kt">LocalizedError</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO"></a>
<a name="//apple_ref/swift/Enum/Known" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO">Known</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="../Structs/SirenError/Known.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">Known</span><span class="p">:</span> <span class="kt">Error</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,375 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Known Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/Known" class="dashAnchor"></a>
<a title="Known Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html"> Reference</a>
<img id="carat" src="../../img/carat.png" />
Known Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Known</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">Known</span><span class="p">:</span> <span class="kt">Error</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreAppIDFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureA2EmF">appStoreAppIDFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreAppIDFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureAEs0B0_pSg010underlyingB0_tcAEmF"></a>
<a name="//apple_ref/swift/Element/appStoreDataRetrievalFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureAEs0B0_pSg010underlyingB0_tcAEmF">appStoreDataRetrievalFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">appStoreDataRetrievalFailure</span><span class="p">(</span><span class="nv">underlyingError</span><span class="p">:</span> <span class="kt">Error</span><span class="p">?)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureAEs0B0_p010underlyingB0_tcAEmF"></a>
<a name="//apple_ref/swift/Element/appStoreJSONParsingFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureAEs0B0_p010underlyingB0_tcAEmF">appStoreJSONParsingFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">appStoreJSONParsingFailure</span><span class="p">(</span><span class="nv">underlyingError</span><span class="p">:</span> <span class="kt">Error</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreOSVersionNumberFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureA2EmF">appStoreOSVersionNumberFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreOSVersionNumberFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreOSVersionUnsupported" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedA2EmF">appStoreOSVersionUnsupported</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreOSVersionUnsupported</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureA2EmF"></a>
<a name="//apple_ref/swift/Element/appStoreVersionArrayFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureA2EmF">appStoreVersionArrayFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreVersionArrayFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO12malformedURLA2EmF"></a>
<a name="//apple_ref/swift/Element/malformedURL" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO12malformedURLA2EmF">malformedURL</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">malformedURL</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableA2EmF"></a>
<a name="//apple_ref/swift/Element/noUpdateAvailable" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableA2EmF">noUpdateAvailable</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">noUpdateAvailable</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyA2EmF"></a>
<a name="//apple_ref/swift/Element/recentlyCheckedAlready" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyA2EmF">recentlyCheckedAlready</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">recentlyCheckedAlready</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,200 @@
/* Credit to https://gist.github.com/wataru420/2048287 */
.highlight {
/* Comment */
/* Error */
/* Keyword */
/* Operator */
/* Comment.Multiline */
/* Comment.Preproc */
/* Comment.Single */
/* Comment.Special */
/* Generic.Deleted */
/* Generic.Deleted.Specific */
/* Generic.Emph */
/* Generic.Error */
/* Generic.Heading */
/* Generic.Inserted */
/* Generic.Inserted.Specific */
/* Generic.Output */
/* Generic.Prompt */
/* Generic.Strong */
/* Generic.Subheading */
/* Generic.Traceback */
/* Keyword.Constant */
/* Keyword.Declaration */
/* Keyword.Pseudo */
/* Keyword.Reserved */
/* Keyword.Type */
/* Literal.Number */
/* Literal.String */
/* Name.Attribute */
/* Name.Builtin */
/* Name.Class */
/* Name.Constant */
/* Name.Entity */
/* Name.Exception */
/* Name.Function */
/* Name.Namespace */
/* Name.Tag */
/* Name.Variable */
/* Operator.Word */
/* Text.Whitespace */
/* Literal.Number.Float */
/* Literal.Number.Hex */
/* Literal.Number.Integer */
/* Literal.Number.Oct */
/* Literal.String.Backtick */
/* Literal.String.Char */
/* Literal.String.Doc */
/* Literal.String.Double */
/* Literal.String.Escape */
/* Literal.String.Heredoc */
/* Literal.String.Interpol */
/* Literal.String.Other */
/* Literal.String.Regex */
/* Literal.String.Single */
/* Literal.String.Symbol */
/* Name.Builtin.Pseudo */
/* Name.Variable.Class */
/* Name.Variable.Global */
/* Name.Variable.Instance */
/* Literal.Number.Integer.Long */ }
.highlight .c {
color: #999988;
font-style: italic; }
.highlight .err {
color: #a61717;
background-color: #e3d2d2; }
.highlight .k {
color: #000000;
font-weight: bold; }
.highlight .o {
color: #000000;
font-weight: bold; }
.highlight .cm {
color: #999988;
font-style: italic; }
.highlight .cp {
color: #999999;
font-weight: bold; }
.highlight .c1 {
color: #999988;
font-style: italic; }
.highlight .cs {
color: #999999;
font-weight: bold;
font-style: italic; }
.highlight .gd {
color: #000000;
background-color: #ffdddd; }
.highlight .gd .x {
color: #000000;
background-color: #ffaaaa; }
.highlight .ge {
color: #000000;
font-style: italic; }
.highlight .gr {
color: #aa0000; }
.highlight .gh {
color: #999999; }
.highlight .gi {
color: #000000;
background-color: #ddffdd; }
.highlight .gi .x {
color: #000000;
background-color: #aaffaa; }
.highlight .go {
color: #888888; }
.highlight .gp {
color: #555555; }
.highlight .gs {
font-weight: bold; }
.highlight .gu {
color: #aaaaaa; }
.highlight .gt {
color: #aa0000; }
.highlight .kc {
color: #000000;
font-weight: bold; }
.highlight .kd {
color: #000000;
font-weight: bold; }
.highlight .kp {
color: #000000;
font-weight: bold; }
.highlight .kr {
color: #000000;
font-weight: bold; }
.highlight .kt {
color: #445588; }
.highlight .m {
color: #009999; }
.highlight .s {
color: #d14; }
.highlight .na {
color: #008080; }
.highlight .nb {
color: #0086B3; }
.highlight .nc {
color: #445588;
font-weight: bold; }
.highlight .no {
color: #008080; }
.highlight .ni {
color: #800080; }
.highlight .ne {
color: #990000;
font-weight: bold; }
.highlight .nf {
color: #990000; }
.highlight .nn {
color: #555555; }
.highlight .nt {
color: #000080; }
.highlight .nv {
color: #008080; }
.highlight .ow {
color: #000000;
font-weight: bold; }
.highlight .w {
color: #bbbbbb; }
.highlight .mf {
color: #009999; }
.highlight .mh {
color: #009999; }
.highlight .mi {
color: #009999; }
.highlight .mo {
color: #009999; }
.highlight .sb {
color: #d14; }
.highlight .sc {
color: #d14; }
.highlight .sd {
color: #d14; }
.highlight .s2 {
color: #d14; }
.highlight .se {
color: #d14; }
.highlight .sh {
color: #d14; }
.highlight .si {
color: #d14; }
.highlight .sx {
color: #d14; }
.highlight .sr {
color: #009926; }
.highlight .s1 {
color: #d14; }
.highlight .ss {
color: #990073; }
.highlight .bp {
color: #999999; }
.highlight .vc {
color: #008080; }
.highlight .vg {
color: #008080; }
.highlight .vi {
color: #008080; }
.highlight .il {
color: #009999; }
@@ -0,0 +1,337 @@
html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td {
background: transparent;
border: 0;
margin: 0;
outline: 0;
padding: 0;
vertical-align: baseline; }
body {
background-color: #f2f2f2;
font-family: Helvetica, freesans, Arial, sans-serif;
font-size: 14px;
-webkit-font-smoothing: subpixel-antialiased;
word-wrap: break-word; }
h1, h2, h3 {
margin-top: 0.8em;
margin-bottom: 0.3em;
font-weight: 100;
color: black; }
h1 {
font-size: 2.5em; }
h2 {
font-size: 2em;
border-bottom: 1px solid #e2e2e2; }
h4 {
font-size: 13px;
line-height: 1.5;
margin-top: 21px; }
h5 {
font-size: 1.1em; }
h6 {
font-size: 1.1em;
color: #777; }
.section-name {
color: gray;
display: block;
font-family: Helvetica;
font-size: 22px;
font-weight: 100;
margin-bottom: 15px; }
pre, code {
font: 0.95em Menlo, monospace;
color: #777;
word-wrap: normal; }
p code, li code {
background-color: #eee;
padding: 2px 4px;
border-radius: 4px; }
a {
color: #0088cc;
text-decoration: none; }
ul {
padding-left: 15px; }
li {
line-height: 1.8em; }
img {
max-width: 100%; }
blockquote {
margin-left: 0;
padding: 0 10px;
border-left: 4px solid #ccc; }
.content-wrapper {
margin: 0 auto;
width: 980px; }
header {
font-size: 0.85em;
line-height: 26px;
background-color: #414141;
position: fixed;
width: 100%;
z-index: 1; }
header img {
padding-right: 6px;
vertical-align: -4px;
height: 16px; }
header a {
color: #fff; }
header p {
float: left;
color: #999; }
header .header-right {
float: right;
margin-left: 16px; }
#breadcrumbs {
background-color: #f2f2f2;
height: 27px;
padding-top: 17px;
position: fixed;
width: 100%;
z-index: 1;
margin-top: 26px; }
#breadcrumbs #carat {
height: 10px;
margin: 0 5px; }
.sidebar {
background-color: #f9f9f9;
border: 1px solid #e2e2e2;
overflow-y: auto;
overflow-x: hidden;
position: fixed;
top: 70px;
bottom: 0;
width: 230px;
word-wrap: normal; }
.nav-groups {
list-style-type: none;
background: #fff;
padding-left: 0; }
.nav-group-name {
border-bottom: 1px solid #e2e2e2;
font-size: 1.1em;
font-weight: 100;
padding: 15px 0 15px 20px; }
.nav-group-name > a {
color: #333; }
.nav-group-tasks {
margin-top: 5px; }
.nav-group-task {
font-size: 0.9em;
list-style-type: none;
white-space: nowrap; }
.nav-group-task a {
color: #888; }
.main-content {
background-color: #fff;
border: 1px solid #e2e2e2;
margin-left: 246px;
position: absolute;
overflow: hidden;
padding-bottom: 60px;
top: 70px;
width: 734px; }
.main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote {
margin-bottom: 1em; }
.main-content p {
line-height: 1.8em; }
.main-content section .section:first-child {
margin-top: 0;
padding-top: 0; }
.main-content section .task-group-section .task-group:first-of-type {
padding-top: 10px; }
.main-content section .task-group-section .task-group:first-of-type .section-name {
padding-top: 15px; }
.main-content section .heading:before {
content: "";
display: block;
padding-top: 70px;
margin: -70px 0 0; }
.section {
padding: 0 25px; }
.highlight {
background-color: #eee;
padding: 10px 12px;
border: 1px solid #e2e2e2;
border-radius: 4px;
overflow-x: auto; }
.declaration .highlight {
overflow-x: initial;
padding: 0 40px 40px 0;
margin-bottom: -25px;
background-color: transparent;
border: none; }
.section-name {
margin: 0;
margin-left: 18px; }
.task-group-section {
padding-left: 6px;
border-top: 1px solid #e2e2e2; }
.task-group {
padding-top: 0px; }
.task-name-container a[name]:before {
content: "";
display: block;
padding-top: 70px;
margin: -70px 0 0; }
.item {
padding-top: 8px;
width: 100%;
list-style-type: none; }
.item a[name]:before {
content: "";
display: block;
padding-top: 70px;
margin: -70px 0 0; }
.item code {
background-color: transparent;
padding: 0; }
.item .token {
padding-left: 3px;
margin-left: 15px;
font-size: 11.9px; }
.item .declaration-note {
font-size: .85em;
color: gray;
font-style: italic; }
.pointer-container {
border-bottom: 1px solid #e2e2e2;
left: -23px;
padding-bottom: 13px;
position: relative;
width: 110%; }
.pointer {
background: #f9f9f9;
border-left: 1px solid #e2e2e2;
border-top: 1px solid #e2e2e2;
height: 12px;
left: 21px;
top: -7px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
width: 12px; }
.height-container {
display: none;
left: -25px;
padding: 0 25px;
position: relative;
width: 100%;
overflow: hidden; }
.height-container .section {
background: #f9f9f9;
border-bottom: 1px solid #e2e2e2;
left: -25px;
position: relative;
width: 100%;
padding-top: 10px;
padding-bottom: 5px; }
.aside, .language {
padding: 6px 12px;
margin: 12px 0;
border-left: 5px solid #dddddd;
overflow-y: hidden; }
.aside .aside-title, .language .aside-title {
font-size: 9px;
letter-spacing: 2px;
text-transform: uppercase;
padding-bottom: 0;
margin: 0;
color: #aaa;
-webkit-user-select: none; }
.aside p:last-child, .language p:last-child {
margin-bottom: 0; }
.language {
border-left: 5px solid #cde9f4; }
.language .aside-title {
color: #4b8afb; }
.aside-warning {
border-left: 5px solid #ff6666; }
.aside-warning .aside-title {
color: #ff0000; }
.graybox {
border-collapse: collapse;
width: 100%; }
.graybox p {
margin: 0;
word-break: break-word;
min-width: 50px; }
.graybox td {
border: 1px solid #e2e2e2;
padding: 5px 25px 5px 10px;
vertical-align: middle; }
.graybox tr td:first-of-type {
text-align: right;
padding: 7px;
vertical-align: top;
word-break: normal;
width: 40px; }
.slightly-smaller {
font-size: 0.9em; }
#footer {
position: absolute;
bottom: 10px;
margin-left: 25px; }
#footer p {
margin: 0;
color: #aaa;
font-size: 0.8em; }
html.dash header, html.dash #breadcrumbs, html.dash .sidebar {
display: none; }
html.dash .main-content {
width: 980px;
margin-left: 0;
border: none;
width: 100%;
top: 0;
padding-bottom: 0; }
html.dash .height-container {
display: block; }
html.dash .item .token {
margin-left: 0; }
html.dash .content-wrapper {
width: auto; }
html.dash #footer {
position: static; }
Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title> Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title=" Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h3 id='authors' class='heading'>Authors</h3>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -0,0 +1,46 @@
window.jazzy = {'docset': false}
if (typeof window.dash != 'undefined') {
document.documentElement.className += ' dash'
window.jazzy.docset = true
}
if (navigator.userAgent.match(/xcode/i)) {
document.documentElement.className += ' xcode'
window.jazzy.docset = true
}
// On doc load, toggle the URL hash discussion if present
$(document).ready(function() {
if (!window.jazzy.docset) {
var linkToHash = $('a[href="' + window.location.hash +'"]');
linkToHash.trigger("click");
}
});
// On token click, toggle its discussion and animate token.marginLeft
$(".token").click(function(event) {
if (window.jazzy.docset) {
return;
}
var link = $(this);
var animationDuration = 300;
var tokenOffset = "15px";
var original = link.css('marginLeft') == tokenOffset;
link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
$content = link.parent().parent().next();
$content.slideToggle(animationDuration);
// Keeps the document from jumping to the hash.
var href = $(this).attr('href');
if (history.pushState) {
history.pushState({}, '', href);
} else {
location.hash = href;
}
event.preventDefault();
});
// Dumb down quotes within code blocks that delimit strings instead of quotations
// https://github.com/realm/jazzy/issues/714
$("code q").replaceWith(function () {
return ["\"", $(this).contents(), "\""];
});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

+97
View File
@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title> Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title=" Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html"> Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html"> Reference</a>
<img id="carat" src="img/carat.png" />
Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging.html">SirenAlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenAlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError.html">SirenError</a>
</li>
<li class="nav-group-task">
<a href="Structs/SirenError/Known.html"> Known</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h3 id='authors' class='heading'>Authors</h3>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-02-21)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+46
View File
@@ -0,0 +1,46 @@
window.jazzy = {'docset': false}
if (typeof window.dash != 'undefined') {
document.documentElement.className += ' dash'
window.jazzy.docset = true
}
if (navigator.userAgent.match(/xcode/i)) {
document.documentElement.className += ' xcode'
window.jazzy.docset = true
}
// On doc load, toggle the URL hash discussion if present
$(document).ready(function() {
if (!window.jazzy.docset) {
var linkToHash = $('a[href="' + window.location.hash +'"]');
linkToHash.trigger("click");
}
});
// On token click, toggle its discussion and animate token.marginLeft
$(".token").click(function(event) {
if (window.jazzy.docset) {
return;
}
var link = $(this);
var animationDuration = 300;
var tokenOffset = "15px";
var original = link.css('marginLeft') == tokenOffset;
link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
$content = link.parent().parent().next();
$content.slideToggle(animationDuration);
// Keeps the document from jumping to the hash.
var href = $(this).attr('href');
if (history.pushState) {
history.pushState({}, '', href);
} else {
location.hash = href;
}
event.preventDefault();
});
// Dumb down quotes within code blocks that delimit strings instead of quotations
// https://github.com/realm/jazzy/issues/714
$("code q").replaceWith(function () {
return ["\"", $(this).contents(), "\""];
});
+4
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+6
View File
@@ -0,0 +1,6 @@
{
"warnings": [
],
"source_directory": "/Users/Arthur/Documents/oss/siren/SirenExample"
}
Binary file not shown.
@@ -0,0 +1,14 @@
/* Update alert message: A new version of {APP NAME} is available. Please update to version {NEW VERSION} now.*/
"A new version of %@ is available. Please update to version %@ now." = "Μια νέα έκδοση του %@ είναι διαθέσιμη. Παρακαλώ κάντε αναβάθμιση στο %@ τώρα.";
/* Update alert title */
"Update Available" = "Διαθέσιμη Ενημέρωση";
/* Update alert dismiss button title */
"Next time" = "Άλλη φορά";
/* Update alert skip button title */
"Skip this version" = "Αγνόησε αυτήν την έκδοση";
/* Update alert skip button title */
"Update" = "Αναβάθμιση";
@@ -0,0 +1,14 @@
/* Update alert message: A new version of {APP NAME} is available. Please update to version {NEW VERSION} now.*/
"A new version of %@ is available. Please update to version %@ now." = "On ilmunud uus %@ versioon. Palun uuendage %@ versioonini.";
/* Update alert title */
"Update Available" = "Uuendus saadaval";
/* Update alert dismiss button title */
"Next time" = "Järgmisel korral";
/* Update alert skip button title */
"Skip this version" = "Jäta see version vahele";
/* Update alert skip button title */
"Update" = "Uuenda";
@@ -0,0 +1,14 @@
/* Update alert message: A new version of {APP NAME} is available. Please update to version {NEW VERSION} now.*/
"A new version of %@ is available. Please update to version %@ now." = "%@ on päivittynyt. Ole hyvä ja päivitä versioon %@ nyt.";
/* Update alert title */
"Update Available" = "Päivitys saatavilla";
/* Update alert dismiss button title */
"Next time" = "Ensi kerralla";
/* Update alert skip button title */
"Skip this version" = "Jätä tämä versio väliin";
/* Update alert skip button title */
"Update" = "Päivitys";
@@ -0,0 +1,14 @@
/* Update alert message: A new version of {APP NAME} is available. Please update to version {NEW VERSION} now.*/
"A new version of %@ is available. Please update to version %@ now." = "Nova verzia %@ je stigla. Ažuriraj na verziju %@ sada.";
/* Update alert title */
"Update Available" = "Nova ažuriranje je stigla";
/* Update alert dismiss button title */
"Next time" = "Sljedeći put";
/* Update alert skip button title */
"Skip this version" = "Preskoči ovu verziju";
/* Update alert skip button title */
"Update" = "Ažuriraj";

Some files were not shown because too many files have changed in this diff Show More