Compare commits
174 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dd0966b29b | |||
| 421eb6802e | |||
| 01c33f99d6 | |||
| de925dc477 | |||
| bdf15f9be8 | |||
| 8cb742d2a6 | |||
| 2168a4f1fc | |||
| 1febce77dd | |||
| 2197494481 | |||
| 74284809e3 | |||
| 841d04dafd | |||
| d4c7baf247 | |||
| 6f0b8f733c | |||
| f217d5cd73 | |||
| 7cfd6e788f | |||
| 1a215cc608 | |||
| 7e30501d1c | |||
| 6df36c9c8c | |||
| d7bbe9e8a6 | |||
| 62b51d52a5 | |||
| 6aa91d26c4 | |||
| beb19f19c0 | |||
| 6e504a84a0 | |||
| 129bffe9d8 | |||
| cd4328feee | |||
| 1ac84cafc8 | |||
| 36bff434f6 | |||
| 94b319573e | |||
| 43abfabe15 | |||
| 9ac0dea011 | |||
| 9721263f90 | |||
| 124fd715ef | |||
| 1c3aee01fd | |||
| fe3b0acb6d | |||
| 509b5c9ca3 | |||
| 9c00d90424 | |||
| b4bba84753 | |||
| 47b95c97e0 | |||
| fedee61c34 | |||
| 0c5c0fd1bf | |||
| f2929ef72b | |||
| f19075e6b4 | |||
| 4063d7e061 | |||
| 75bf43da3c | |||
| 556382e38e | |||
| de480f9cb8 | |||
| 0643cd318c | |||
| c7ffac16a1 | |||
| 0f85e4087a | |||
| 1bdffa86fc | |||
| 8ffc87556c | |||
| 43a5d734c1 | |||
| 4fad697cd5 | |||
| 7ab708edf6 | |||
| 094b218c1d | |||
| 3117731c00 | |||
| 3d7ebea02f | |||
| 53f32cd3d5 | |||
| af6a9825e1 | |||
| bc570b028e | |||
| c37cd6968f | |||
| ef8498a8e6 | |||
| 10ddcab12c | |||
| 8344ed8cb3 | |||
| d3668c8943 | |||
| 4def0e9441 | |||
| fa692a3912 | |||
| 80a449975b | |||
| 3fd2f93d21 | |||
| 13ad9ba3da | |||
| 31a59a4b3c | |||
| 19f303535c | |||
| cdfae11e70 | |||
| 676b125666 | |||
| 3032aed434 | |||
| a9a5be48e6 | |||
| 6999fefad4 | |||
| 7ef6584c14 | |||
| ecf41d965c | |||
| 4338a2dae2 | |||
| e80a073fe9 | |||
| a1404096bf | |||
| cef1a7f560 | |||
| 7ef618d402 | |||
| 4b32315ad1 | |||
| 2504f5efc0 | |||
| 2acc8ee0c0 | |||
| 2c833b84ee | |||
| fd5aaabb99 | |||
| 4eb31510d0 | |||
| 8bb784a16b | |||
| c98b124f73 | |||
| 5e12e74e9c | |||
| 04ad0f1682 | |||
| 87a58c65de | |||
| c2e278df55 | |||
| dee7bc8e5e | |||
| e7fc566b10 | |||
| a4ab45f772 | |||
| c72eaf234c | |||
| edb8906b4d | |||
| b7fb413814 | |||
| 0246ee905a | |||
| 853eed62c4 | |||
| 4725475cfc | |||
| 1d03dc16e1 | |||
| 1d3be00440 | |||
| 42c5ab103d | |||
| a82d13d1a2 | |||
| 77cda5f933 | |||
| a5bd175373 | |||
| a95766201b | |||
| 6a7901f443 | |||
| 97b23f2804 | |||
| e475b18892 | |||
| c41f146a2d | |||
| 12ec30958c | |||
| cdb05f36a1 | |||
| 8a85468354 | |||
| 54e91577a7 | |||
| 171250c580 | |||
| 1b07f76f59 | |||
| b7819acbd5 | |||
| 2c10d82f7f | |||
| d7514471ba | |||
| b918235b4e | |||
| 6d1e626036 | |||
| e235f46b3b | |||
| 17f9952d8b | |||
| 5abf8ede8d | |||
| 8caddf0f8c | |||
| f6219ccb90 | |||
| 21e5f579e2 | |||
| 7c7791c17a | |||
| b03b7d12bf | |||
| 01e439d523 | |||
| 1701df1c72 | |||
| 6d5070cdb4 | |||
| 9460160937 | |||
| afeadfddfa | |||
| d234e8c472 | |||
| ca33c8f2c8 | |||
| 51eb58d236 | |||
| a8311bd6b9 | |||
| f8aa3f5534 | |||
| eba3e056c2 | |||
| 321ba43a15 | |||
| 0b9bae5cbb | |||
| c6b3ece14e | |||
| 6203ff3e17 | |||
| f9f9b82668 | |||
| 59e4b9e113 | |||
| a5a1797cce | |||
| 9eeb265614 | |||
| 31c0109adb | |||
| df3a8fd14f | |||
| c51fcc851b | |||
| add692995a | |||
| 379d4b3d82 | |||
| c402feabf1 | |||
| 1d563f89bf | |||
| 3a4d7dd841 | |||
| 543a3cc1cb | |||
| f44a3ba879 | |||
| 54b1042b5c | |||
| a904ca08df | |||
| 6101b30b3e | |||
| 208f0ade0a | |||
| e285ded587 | |||
| f2dc07757c | |||
| 6d7613fa3e | |||
| 2352276947 | |||
| 28b789f28f | |||
| d14e0ad046 |
@@ -0,0 +1 @@
|
||||
docs/* linguist-vendored
|
||||
@@ -0,0 +1 @@
|
||||
* @artsabintsev
|
||||
@@ -1,16 +1,16 @@
|
||||
Before posting an issue, please make sure your issue has not already been resolved or answered elsewhere.
|
||||
# Before posting an issue, please make sure your issue has not already been resolved or answered elsewhere.
|
||||
|
||||
Common Issue #1:
|
||||
## 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:
|
||||
## Common Issue #2:
|
||||
> "Support for macOS App Store."
|
||||
|
||||
Siren does not and will not support the macOS App Store.
|
||||
|
||||
Common Issue #3:
|
||||
## 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.
|
||||
|
||||
+1
-1
@@ -22,6 +22,6 @@ DerivedData
|
||||
#
|
||||
# We recommend against adding the Pods directory to your .gitignore. However
|
||||
# you should judge for yourself, the pros and cons are mentioned at:
|
||||
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
|
||||
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
|
||||
#
|
||||
# Pods/
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
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)"
|
||||
clean: true
|
||||
podspec: Siren.podspec
|
||||
@@ -0,0 +1 @@
|
||||
ruby-2.5.0
|
||||
@@ -1 +0,0 @@
|
||||
3.0
|
||||
@@ -5,6 +5,7 @@ included:
|
||||
|
||||
disabled_rules:
|
||||
- cyclomatic_complexity
|
||||
- nesting
|
||||
- unused_optional_binding
|
||||
- variable_name
|
||||
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
language: objective-c
|
||||
osx_image: xcode10
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
env:
|
||||
- LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8
|
||||
before_install:
|
||||
- rvm install ruby-2.4.1
|
||||
- gem install cocoapods
|
||||
- gem install xcpretty -N
|
||||
- brew update
|
||||
script:
|
||||
- set -o pipefail
|
||||
- xcodebuild -project Example/Example.xcodeproj -scheme Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty -c
|
||||
+27
-8
@@ -1,11 +1,11 @@
|
||||
### Creators
|
||||
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) and [Aaron Brager](http://twitter.com/GetAaron)
|
||||
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) and [Aaron Brager](https://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)
|
||||
- [Michael Graff](https://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)
|
||||
@@ -31,12 +31,31 @@
|
||||
- [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)
|
||||
- [Christoph Mantler](https://github.com/ChrisixFlash) for [Pull Request #106](https://github.com/ArtSabintsev/Siren/pull/106)
|
||||
- [Pietro D'Alessandro](https://github.com/xedla) for [Pull Request #107](https://github.com/ArtSabintsev/Siren/pull/107)
|
||||
- [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)
|
||||
- [Gabriel Martelo](https://github.com/gabmarfer) for [Pull Request #214](https://github.com/ArtSabintsev/Siren/pull/214)
|
||||
- [Ryan](ryanthon) for [Pull Request #216](https://github.com/ArtSabintsev/Siren/pull/216)
|
||||
- [Titouan Van Belle](TitouanVanBelle) for [Pull Request #218](https://github.com/ArtSabintsev/Siren/pull/218)
|
||||
|
||||
### Harpy Project Contributors
|
||||
This repo is a Swift language port of [Harpy](http://github.com/ArtSabintsev/Harpy). We couldn't have built this port without acknowledging the following developers who were instrumental in getting Harpy to v3.2.1, the version of Harpy that Siren was based on.
|
||||
This repo is a Swift language port of [Harpy](https://github.com/ArtSabintsev/Harpy). We couldn't have built this port without acknowledging the following developers who were instrumental in getting Harpy to v3.2.1, the version of Harpy that Siren was based on.
|
||||
|
||||
A huge **Thank You** to the following developers:
|
||||
|
||||
@@ -48,7 +67,7 @@ A huge **Thank You** to the following developers:
|
||||
- [David Keegan](https://github.com/kgn)
|
||||
- [Erick](https://github.com/dexcell0)
|
||||
- [Ercillagorka](https://github.com/ercillagorka)
|
||||
- [Jamie Ly](http://github,com/jamiely)
|
||||
- [Jamie Ly](https://github,com/jamiely)
|
||||
- [Jon Andersen](https://github.com/jonandersen)
|
||||
- [Josh T. Brown](https://github.com/joshuatbrown)
|
||||
- [Mark Rickert](https://github.com/markrickert)
|
||||
@@ -60,4 +79,4 @@ A huge **Thank You** to the following developers:
|
||||
- [TrentW](https://github.com/trentw)
|
||||
|
||||
### Special Thanks
|
||||
Finally, a massive **Thank You** to [Aaron Brager](http://twitter.com/GetAaron) for the dev-work and issue-moderation he's done on Harpy since 2012. A Swift port could not have happened without him.
|
||||
Finally, a massive **Thank You** to [Aaron Brager](https://twitter.com/GetAaron) for the dev-work and issue-moderation he's done on Harpy since 2012. A Swift port could not have happened without him.
|
||||
|
||||
+228
-138
@@ -8,32 +8,31 @@
|
||||
|
||||
/* 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 */; };
|
||||
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 */; };
|
||||
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 */; };
|
||||
8EBDF8251E6A0C41006C87B4 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8EBDF8211E6A0C41006C87B4 /* LaunchScreen.xib */; };
|
||||
8EBDF8261E6A0C41006C87B4 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8EBDF8231E6A0C41006C87B4 /* Main.storyboard */; };
|
||||
8EE6C7431E6A0AA500DBE454 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EE6C7411E6A0AA500DBE454 /* AppDelegate.swift */; };
|
||||
8EE6C7441E6A0AA500DBE454 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EE6C7421E6A0AA500DBE454 /* ViewController.swift */; };
|
||||
8EE6C7481E6A0AB800DBE454 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EE6C7461E6A0AB800DBE454 /* Images.xcassets */; };
|
||||
8E171DDE215B26B4006FBBCC /* SirenBundleExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DD1215B26B4006FBBCC /* SirenBundleExtension.swift */; };
|
||||
8E171DDF215B26B4006FBBCC /* SirenDateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DD2215B26B4006FBBCC /* SirenDateExtension.swift */; };
|
||||
8E171DE1215B26B4006FBBCC /* SirenAlertMessaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DD6215B26B4006FBBCC /* SirenAlertMessaging.swift */; };
|
||||
8E171DE2215B26B4006FBBCC /* SirenLookupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DD7215B26B4006FBBCC /* SirenLookupModel.swift */; };
|
||||
8E171DE3215B26B4006FBBCC /* SirenUIAlertControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DD8215B26B4006FBBCC /* SirenUIAlertControllerExtension.swift */; };
|
||||
8E171DE4215B26B4006FBBCC /* SirenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DDA215B26B4006FBBCC /* SirenViewController.swift */; };
|
||||
8E171DE6215B2701006FBBCC /* SirenLocalizationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DE5215B2701006FBBCC /* SirenLocalizationExtension.swift */; };
|
||||
8E171DEE215B2D09006FBBCC /* SirenUserDefaultsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DED215B2D09006FBBCC /* SirenUserDefaultsExtension.swift */; };
|
||||
8E641D2520C8B44B00908555 /* Siren.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55EC36471E6BB98A00726F13 /* Siren.framework */; };
|
||||
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 */; };
|
||||
8ED733FC215DBE4900447E3B /* SirenDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DD4215B26B4006FBBCC /* SirenDelegate.swift */; };
|
||||
8ED733FD215DBE4900447E3B /* SirenConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DE7215B27C2006FBBCC /* SirenConstants.swift */; };
|
||||
8ED733FE215DBE4900447E3B /* SirenError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DCD215B26B4006FBBCC /* SirenError.swift */; };
|
||||
8ED733FF215DBE4900447E3B /* SirenLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DCE215B26B4006FBBCC /* SirenLog.swift */; };
|
||||
8ED73400215DBE4900447E3B /* SirenHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E171DEB215B28EC006FBBCC /* SirenHelpers.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 */;
|
||||
@@ -43,40 +42,33 @@
|
||||
};
|
||||
/* 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>"; };
|
||||
55EC364A1E6BB98A00726F13 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../../Siren/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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
8EBDF8221E6A0C41006C87B4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = SirenExample/Base.lproj/LaunchScreen.xib; sourceTree = SOURCE_ROOT; };
|
||||
8EBDF8241E6A0C41006C87B4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = SirenExample/Base.lproj/Main.storyboard; sourceTree = SOURCE_ROOT; };
|
||||
8EC391811A58B465001C121E /* SirenExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SirenExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8EE6C7411E6A0AA500DBE454 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = SirenExample/AppDelegate.swift; sourceTree = SOURCE_ROOT; };
|
||||
8EE6C7421E6A0AA500DBE454 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewController.swift; path = SirenExample/ViewController.swift; sourceTree = SOURCE_ROOT; };
|
||||
8EE6C7461E6A0AB800DBE454 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = SirenExample/Images.xcassets; sourceTree = SOURCE_ROOT; };
|
||||
8EE6C7471E6A0AB800DBE454 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = SirenExample/Info.plist; sourceTree = SOURCE_ROOT; };
|
||||
8E171DCD215B26B4006FBBCC /* SirenError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenError.swift; sourceTree = "<group>"; };
|
||||
8E171DCE215B26B4006FBBCC /* SirenLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenLog.swift; sourceTree = "<group>"; };
|
||||
8E171DD1215B26B4006FBBCC /* SirenBundleExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenBundleExtension.swift; sourceTree = "<group>"; };
|
||||
8E171DD2215B26B4006FBBCC /* SirenDateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenDateExtension.swift; sourceTree = "<group>"; };
|
||||
8E171DD4215B26B4006FBBCC /* SirenDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenDelegate.swift; sourceTree = "<group>"; };
|
||||
8E171DD6215B26B4006FBBCC /* SirenAlertMessaging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenAlertMessaging.swift; sourceTree = "<group>"; };
|
||||
8E171DD7215B26B4006FBBCC /* SirenLookupModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenLookupModel.swift; sourceTree = "<group>"; };
|
||||
8E171DD8215B26B4006FBBCC /* SirenUIAlertControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenUIAlertControllerExtension.swift; sourceTree = "<group>"; };
|
||||
8E171DDA215B26B4006FBBCC /* SirenViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenViewController.swift; sourceTree = "<group>"; };
|
||||
8E171DE5215B2701006FBBCC /* SirenLocalizationExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SirenLocalizationExtension.swift; sourceTree = "<group>"; };
|
||||
8E171DE7215B27C2006FBBCC /* SirenConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SirenConstants.swift; sourceTree = "<group>"; };
|
||||
8E171DEB215B28EC006FBBCC /* SirenHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SirenHelpers.swift; sourceTree = "<group>"; };
|
||||
8E171DED215B2D09006FBBCC /* SirenUserDefaultsExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SirenUserDefaultsExtension.swift; sourceTree = "<group>"; };
|
||||
8E3A6C041D07CB6F00A8B7CF /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
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>"; };
|
||||
8EC391811A58B465001C121E /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.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 */
|
||||
@@ -100,7 +92,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
55EC364E1E6BB98A00726F13 /* Siren.framework in Frameworks */,
|
||||
8E641D2520C8B44B00908555 /* Siren.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -110,69 +102,128 @@
|
||||
55EC36481E6BB98A00726F13 /* Siren */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
55EC365E1E6BB99B00726F13 /* Siren.bundle */,
|
||||
55EC365F1E6BB99B00726F13 /* Siren.swift */,
|
||||
8E528A2F1E989A7A00B643C4 /* SirenDelegate.swift */,
|
||||
8E9C238A1E7CDB42000ED3DA /* SirenBundleExtension.swift */,
|
||||
8E43D6221E8223EE00ECFFC8 /* SirenDateExtension.swift */,
|
||||
8E528A311E989E0A00B643C4 /* SirenTestHelper.swift */,
|
||||
8E9C238C1E7CDD31000ED3DA /* SirenUIAlertControllerExtension.swift */,
|
||||
8E9C238E1E7CDDE7000ED3DA /* SirenViewController.swift */,
|
||||
55EC36491E6BB98A00726F13 /* Siren.h */,
|
||||
55EC364A1E6BB98A00726F13 /* Info.plist */,
|
||||
55EC365F1E6BB99B00726F13 /* Siren.swift */,
|
||||
55EC365E1E6BB99B00726F13 /* Siren.bundle */,
|
||||
8E171DD0215B26B4006FBBCC /* Extensions */,
|
||||
8E171DD5215B26B4006FBBCC /* Models */,
|
||||
8E171DD3215B26B4006FBBCC /* Protocols */,
|
||||
8E171DCC215B26B4006FBBCC /* Utilities */,
|
||||
8E171DD9215B26B4006FBBCC /* View Controllers */,
|
||||
);
|
||||
path = Siren;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8E1005DE1A5DD02300509B14 /* SirenExample */ = {
|
||||
8E171DCC215B26B4006FBBCC /* Utilities */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8EE6C7411E6A0AA500DBE454 /* AppDelegate.swift */,
|
||||
8E528A331E98AED300B643C4 /* Supporting Files */,
|
||||
8E171DE7215B27C2006FBBCC /* SirenConstants.swift */,
|
||||
8E171DCD215B26B4006FBBCC /* SirenError.swift */,
|
||||
8E171DCE215B26B4006FBBCC /* SirenLog.swift */,
|
||||
8E171DEB215B28EC006FBBCC /* SirenHelpers.swift */,
|
||||
);
|
||||
name = SirenExample;
|
||||
path = "Sample App";
|
||||
name = Utilities;
|
||||
path = ../../Sources/Utilities;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8E528A331E98AED300B643C4 /* Supporting Files */ = {
|
||||
8E171DD0215B26B4006FBBCC /* Extensions */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8EE6C7421E6A0AA500DBE454 /* ViewController.swift */,
|
||||
8EBDF8211E6A0C41006C87B4 /* LaunchScreen.xib */,
|
||||
8EBDF8231E6A0C41006C87B4 /* Main.storyboard */,
|
||||
8EE6C7461E6A0AB800DBE454 /* Images.xcassets */,
|
||||
8EE6C7471E6A0AB800DBE454 /* Info.plist */,
|
||||
8E171DD1215B26B4006FBBCC /* SirenBundleExtension.swift */,
|
||||
8E171DD2215B26B4006FBBCC /* SirenDateExtension.swift */,
|
||||
8E171DE5215B2701006FBBCC /* SirenLocalizationExtension.swift */,
|
||||
8E171DD8215B26B4006FBBCC /* SirenUIAlertControllerExtension.swift */,
|
||||
8E171DED215B2D09006FBBCC /* SirenUserDefaultsExtension.swift */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
name = Extensions;
|
||||
path = ../../Sources/Extensions;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8E171DD3215B26B4006FBBCC /* Protocols */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8E171DD4215B26B4006FBBCC /* SirenDelegate.swift */,
|
||||
);
|
||||
name = Protocols;
|
||||
path = ../../Sources/Protocols;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8E171DD5215B26B4006FBBCC /* Models */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8E171DD6215B26B4006FBBCC /* SirenAlertMessaging.swift */,
|
||||
8E171DD7215B26B4006FBBCC /* SirenLookupModel.swift */,
|
||||
);
|
||||
name = Models;
|
||||
path = ../../Sources/Models;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8E171DD9215B26B4006FBBCC /* View Controllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8E171DDA215B26B4006FBBCC /* SirenViewController.swift */,
|
||||
);
|
||||
name = "View Controllers";
|
||||
path = "../../Sources/View Controllers";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8E641D2420C8B44B00908555 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8EACA9651F37F2D3003134CA /* Example */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8EACA9661F37F2D3003134CA /* AppDelegate.swift */,
|
||||
8EACA96E1F37F2DD003134CA /* Supporting Files */,
|
||||
);
|
||||
path = Example;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8EACA96E1F37F2DD003134CA /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8EACA9671F37F2D3003134CA /* LaunchScreen.xib */,
|
||||
8EACA9691F37F2D3003134CA /* Main.storyboard */,
|
||||
8EACA96B1F37F2D3003134CA /* Images.xcassets */,
|
||||
8EACA96C1F37F2D3003134CA /* Info.plist */,
|
||||
8EACA96D1F37F2D3003134CA /* ViewController.swift */,
|
||||
55EC364A1E6BB98A00726F13 /* Info.plist */,
|
||||
);
|
||||
path = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8EC391781A58B465001C121E = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8E1005DE1A5DD02300509B14 /* SirenExample */,
|
||||
8EE6C74A1E6A0AE100DBE454 /* SirenExampleTests */,
|
||||
55EC36481E6BB98A00726F13 /* Siren */,
|
||||
8EACA9651F37F2D3003134CA /* Example */,
|
||||
8EE6C74A1E6A0AE100DBE454 /* Tests */,
|
||||
8EC391821A58B465001C121E /* Products */,
|
||||
8E641D2420C8B44B00908555 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8EC391821A58B465001C121E /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8EC391811A58B465001C121E /* SirenExample.app */,
|
||||
8E3A6C041D07CB6F00A8B7CF /* SirenExampleTests.xctest */,
|
||||
8EC391811A58B465001C121E /* Example.app */,
|
||||
8E3A6C041D07CB6F00A8B7CF /* Tests.xctest */,
|
||||
55EC36471E6BB98A00726F13 /* Siren.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8EE6C74A1E6A0AE100DBE454 /* SirenExampleTests */ = {
|
||||
8EE6C74A1E6A0AE100DBE454 /* Tests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8EE6C74B1E6A0AE100DBE454 /* Info.plist */,
|
||||
8EE6C74C1E6A0AE100DBE454 /* SirenTests.swift */,
|
||||
);
|
||||
path = SirenExampleTests;
|
||||
path = Tests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
@@ -207,9 +258,9 @@
|
||||
productReference = 55EC36471E6BB98A00726F13 /* Siren.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
8E3A6C031D07CB6F00A8B7CF /* SirenExampleTests */ = {
|
||||
8E3A6C031D07CB6F00A8B7CF /* Tests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 8E3A6C0D1D07CB6F00A8B7CF /* Build configuration list for PBXNativeTarget "SirenExampleTests" */;
|
||||
buildConfigurationList = 8E3A6C0D1D07CB6F00A8B7CF /* Build configuration list for PBXNativeTarget "Tests" */;
|
||||
buildPhases = (
|
||||
8E3A6C001D07CB6F00A8B7CF /* Sources */,
|
||||
8E3A6C011D07CB6F00A8B7CF /* Frameworks */,
|
||||
@@ -220,29 +271,27 @@
|
||||
dependencies = (
|
||||
8E3A6C0A1D07CB6F00A8B7CF /* PBXTargetDependency */,
|
||||
);
|
||||
name = SirenExampleTests;
|
||||
name = Tests;
|
||||
productName = SirenTests;
|
||||
productReference = 8E3A6C041D07CB6F00A8B7CF /* SirenExampleTests.xctest */;
|
||||
productReference = 8E3A6C041D07CB6F00A8B7CF /* Tests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
8EC391801A58B465001C121E /* SirenExample */ = {
|
||||
8EC391801A58B465001C121E /* Example */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "SirenExample" */;
|
||||
buildConfigurationList = 8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "Example" */;
|
||||
buildPhases = (
|
||||
8EC3917D1A58B465001C121E /* Sources */,
|
||||
8EC3917E1A58B465001C121E /* Frameworks */,
|
||||
8EE3A3F81E6A0E470010BDCE /* SwiftLint */,
|
||||
8EC3917F1A58B465001C121E /* Resources */,
|
||||
558455D81C6690B4004BE492 /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
55EC364D1E6BB98A00726F13 /* PBXTargetDependency */,
|
||||
);
|
||||
name = SirenExample;
|
||||
name = Example;
|
||||
productName = Siren;
|
||||
productReference = 8EC391811A58B465001C121E /* SirenExample.app */;
|
||||
productReference = 8EC391811A58B465001C121E /* Example.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
@@ -253,28 +302,39 @@
|
||||
attributes = {
|
||||
LastSwiftMigration = 0700;
|
||||
LastSwiftUpdateCheck = 0730;
|
||||
LastUpgradeCheck = 0820;
|
||||
LastUpgradeCheck = 0930;
|
||||
ORGANIZATIONNAME = "Sabintsev iOS Projects";
|
||||
TargetAttributes = {
|
||||
55EC36461E6BB98A00726F13 = {
|
||||
CreatedOnToolsVersion = 8.2.1;
|
||||
LastSwiftMigration = 0820;
|
||||
LastSwiftMigration = 0900;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
8E3A6C031D07CB6F00A8B7CF = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
LastSwiftMigration = 0800;
|
||||
LastSwiftMigration = 0900;
|
||||
TestTargetID = 8EC391801A58B465001C121E;
|
||||
};
|
||||
8EC391801A58B465001C121E = {
|
||||
CreatedOnToolsVersion = 6.1.1;
|
||||
DevelopmentTeam = HT94948NDD;
|
||||
DevelopmentTeamName = "Arthur Sabintsev";
|
||||
LastSwiftMigration = 0800;
|
||||
LastSwiftMigration = 0900;
|
||||
SystemCapabilities = {
|
||||
com.apple.BackgroundModes = {
|
||||
enabled = 0;
|
||||
};
|
||||
com.apple.InAppPurchase = {
|
||||
enabled = 0;
|
||||
};
|
||||
com.apple.Push = {
|
||||
enabled = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "SirenExample" */;
|
||||
buildConfigurationList = 8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "Example" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
@@ -287,8 +347,8 @@
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8EC391801A58B465001C121E /* SirenExample */,
|
||||
8E3A6C031D07CB6F00A8B7CF /* SirenExampleTests */,
|
||||
8EC391801A58B465001C121E /* Example */,
|
||||
8E3A6C031D07CB6F00A8B7CF /* Tests */,
|
||||
55EC36461E6BB98A00726F13 /* Siren */,
|
||||
);
|
||||
};
|
||||
@@ -314,9 +374,9 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8EBDF8261E6A0C41006C87B4 /* Main.storyboard in Resources */,
|
||||
8EBDF8251E6A0C41006C87B4 /* LaunchScreen.xib in Resources */,
|
||||
8EE6C7481E6A0AB800DBE454 /* Images.xcassets in Resources */,
|
||||
8EACA9711F380294003134CA /* LaunchScreen.xib in Resources */,
|
||||
8EACA9721F380294003134CA /* Main.storyboard in Resources */,
|
||||
8EACA9731F380294003134CA /* Images.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -344,13 +404,20 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8E528A321E989E0A00B643C4 /* SirenTestHelper.swift in Sources */,
|
||||
8E9C238F1E7CDDE7000ED3DA /* SirenViewController.swift in Sources */,
|
||||
8E171DE1215B26B4006FBBCC /* SirenAlertMessaging.swift in Sources */,
|
||||
8E171DEE215B2D09006FBBCC /* SirenUserDefaultsExtension.swift in Sources */,
|
||||
8E171DE2215B26B4006FBBCC /* SirenLookupModel.swift in Sources */,
|
||||
8ED73400215DBE4900447E3B /* SirenHelpers.swift in Sources */,
|
||||
55EC36611E6BB99B00726F13 /* Siren.swift in Sources */,
|
||||
8E43D6231E8223EE00ECFFC8 /* SirenDateExtension.swift in Sources */,
|
||||
8E9C238B1E7CDB42000ED3DA /* SirenBundleExtension.swift in Sources */,
|
||||
8E528A301E989A7A00B643C4 /* SirenDelegate.swift in Sources */,
|
||||
8E9C238D1E7CDD31000ED3DA /* SirenUIAlertControllerExtension.swift in Sources */,
|
||||
8ED733FC215DBE4900447E3B /* SirenDelegate.swift in Sources */,
|
||||
8ED733FF215DBE4900447E3B /* SirenLog.swift in Sources */,
|
||||
8E171DE4215B26B4006FBBCC /* SirenViewController.swift in Sources */,
|
||||
8E171DE6215B2701006FBBCC /* SirenLocalizationExtension.swift in Sources */,
|
||||
8E171DDE215B26B4006FBBCC /* SirenBundleExtension.swift in Sources */,
|
||||
8ED733FD215DBE4900447E3B /* SirenConstants.swift in Sources */,
|
||||
8E171DE3215B26B4006FBBCC /* SirenUIAlertControllerExtension.swift in Sources */,
|
||||
8ED733FE215DBE4900447E3B /* SirenError.swift in Sources */,
|
||||
8E171DDF215B26B4006FBBCC /* SirenDateExtension.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -366,39 +433,34 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8EE6C7431E6A0AA500DBE454 /* AppDelegate.swift in Sources */,
|
||||
8EE6C7441E6A0AA500DBE454 /* ViewController.swift in Sources */,
|
||||
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 */;
|
||||
target = 8EC391801A58B465001C121E /* Example */;
|
||||
targetProxy = 8E3A6C091D07CB6F00A8B7CF /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
8EBDF8211E6A0C41006C87B4 /* LaunchScreen.xib */ = {
|
||||
8EACA9671F37F2D3003134CA /* LaunchScreen.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8EBDF8221E6A0C41006C87B4 /* Base */,
|
||||
8EACA9681F37F2D3003134CA /* Base */,
|
||||
);
|
||||
name = LaunchScreen.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8EBDF8231E6A0C41006C87B4 /* Main.storyboard */ = {
|
||||
8EACA9691F37F2D3003134CA /* Main.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8EBDF8241E6A0C41006C87B4 /* Base */,
|
||||
8EACA96A1F37F2D3003134CA /* Base */,
|
||||
);
|
||||
name = Main.storyboard;
|
||||
sourceTree = "<group>";
|
||||
@@ -416,6 +478,7 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
@@ -423,12 +486,13 @@
|
||||
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.sabintsev.Siren;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.apple.AppStoreConnect;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
@@ -446,6 +510,7 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
@@ -453,11 +518,12 @@
|
||||
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.sabintsev.Siren;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.apple.AppStoreConnect;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
@@ -467,36 +533,40 @@
|
||||
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;
|
||||
INFOPLIST_FILE = Tests/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_VERSION = 3.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SirenExample.app/SirenExample";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.2;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Example.app/Example";
|
||||
};
|
||||
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;
|
||||
INFOPLIST_FILE = Tests/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_VERSION = 3.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SirenExample.app/SirenExample";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.2;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Example.app/Example";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
@@ -508,14 +578,22 @@
|
||||
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_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_IMPLICIT_RETAIN_SELF = 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;
|
||||
@@ -543,6 +621,7 @@
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -554,14 +633,22 @@
|
||||
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_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_IMPLICIT_RETAIN_SELF = 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;
|
||||
@@ -580,6 +667,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_VERSION = 4.2;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
@@ -587,29 +675,31 @@
|
||||
8EC391A11A58B466001C121E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
INFOPLIST_FILE = "$(SRCROOT)/SirenExample/Info.plist";
|
||||
DEVELOPMENT_TEAM = HT94948NDD;
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Siren/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_VERSION = 3.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.apple.AppStoreConnect;
|
||||
PRODUCT_NAME = Example;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
8EC391A21A58B466001C121E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
INFOPLIST_FILE = "$(SRCROOT)/SirenExample/Info.plist";
|
||||
DEVELOPMENT_TEAM = HT94948NDD;
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Siren/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;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.apple.AppStoreConnect;
|
||||
PRODUCT_NAME = Example;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
@@ -625,7 +715,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
8E3A6C0D1D07CB6F00A8B7CF /* Build configuration list for PBXNativeTarget "SirenExampleTests" */ = {
|
||||
8E3A6C0D1D07CB6F00A8B7CF /* Build configuration list for PBXNativeTarget "Tests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
8E3A6C0B1D07CB6F00A8B7CF /* Debug */,
|
||||
@@ -634,7 +724,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "SirenExample" */ = {
|
||||
8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "Example" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
8EC3919E1A58B466001C121E /* Debug */,
|
||||
@@ -643,7 +733,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "SirenExample" */ = {
|
||||
8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "Example" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
8EC391A11A58B466001C121E /* Debug */,
|
||||
+1
-1
@@ -2,6 +2,6 @@
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:/Users/Arthur/Documents/oss/siren/Sample App/SirenExample.xcodeproj">
|
||||
location = "self:/Users/Arthur/Documents/oss/siren/SirenExample/Example.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?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>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
+16
-16
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0820"
|
||||
LastUpgradeVersion = "0940"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -15,9 +15,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8EC391801A58B465001C121E"
|
||||
BuildableName = "SirenExample.app"
|
||||
BlueprintName = "SirenExample"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
BuildableName = "Example.app"
|
||||
BlueprintName = "Example"
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
@@ -33,9 +33,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8E3A6C031D07CB6F00A8B7CF"
|
||||
BuildableName = "SirenExampleTests.xctest"
|
||||
BlueprintName = "SirenExampleTests"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
BuildableName = "Tests.xctest"
|
||||
BlueprintName = "Tests"
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
@@ -43,9 +43,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8EC391801A58B465001C121E"
|
||||
BuildableName = "SirenExample.app"
|
||||
BlueprintName = "SirenExample"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
BuildableName = "Example.app"
|
||||
BlueprintName = "Example"
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
@@ -66,9 +66,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8EC391801A58B465001C121E"
|
||||
BuildableName = "SirenExample.app"
|
||||
BlueprintName = "SirenExample"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
BuildableName = "Example.app"
|
||||
BlueprintName = "Example"
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
@@ -85,9 +85,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8EC391801A58B465001C121E"
|
||||
BuildableName = "SirenExample.app"
|
||||
BlueprintName = "SirenExample"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
BuildableName = "Example.app"
|
||||
BlueprintName = "Example"
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0820"
|
||||
LastUpgradeVersion = "0930"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -17,7 +17,7 @@
|
||||
BlueprintIdentifier = "55EC36461E6BB98A00726F13"
|
||||
BuildableName = "Siren.framework"
|
||||
BlueprintName = "Siren"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
@@ -48,7 +48,7 @@
|
||||
BlueprintIdentifier = "55EC36461E6BB98A00726F13"
|
||||
BuildableName = "Siren.framework"
|
||||
BlueprintName = "Siren"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
@@ -66,7 +66,7 @@
|
||||
BlueprintIdentifier = "55EC36461E6BB98A00726F13"
|
||||
BuildableName = "Siren.framework"
|
||||
BlueprintName = "Siren"
|
||||
ReferencedContainer = "container:SirenExample.xcodeproj">
|
||||
ReferencedContainer = "container:Example.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
@@ -14,7 +14,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
|
||||
var window: UIWindow?
|
||||
|
||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
|
||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
|
||||
window?.makeKeyAndVisible()
|
||||
|
||||
setupSiren()
|
||||
@@ -34,19 +34,26 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
// 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: NSAttributedString(string: "New Fancy Title"),
|
||||
// updateMessage: NSAttributedString(string: "New message goes here!"),
|
||||
// updateButtonMessage: NSAttributedString(string: "Update Now, Plz!?"),
|
||||
// nextTimeButtonMessage: NSAttributedString(string: "OK, next time it is!"),
|
||||
// skipVersionButtonMessage: NSAttributedString(string: "Please don't push skip, please don't!"))
|
||||
|
||||
// Optional - Defaults to .Option
|
||||
// siren.alertType = .Option // or .Force, .Skip, .None
|
||||
// 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/Appendices/AppStoreTerritories.html
|
||||
// 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.
|
||||
@@ -54,13 +61,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
// 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
|
||||
|
||||
// Required
|
||||
siren.checkVersion(checkType: .immediately)
|
||||
// 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)
|
||||
Siren.shared.checkVersion(checkType: .daily)
|
||||
}
|
||||
|
||||
func applicationDidBecomeActive(_ application: UIApplication) {
|
||||
@@ -87,7 +94,7 @@ extension AppDelegate: SirenDelegate
|
||||
print(#function)
|
||||
}
|
||||
|
||||
func sirenDidFailVersionCheck(error: NSError) {
|
||||
func sirenDidFailVersionCheck(error: Error) {
|
||||
print(#function, error)
|
||||
}
|
||||
|
||||
@@ -95,8 +102,12 @@ extension AppDelegate: SirenDelegate
|
||||
print(#function, "Latest version of app is installed")
|
||||
}
|
||||
|
||||
func sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel: SirenLookupModel) {
|
||||
print(#function, "\(lookupModel)")
|
||||
}
|
||||
|
||||
// This delegate method is only hit when alertType is initialized to .none
|
||||
func sirenDidDetectNewVersionWithoutAlert(message: String) {
|
||||
print(#function, "\(message)")
|
||||
func sirenDidDetectNewVersionWithoutAlert(title: String, message: String, updateType: UpdateType) {
|
||||
print(#function, "\n\(title)\n\(message).\nRelease type: \(updateType.rawValue.capitalized)")
|
||||
}
|
||||
}
|
||||
+11
-6
@@ -1,21 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<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">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="vXZ-lx-hvc">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="ufC-wZ-h7g">
|
||||
<objects>
|
||||
<viewController id="vXZ-lx-hvc" customClass="ViewController" customModule="Sample_App" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="vXZ-lx-hvc" customClass="ViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<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"/>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
|
||||
+15
@@ -1,5 +1,15 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
@@ -29,6 +39,11 @@
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ios-marketing",
|
||||
"size" : "1024x1024",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.0</string>
|
||||
<string>0.0.9</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
@@ -15,10 +15,14 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<string>0.0.9</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -15,5 +15,3 @@ FOUNDATION_EXPORT double SirenVersionNumber;
|
||||
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>
|
||||
|
||||
|
||||
@@ -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.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
}
|
||||
|
||||
func testDoubleDigitVersionUpdate() {
|
||||
siren.testSetCurrentInstalledVersion(version: "1.0")
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
}
|
||||
|
||||
func testTripleDigitVersionUpdate() {
|
||||
siren.testSetCurrentInstalledVersion(version: "1.0.0")
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
}
|
||||
|
||||
func testQuadrupleDigitVersionUpdate() {
|
||||
siren.testSetCurrentInstalledVersion(version: "1.0.0")
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "2.0.0.0")
|
||||
XCTAssertTrue(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
|
||||
siren.testSetAppStoreVersion(version: "0.0.0.9")
|
||||
XCTAssertFalse(siren.isAppStoreVersionNewer())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 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")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
# A sample Gemfile
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "cocoapods", "1.2.0"
|
||||
gem "jazzy"
|
||||
gem "cocoapods"
|
||||
gem "jazzy", :git => "git@github.com:realm/jazzy.git"
|
||||
gem "rubygems-bundler"
|
||||
|
||||
+88
-66
@@ -1,92 +1,114 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
GIT
|
||||
remote: git@github.com:realm/jazzy.git
|
||||
revision: 6932e5efe0eb2b95df48881924f6c9bc8dd60594
|
||||
specs:
|
||||
CFPropertyList (2.3.5)
|
||||
activesupport (4.2.8)
|
||||
i18n (~> 0.7)
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
claide (1.0.1)
|
||||
cocoapods (1.2.0)
|
||||
activesupport (>= 4.0.2, < 5)
|
||||
claide (>= 1.0.1, < 2.0)
|
||||
cocoapods-core (= 1.2.0)
|
||||
cocoapods-deintegrate (>= 1.0.1, < 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.1.2, < 2.0)
|
||||
cocoapods-try (>= 1.1.0, < 2.0)
|
||||
colored (~> 1.2)
|
||||
escape (~> 0.0.4)
|
||||
fourflusher (~> 2.0.1)
|
||||
gh_inspector (~> 1.0)
|
||||
molinillo (~> 0.5.5)
|
||||
nap (~> 1.0)
|
||||
ruby-macho (~> 0.2.5)
|
||||
xcodeproj (>= 1.4.1, < 2.0)
|
||||
cocoapods-core (1.2.0)
|
||||
activesupport (>= 4.0.2, < 5)
|
||||
fuzzy_match (~> 2.0.4)
|
||||
nap (~> 1.0)
|
||||
cocoapods-deintegrate (1.0.1)
|
||||
cocoapods-downloader (1.1.3)
|
||||
cocoapods-plugins (1.0.0)
|
||||
nap
|
||||
cocoapods-search (1.0.0)
|
||||
cocoapods-stats (1.0.0)
|
||||
cocoapods-trunk (1.1.2)
|
||||
nap (>= 0.8, < 2.0)
|
||||
netrc (= 0.7.8)
|
||||
cocoapods-try (1.1.0)
|
||||
colored (1.2)
|
||||
colored2 (3.1.2)
|
||||
escape (0.0.4)
|
||||
fourflusher (2.0.1)
|
||||
fuzzy_match (2.0.4)
|
||||
gh_inspector (1.0.3)
|
||||
i18n (0.8.1)
|
||||
jazzy (0.7.5)
|
||||
jazzy (0.9.3)
|
||||
cocoapods (~> 1.0)
|
||||
mustache (~> 0.99)
|
||||
open4
|
||||
redcarpet (~> 3.2)
|
||||
rouge (~> 1.5)
|
||||
rouge (>= 2.0.6, < 4.0)
|
||||
sass (~> 3.4)
|
||||
sqlite3 (~> 1.3)
|
||||
xcinvoke (~> 0.3.0)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.0)
|
||||
activesupport (4.2.10)
|
||||
i18n (~> 0.7)
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
atomos (0.1.3)
|
||||
bundler-unload (1.0.2)
|
||||
claide (1.0.2)
|
||||
cocoapods (1.5.3)
|
||||
activesupport (>= 4.0.2, < 5)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
cocoapods-core (= 1.5.3)
|
||||
cocoapods-deintegrate (>= 1.0.2, < 2.0)
|
||||
cocoapods-downloader (>= 1.2.0, < 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.5)
|
||||
nap (~> 1.0)
|
||||
ruby-macho (~> 1.1)
|
||||
xcodeproj (>= 1.5.7, < 2.0)
|
||||
cocoapods-core (1.5.3)
|
||||
activesupport (>= 4.0.2, < 6)
|
||||
fuzzy_match (~> 2.0.4)
|
||||
nap (~> 1.0)
|
||||
cocoapods-deintegrate (1.0.2)
|
||||
cocoapods-downloader (1.2.1)
|
||||
cocoapods-plugins (1.0.0)
|
||||
nap
|
||||
cocoapods-search (1.0.0)
|
||||
cocoapods-stats (1.0.0)
|
||||
cocoapods-trunk (1.3.1)
|
||||
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)
|
||||
executable-hooks (1.5.0)
|
||||
ffi (1.9.25)
|
||||
fourflusher (2.0.1)
|
||||
fuzzy_match (2.0.4)
|
||||
gh_inspector (1.1.3)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
liferaft (0.0.6)
|
||||
minitest (5.10.1)
|
||||
molinillo (0.5.7)
|
||||
minitest (5.11.3)
|
||||
molinillo (0.6.6)
|
||||
mustache (0.99.8)
|
||||
nanaimo (0.2.3)
|
||||
nanaimo (0.2.6)
|
||||
nap (1.1.0)
|
||||
netrc (0.7.8)
|
||||
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 (1.11.1)
|
||||
ruby-macho (0.2.6)
|
||||
sass (3.4.23)
|
||||
rouge (3.2.1)
|
||||
ruby-macho (1.2.0)
|
||||
rubygems-bundler (1.4.5)
|
||||
bundler-unload (>= 1.0.2)
|
||||
executable-hooks (>= 1.5.0)
|
||||
sass (3.6.0)
|
||||
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.3)
|
||||
tzinfo (1.2.5)
|
||||
thread_safe (~> 0.1)
|
||||
xcinvoke (0.3.0)
|
||||
liferaft (~> 0.0.6)
|
||||
xcodeproj (1.4.4)
|
||||
CFPropertyList (~> 2.3.3)
|
||||
claide (>= 1.0.1, < 2.0)
|
||||
xcodeproj (1.6.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.2.3)
|
||||
nanaimo (~> 0.2.6)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
cocoapods (= 1.2.0)
|
||||
jazzy
|
||||
cocoapods
|
||||
jazzy!
|
||||
rubygems-bundler
|
||||
|
||||
BUNDLED WITH
|
||||
1.14.6
|
||||
1.16.5
|
||||
|
||||
@@ -2,7 +2,12 @@
|
||||
|
||||
### Notify users when a new version of your app is available and prompt them to upgrade.
|
||||
|
||||
[](https://dashboard.buddybuild.com/apps/58c4d0d85601d40100c5c51d/build/latest?branch=master) [](https://cocoapods.org/pods/Siren) [](https://github.com/Carthage/Carthage) [](https://swift.org/package-manager/) [](https://cocoapods.org/pods/Siren) [](https://cocoapods.org/pods/Siren)
|
||||
[](https://travis-ci.org/ArtSabintsev/Siren)
|
||||
|
||||
 
|
||||
|
||||
[](https://cocoapods.org/pods/Siren) [](https://github.com/Carthage/Carthage) [](https://swift.org/package-manager/)
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
@@ -17,6 +22,7 @@
|
||||
- [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)
|
||||
@@ -27,22 +33,22 @@
|
||||
|
||||
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 built to work with the [**Semantic Versioning**](https://semver.org/) system.
|
||||
- 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)
|
||||
- Siren is actively maintained by [**Arthur Sabintsev**](https://github.com/ArtSabintsev) and [**Aaron Brager**](https://twitter.com/getaaron)
|
||||
|
||||
### README Translations
|
||||
- [**简体中文**](README.zh_CN.md) (by [**Daniel Hu**](http://www.jianshu.com/u/d8bbc4831623))
|
||||
- [**简体中文**](README.zh_CN.md) (by [**Daniel Hu**](https://www.jianshu.com/u/d8bbc4831623))
|
||||
|
||||
## Features
|
||||
- [x] CocoaPods Support
|
||||
- [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] 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] 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.
|
||||
|
||||
@@ -57,63 +63,69 @@ If a new version is available, an alert can be presented to the user informing t
|
||||
|
||||
## Installation Instructions
|
||||
|
||||
| Swift Version | Branch Name | Will Continue to Receive Updates?
|
||||
| ------------- | ------------- | -------------
|
||||
| 4.2 | master | **Yes**
|
||||
| 4.1 | swift4.1 | No
|
||||
| 3.2 | swift3.2 | No
|
||||
| 3.1 | swift3.1 | No
|
||||
| 2.3 | swift2.3 | No
|
||||
|
||||
### CocoaPods
|
||||
For Swift 3 support:
|
||||
```ruby
|
||||
pod 'Siren'
|
||||
```
|
||||
|
||||
For Swift 2.3 support:
|
||||
```ruby
|
||||
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3'
|
||||
```
|
||||
|
||||
For Swift 2.2 support:
|
||||
```ruby
|
||||
pod 'Siren', '0.9.5'
|
||||
pod 'Siren' # Swift 4.2
|
||||
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift4.1' # Swift 4.1
|
||||
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift3.2' # Swift 3.2
|
||||
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift3.1' # Swift 3.1
|
||||
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3' # Swift 2.3
|
||||
```
|
||||
|
||||
### Carthage
|
||||
For Swift 3 support:
|
||||
|
||||
``` swift
|
||||
github "ArtSabintsev/Siren"
|
||||
```
|
||||
|
||||
For Swift 2.3 support:
|
||||
|
||||
``` swift
|
||||
github "ArtSabintsev/Siren" "swift2.3"
|
||||
```swift
|
||||
github "ArtSabintsev/Siren" // Swift 4.2
|
||||
github "ArtSabintsev/Siren", "swift4.1" // Swift 4.1
|
||||
github "ArtSabintsev/Siren", "swift3.2" // Swift 3.2
|
||||
github "ArtSabintsev/Siren", "swift3.1" // Swift 3.1
|
||||
github "ArtSabintsev/Siren", "swift2.3" // Swift 2.3
|
||||
```
|
||||
|
||||
### Swift Package Manager
|
||||
```swift
|
||||
.Package(url: "https://github.com/ArtSabintsev/Siren.git", majorVersion: 2)
|
||||
.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.
|
||||
For a full list of optional settings/preferences, please refer to https://github.com/ArtSabintsev/Siren/blob/master/Example/Example/AppDelegate.swift in the Sample Project.
|
||||
|
||||
```Swift
|
||||
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
|
||||
/* Siren code should go below window?.makeKeyAndVisible() */
|
||||
|
||||
// Siren is a singleton
|
||||
let siren = Siren.shared
|
||||
// Siren is a singleton
|
||||
let siren = Siren.shared
|
||||
|
||||
// Optional: Defaults to .option
|
||||
siren.alertType = <#Siren.AlertType_Enum_Value#>
|
||||
// Optional: Defaults to .option
|
||||
siren.alertType = <#Siren.AlertType_Enum_Value#>
|
||||
|
||||
// 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: 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: NSAttributedString(string: "New Fancy Title"),
|
||||
updateMessage: NSAttributedString(string: "New message goes here!"),
|
||||
updateButtonMessage: NSAttributedString(string: "Update Now, Plz!?"),
|
||||
nextTimeButtonMessage: NSAttributedString(string: "OK, next time it is!"),
|
||||
skipVersionButtonMessage: NSAttributedString(string: "Please don't push skip, please don't!"))
|
||||
|
||||
// Replace .immediately with .daily or .weekly to specify a maximum daily or weekly frequency for version checks.
|
||||
siren.checkVersion(checkType: .immediately)
|
||||
|
||||
// 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
|
||||
}
|
||||
@@ -122,7 +134,8 @@ 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(_:). */
|
||||
Place in applicationDidBecomeActive(_:).
|
||||
*/
|
||||
|
||||
Siren.shared.checkVersion(checkType: .daily)
|
||||
}
|
||||
@@ -155,9 +168,9 @@ func application(application: UIApplication, didFinishLaunchingWithOptions launc
|
||||
|
||||
extension AppDelegate: SirenDelegate {
|
||||
// Returns a localized message to this delegate method upon performing a successful version check
|
||||
func sirenDidDetectNewVersionWithoutAlert(message: String) {
|
||||
print("\(message)")
|
||||
}
|
||||
func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType) {
|
||||
print("\(message)")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -178,13 +191,39 @@ If you would like to set a different type of alert for revision, patch, minor, a
|
||||
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
|
||||
public protocol SirenDelegate: class {
|
||||
func sirenDidShowUpdateDialog(alertType: Siren.AlertType) // User presented with update dialog
|
||||
func sirenUserDidLaunchAppStore() // User did click on button that launched App Store.app
|
||||
func sirenUserDidSkipVersion() // User did click on button that skips version update
|
||||
func sirenUserDidCancel() // User did click on button that cancels update dialog
|
||||
func sirenDidFailVersionCheck(error: NSError) // Siren failed to perform version check (may return system-level error)
|
||||
func sirenDidDetectNewVersionWithoutAlert(message: String) // Siren performed version check and did not display alert
|
||||
public protocol SirenDelegate: NSObjectProtocol {
|
||||
/// Siren performed version check and did not display alert.
|
||||
func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType)
|
||||
|
||||
/// Siren failed to perform version check.
|
||||
///
|
||||
/// - Note:
|
||||
/// Depending on the reason for failure,
|
||||
/// a system-level error may be returned.
|
||||
func sirenDidFailVersionCheck(error: Error)
|
||||
|
||||
/// User presented with update dialog.
|
||||
func sirenDidShowUpdateDialog(alertType: Siren.AlertType)
|
||||
|
||||
/// Siren performed a version check and latest version is installed.
|
||||
func sirenLatestVersionInstalled()
|
||||
|
||||
/// Provides the decoded JSON information from a successful version check call.
|
||||
///
|
||||
/// - SeeAlso:
|
||||
/// SirenLookupModel.swift
|
||||
///
|
||||
/// - Parameter lookupModel: The `Decodable` model representing the JSON results from the iTunes Lookup API.
|
||||
func sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel: SirenLookupModel)
|
||||
|
||||
/// User did click on button that cancels update dialog.
|
||||
func sirenUserDidCancel()
|
||||
|
||||
/// User did click on button that launched "App Store.app".
|
||||
func sirenUserDidLaunchAppStore()
|
||||
|
||||
/// User did click on button that skips version update.
|
||||
func sirenUserDidSkipVersion()
|
||||
}
|
||||
```
|
||||
|
||||
@@ -194,6 +233,8 @@ Siren is localized for
|
||||
- Armenian
|
||||
- Basque
|
||||
- Chinese (Simplified and Traditional)
|
||||
- Croatian
|
||||
- Czech
|
||||
- Danish
|
||||
- Dutch
|
||||
- English
|
||||
@@ -212,15 +253,18 @@ Siren is localized for
|
||||
- Lithuanian
|
||||
- Malay
|
||||
- Norwegian (Bokmål)
|
||||
- Persian (Afghanistan, Iran, Persian)
|
||||
- Polish
|
||||
- Portuguese (Brazil and Portugal)
|
||||
- Russian
|
||||
- Serbian (Cyrillic and Latin)
|
||||
- Slovenian
|
||||
- Swedish
|
||||
- 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).
|
||||
@@ -231,24 +275,31 @@ You can enable it like so:
|
||||
Siren.shared.forceLanguageLocalization = Siren.LanguageType.<#Siren.LanguageType_Enum_Value#>
|
||||
```
|
||||
## 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.
|
||||
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 10 installed on their device, but the app update requires iOS 11, an alert will not be shown. This takes care of the *false positive* case regarding app updating.
|
||||
|
||||
## 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`.
|
||||
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 [App Store Connect](https://itunes.apple.com/app/id1234793120) app's bundleID: `com.apple.AppStoreConnect`.
|
||||
|
||||
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.
|
||||
|
||||
## 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 from the App Store, Siren will ignore the phased 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 release, 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`.
|
||||
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 1 day (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)
|
||||
- [**Harpy**](https://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)
|
||||
@@ -258,4 +309,4 @@ Occasionally, the iTunes JSON will update faster than the App Store CDN, meaning
|
||||
- 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)
|
||||
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) & [Aaron Brager](https://twitter.com/getaaron)
|
||||
|
||||
+5
-5
@@ -10,15 +10,15 @@
|
||||
|
||||
当 app 有更新时,Siren 会弹出提示框,用户可根据提示框提供的选项进行更新。或者您也可以根据 Siren 发出的消息来自定义通知用户的方式,比如您可以提供一个自定义的提示框。
|
||||
|
||||
- Siren 可配合 [**Semantic Versioning**](http://semver.org/) 系统使用
|
||||
- Siren 可配合 [**Semantic Versioning**](https://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) 进行维护。
|
||||
- Siren 当前处于活跃维护状态,由[**Arthur Sabintsev**](https://github.com/ArtSabintsev) 和 [**Aaron Brager**](https://twitter.com/getaaron) 进行维护。
|
||||
|
||||
|
||||
## Ports
|
||||
- [**Harpy**](http://github.com/ArtSabintsev/Harpy) 是 Objective-C 实现的版本更新检查库,Siren 是 Harpy 的 swift 版本。
|
||||
- [**Harpy**](https://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 相同的原理实现了版本更新检测。
|
||||
@@ -226,7 +226,7 @@ Siren.sharedInstance.forceLanguageLocalization = SirenLanguageType.<#SirenLangua
|
||||
因为商店里的可用版本总是比提交审核的版本老,所以苹果商店审核人员在审核时是**不会**弹出提示框的。
|
||||
|
||||
##创建维护人员
|
||||
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) & [Aaron Brager](http://twitter.com/getaaron)
|
||||
[Arthur Ariel Sabintsev](http://www.sabintsev.com/) & [Aaron Brager](https://twitter.com/getaaron)
|
||||
|
||||
## 翻译人员
|
||||
[Daniel Hu](http://www.jianshu.com/u/d8bbc4831623)
|
||||
[Daniel Hu](https://www.jianshu.com/u/d8bbc4831623)
|
||||
+12
-8
@@ -1,18 +1,22 @@
|
||||
Pod::Spec.new do |s|
|
||||
# Version
|
||||
s.version = "3.7.2"
|
||||
s.swift_version = '4.2'
|
||||
|
||||
# Meta
|
||||
s.name = "Siren"
|
||||
s.version = "2.0.2"
|
||||
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 user’s currently installed version of your iOS app against the version that is currently available in the App Store.
|
||||
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 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 => s.version.to_s }
|
||||
s.source_files = 'Sources/*.swift'
|
||||
s.source_files = 'Sources/**/*.swift'
|
||||
s.resources = 'Sources/Siren.bundle'
|
||||
s.requires_arc = true
|
||||
|
||||
|
||||
@@ -1,736 +0,0 @@
|
||||
//
|
||||
// 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(stringKey: "Update Available", forceLanguageLocalization: language), "التجديد متوفر")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "المرة التالية")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "تخطى عن هذه النسخة")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "تجديد")
|
||||
}
|
||||
|
||||
func testArmenianLocalization() {
|
||||
let language: Siren.LanguageType = .Armenian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Թարմացումը հասանելի Է")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Հաջորդ անգամ")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Բաց թողնել այս տարբերակը")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Թարմացնել")
|
||||
}
|
||||
|
||||
func testBasqueLocalization() {
|
||||
let language: Siren.LanguageType = .Basque
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Eguneratzea erabilgarri")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Hurrengo batean")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Bertsio honetatik jauzi egin")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Eguneratu")
|
||||
}
|
||||
|
||||
func testChineseSimplifiedLocalization() {
|
||||
let language: Siren.LanguageType = .ChineseSimplified
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "更新可用")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "下一次")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "跳过此版本")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "更新")
|
||||
}
|
||||
|
||||
func testChineseTraditionalLocalization() {
|
||||
let language: Siren.LanguageType = .ChineseTraditional
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "有更新可用")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "下次")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "跳過此版本")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "更新")
|
||||
}
|
||||
|
||||
func testCroatianLocalization() {
|
||||
let language: Siren.LanguageType = .Croatian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Nova ažuriranje je stigla")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Sljedeći put")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Preskoči ovu verziju")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Ažuriraj")
|
||||
}
|
||||
|
||||
func testDanishLocalization() {
|
||||
let language: Siren.LanguageType = .Danish
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Tilgængelig opdatering")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Næste gang")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Spring denne version over")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Opdater")
|
||||
}
|
||||
|
||||
func testDutchLocalization() {
|
||||
let language: Siren.LanguageType = .Dutch
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Update Beschikbaar")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Volgende keer")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Sla deze versie over")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Updaten")
|
||||
}
|
||||
|
||||
func testEstonianLocalization() {
|
||||
let language: Siren.LanguageType = .Estonian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Uuendus saadaval")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Järgmisel korral")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Jäta see version vahele")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Uuenda")
|
||||
}
|
||||
|
||||
func testFinnishLocalization() {
|
||||
let language: Siren.LanguageType = .Finnish
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Päivitys saatavilla")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Ensi kerralla")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Jätä tämä versio väliin")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Päivitys")
|
||||
}
|
||||
|
||||
func testFrenchLocalization() {
|
||||
let language: Siren.LanguageType = .French
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Mise à jour disponible")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "La prochaine fois")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Sauter cette version")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Mettre à jour")
|
||||
}
|
||||
|
||||
func testGermanLocalization() {
|
||||
let language: Siren.LanguageType = .German
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Update erhältlich")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Später")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Diese Version überspringen")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Update")
|
||||
}
|
||||
|
||||
func testGreekLocalization() {
|
||||
let language: Siren.LanguageType = .Greek
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Διαθέσιμη Ενημέρωση")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Άλλη φορά")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Αγνόησε αυτήν την έκδοση")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Αναβάθμιση")
|
||||
}
|
||||
|
||||
func testHebrewLocalization() {
|
||||
let language: Siren.LanguageType = .Hebrew
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "עדכון זמין")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "בפעם הבאה")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "דלג על גרסה זו")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "עדכן")
|
||||
}
|
||||
|
||||
func testHungarianLocalization() {
|
||||
let language: Siren.LanguageType = .Hungarian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Új frissítés érhető el")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Később")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Ennél a verziónál ne figyelmeztessen")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Frissítés")
|
||||
}
|
||||
|
||||
func testIndonesianLocalization() {
|
||||
let language: Siren.LanguageType = .Indonesian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Pembaruan Tersedia")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Lain kali")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Lewati versi ini")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Perbarui")
|
||||
}
|
||||
|
||||
func testItalianLocalization() {
|
||||
let language: Siren.LanguageType = .Italian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Aggiornamento disponibile")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "La prossima volta")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Salta questa versione")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Aggiorna")
|
||||
}
|
||||
|
||||
func testJapaneseLocalization() {
|
||||
let language: Siren.LanguageType = .Japanese
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "更新が利用可能")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "次回")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "このバージョンをスキップ")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "更新")
|
||||
}
|
||||
|
||||
func testKoreanLocalization() {
|
||||
let language: Siren.LanguageType = .Korean
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "업데이트 가능")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "다음에")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "이 버전 건너뜀")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "업데이트")
|
||||
}
|
||||
|
||||
func testLatvianLocalization() {
|
||||
let language: Siren.LanguageType = .Latvian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Atjauninājums pieejams")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Nākamreiz")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Izlaist šo versiju")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Atjaunināt")
|
||||
}
|
||||
|
||||
func testLithuanianLocalization() {
|
||||
let language: Siren.LanguageType = .Lithuanian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Atnaujinimas")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Kitą kartą")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Praleisti šią versiją")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Atnaujinti")
|
||||
}
|
||||
|
||||
func testMalayLocalization() {
|
||||
let language: Siren.LanguageType = .Malay
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Versi Terkini")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Lain kali")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Langkau versi ini")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Muat turun")
|
||||
}
|
||||
|
||||
func testNorwegianLocalization() {
|
||||
let language: Siren.LanguageType = .Norwegian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Oppdatering tilgjengelig")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Neste gang")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Hopp over denne versjonen")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Oppdater")
|
||||
}
|
||||
|
||||
func testPolishLocalization() {
|
||||
let language: Siren.LanguageType = .Polish
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Aktualizacja dostępna")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Następnym razem")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Pomiń wersję")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Zaktualizuj")
|
||||
}
|
||||
|
||||
func testPortugueseBrazilLocalization() {
|
||||
let language: Siren.LanguageType = .PortugueseBrazil
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Atualização disponível")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Próxima vez")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Ignorar esta versão")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Atualizar")
|
||||
}
|
||||
|
||||
func testPortuguesePortugalLocalization() {
|
||||
let language: Siren.LanguageType = .PortuguesePortugal
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Nova actualização disponível")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Próxima vez")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Ignorar esta versão")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Actualizar")
|
||||
}
|
||||
|
||||
func testRussianLocalization() {
|
||||
let language: Siren.LanguageType = .Russian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Доступно обновление")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "В следующий раз")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Пропустить эту версию")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Обновить")
|
||||
}
|
||||
|
||||
func testSerbianCyrillicLocalization() {
|
||||
let language: Siren.LanguageType = .SerbianCyrillic
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Ажурирање доступно")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Следећи пут")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Прескочи ову верзију")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Ажурирај")
|
||||
}
|
||||
|
||||
func testSerbianLatinLocalization() {
|
||||
let language: Siren.LanguageType = .SerbianLatin
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Ažuriranje dostupno")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Sledeći put")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Preskoči ovu verziju")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Ažuriraj")
|
||||
}
|
||||
|
||||
func testSlovenianLocalization() {
|
||||
let language: Siren.LanguageType = .Slovenian
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Posodobitev aplikacije")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Naslednjič")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Ne želim")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Namesti")
|
||||
}
|
||||
|
||||
func testSpanishLocalization() {
|
||||
let language: Siren.LanguageType = .Spanish
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Actualización disponible")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "La próxima vez")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Saltar esta versión")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Actualizar")
|
||||
}
|
||||
|
||||
func testSwedishLocalization() {
|
||||
let language: Siren.LanguageType = .Swedish
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Tillgänglig uppdatering")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Nästa gång")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Hoppa över den här versionen")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Uppdatera")
|
||||
}
|
||||
|
||||
func testThaiLocalization() {
|
||||
let language: Siren.LanguageType = .Thai
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "มีการอัพเดท")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "ไว้คราวหน้า")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "ข้ามเวอร์ชั่นนี้")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "อัพเดท")
|
||||
}
|
||||
|
||||
func testTurkishLocalization() {
|
||||
let language: Siren.LanguageType = .Turkish
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Güncelleme Mevcut")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Daha sonra")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Boşver")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Güncelle")
|
||||
}
|
||||
|
||||
func testVietnameseLocalization() {
|
||||
let language: Siren.LanguageType = .Vietnamese
|
||||
siren.forceLanguageLocalization = language
|
||||
|
||||
// Update Available
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update Available", forceLanguageLocalization: language), "Cập nhật mới")
|
||||
|
||||
// Next time
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Next time", forceLanguageLocalization: language), "Lần tới")
|
||||
|
||||
// Skip this version
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Skip this version", forceLanguageLocalization: language), "Bỏ qua phiên bản này")
|
||||
|
||||
// Update
|
||||
XCTAssertEqual(Bundle().testLocalizedString(stringKey: "Update", forceLanguageLocalization: language), "Cập nhật")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// SirenBundleExtension.swift
|
||||
// SirenExample
|
||||
//
|
||||
// Created by Arthur Sabintsev on 3/17/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Bundle Extension for Siren
|
||||
|
||||
extension Bundle {
|
||||
final class func bundleID() -> String? {
|
||||
return Bundle.main.bundleIdentifier
|
||||
}
|
||||
|
||||
final class func sirenBundlePath() -> String? {
|
||||
return Bundle(for: Siren.self).path(forResource: "Siren", ofType: "bundle")
|
||||
}
|
||||
|
||||
final class func sirenForcedBundlePath(forceLanguageLocalization: Siren.LanguageType) -> String? {
|
||||
guard let path = sirenBundlePath() else { return nil }
|
||||
let name = forceLanguageLocalization.rawValue
|
||||
|
||||
return Bundle(path: path)?.path(forResource: name, ofType: "lproj")
|
||||
}
|
||||
|
||||
final class func localizedString(forKey key: String, forceLanguageLocalization: Siren.LanguageType?) -> String? {
|
||||
guard var path = sirenBundlePath() else { return nil }
|
||||
let table = "SirenLocalizable"
|
||||
|
||||
if let forceLanguageLocalization = forceLanguageLocalization,
|
||||
let forcedPath = sirenForcedBundlePath(forceLanguageLocalization: forceLanguageLocalization) {
|
||||
path = forcedPath
|
||||
}
|
||||
|
||||
return Bundle(path: path)?.localizedString(forKey: key, value: key, table: table)
|
||||
}
|
||||
|
||||
final class func bestMatchingAppName() -> String {
|
||||
let bundleDisplayName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
|
||||
let bundleName = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
|
||||
|
||||
return bundleDisplayName ?? bundleName ?? ""
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Bundle Extension for Testing Siren
|
||||
|
||||
extension Bundle {
|
||||
func testLocalizedString(forKey key: String, forceLanguageLocalization: Siren.LanguageType?) -> String? {
|
||||
return Bundle.localizedString(forKey: key, forceLanguageLocalization: forceLanguageLocalization)
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,9 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
internal extension Date {
|
||||
// MARK: - Date Extension for Siren
|
||||
|
||||
extension Date {
|
||||
static func days(since date: Date) -> Int {
|
||||
let calendar = Calendar.current
|
||||
let components = calendar.dateComponents([.day], from: date, to: Date())
|
||||
@@ -17,6 +19,7 @@ internal extension Date {
|
||||
|
||||
static func days(since dateString: String) -> Int? {
|
||||
let dateformatter = DateFormatter()
|
||||
dateformatter.locale = Locale(identifier: "en_US_POSIX")
|
||||
dateformatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
|
||||
|
||||
guard let releaseDate = dateformatter.date(from: dateString) else {
|
||||
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// SirenLocalizationExtension.swift
|
||||
// Siren
|
||||
//
|
||||
// Created by Arthur Sabintsev on 9/25/18.
|
||||
// Copyright © 2018 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Helpers (Localization)
|
||||
|
||||
extension Siren {
|
||||
func localizedUpdateTitle() -> String {
|
||||
return Bundle.localizedString(forKey: alertMessaging.updateTitle.string, forceLanguageLocalization: forceLanguageLocalization)
|
||||
?? alertMessaging.updateTitle.string
|
||||
}
|
||||
|
||||
func localizedNewVersionMessage() -> String {
|
||||
let newVersionMessage = Bundle.localizedString(forKey: alertMessaging.updateMessage.string,
|
||||
forceLanguageLocalization: forceLanguageLocalization)
|
||||
?? alertMessaging.updateMessage.string
|
||||
|
||||
guard let currentAppStoreVersion = currentAppStoreVersion else {
|
||||
return String(format: newVersionMessage, appName, "Unknown")
|
||||
}
|
||||
|
||||
return String(format: newVersionMessage, appName, currentAppStoreVersion)
|
||||
}
|
||||
|
||||
func localizedUpdateButtonTitle() -> String? {
|
||||
return Bundle.localizedString(forKey: alertMessaging.updateButtonMessage.string,
|
||||
forceLanguageLocalization: forceLanguageLocalization)
|
||||
?? alertMessaging.updateButtonMessage.string
|
||||
}
|
||||
|
||||
func localizedNextTimeButtonTitle() -> String? {
|
||||
return Bundle.localizedString(forKey: alertMessaging.nextTimeButtonMessage.string,
|
||||
forceLanguageLocalization: forceLanguageLocalization)
|
||||
?? alertMessaging.nextTimeButtonMessage.string
|
||||
}
|
||||
|
||||
func localizedSkipButtonTitle() -> String? {
|
||||
return Bundle.localizedString(forKey: alertMessaging.skipVersionButtonMessage.string,
|
||||
forceLanguageLocalization: forceLanguageLocalization)
|
||||
?? alertMessaging.skipVersionButtonMessage.string
|
||||
}
|
||||
}
|
||||
+4
-3
@@ -7,18 +7,19 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
|
||||
// MARK: - UIAlertController Extension for Siren
|
||||
|
||||
internal extension UIAlertController {
|
||||
extension UIAlertController {
|
||||
func show() {
|
||||
let window = UIWindow(frame: UIScreen.main.bounds)
|
||||
window.rootViewController = SirenViewController()
|
||||
window.windowLevel = UIWindowLevelAlert + 1
|
||||
window.windowLevel = UIWindow.Level.alert + 1
|
||||
|
||||
Siren.shared.updaterWindow = window
|
||||
|
||||
window.makeKeyAndVisible()
|
||||
window.rootViewController!.present(self, animated: true, completion: nil)
|
||||
window.rootViewController?.present(self, animated: true, completion: nil)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// SirenUserDefaultsExtension.swift
|
||||
// Siren
|
||||
//
|
||||
// Created by Arthur Sabintsev on 9/25/18.
|
||||
// Copyright © 2018 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
/// Siren-specific UserDefaults Keys
|
||||
private enum SirenKeys: String {
|
||||
/// Key that notifies Siren to perform a version check and present
|
||||
/// the Siren alert the next time the user launches the app.
|
||||
case PerformVersionCheckOnSubsequentLaunch
|
||||
|
||||
/// Key that stores the timestamp of the last version check in UserDefaults.
|
||||
case StoredVersionCheckDate
|
||||
|
||||
/// Key that stores the version that a user decided to skip in UserDefaults.
|
||||
case StoredSkippedVersion
|
||||
}
|
||||
|
||||
// MARK: - UserDefaults Extension for Siren
|
||||
|
||||
extension UserDefaults {
|
||||
static var shouldPerformVersionCheckOnSubsequentLaunch: Bool {
|
||||
get {
|
||||
print(#function, standard.bool(forKey: SirenKeys.PerformVersionCheckOnSubsequentLaunch.rawValue))
|
||||
return standard.bool(forKey: SirenKeys.PerformVersionCheckOnSubsequentLaunch.rawValue)
|
||||
} set {
|
||||
standard.set(newValue, forKey: SirenKeys.PerformVersionCheckOnSubsequentLaunch.rawValue)
|
||||
}
|
||||
}
|
||||
|
||||
static var storedSkippedVersion: String? {
|
||||
get {
|
||||
return standard.string(forKey: SirenKeys.StoredSkippedVersion.rawValue)
|
||||
} set {
|
||||
standard.set(newValue, forKey: SirenKeys.StoredSkippedVersion.rawValue)
|
||||
}
|
||||
}
|
||||
|
||||
static var storedVersionCheckDate: Date? {
|
||||
get {
|
||||
return standard.object(forKey: SirenKeys.StoredVersionCheckDate.rawValue) as? Date
|
||||
} set {
|
||||
standard.set(newValue, forKey: SirenKeys.StoredVersionCheckDate.rawValue)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// SirenAlertMessaging.swift
|
||||
// Siren
|
||||
//
|
||||
// Created by Arthur Sabintsev on 12/6/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Siren Alert Messaging Customization
|
||||
|
||||
/// Allows the overriding of all the `UIAlertController` and `UIActionSheet` Strings to which Siren defaults.
|
||||
///
|
||||
/// - Warning: Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides.
|
||||
///
|
||||
/// As `SirenAlertMessaging` is a Struct, one _or_ more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.
|
||||
public struct SirenAlertMessaging {
|
||||
|
||||
/// The default constants used for the alert messaging.
|
||||
public struct Constants {
|
||||
|
||||
/// The button text that conveys the message that the user should be prompted to update next time the app launches.
|
||||
public static let nextTime = NSAttributedString(string: "Next time")
|
||||
|
||||
/// The text that conveys the message that the the user wants to skip this verison update.
|
||||
public static let skipVersion = NSAttributedString(string: "Skip this version")
|
||||
|
||||
/// The text that conveys the message that there is an app update available
|
||||
public static let updateMessage = NSAttributedString(string: "A new version of %@ is available. Please update to version %@ now.")
|
||||
|
||||
/// The alert title which defaults to *Update Available*.
|
||||
public static let updateTitle = NSAttributedString(string: "Update Available")
|
||||
|
||||
/// The button text that conveys the message that the user would like to update the app right away.
|
||||
public static let updateNow = NSAttributedString(string: "Update")
|
||||
}
|
||||
|
||||
let nextTimeButtonMessage: NSAttributedString
|
||||
let skipVersionButtonMessage: NSAttributedString
|
||||
let updateButtonMessage: NSAttributedString
|
||||
let updateMessage: NSAttributedString
|
||||
let updateTitle: NSAttributedString
|
||||
|
||||
/// The public initializer
|
||||
///
|
||||
/// - Parameters:
|
||||
/// - title: The title field of the `UIAlertController`.
|
||||
/// - message: The `message` field of the `UIAlertController`.
|
||||
/// - updateButtonMessage: The `title` field of the Update Button `UIAlertAction`.
|
||||
/// - nextTimeButtonMessage: The `title` field of the Next Time Button `UIAlertAction`.
|
||||
/// - skipVersionButtonMessage: The `title` field of the Skip Button `UIAlertAction`.
|
||||
public init(updateTitle title: NSAttributedString = Constants.updateTitle,
|
||||
updateMessage message: NSAttributedString = Constants.updateMessage,
|
||||
updateButtonMessage: NSAttributedString = Constants.updateNow,
|
||||
nextTimeButtonMessage: NSAttributedString = Constants.nextTime,
|
||||
skipVersionButtonMessage: NSAttributedString = Constants.skipVersion) {
|
||||
self.updateTitle = title
|
||||
self.nextTimeButtonMessage = nextTimeButtonMessage
|
||||
self.updateButtonMessage = updateButtonMessage
|
||||
self.updateMessage = message
|
||||
self.skipVersionButtonMessage = skipVersionButtonMessage
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// SirenLookupModel.swift
|
||||
// Siren
|
||||
//
|
||||
// Created by Arthur Sabintsev on 8/6/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Model representing a selection of results from the iTunes Lookup API
|
||||
|
||||
/// MARK: Siren extension used to parse and map the iTunes JSON results into a model represented in Swift.
|
||||
public struct SirenLookupModel: Decodable {
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case results
|
||||
}
|
||||
|
||||
/// The array of results objects from the iTunes Lookup API.
|
||||
public let results: [Results]
|
||||
|
||||
/// The Results object from the the iTunes Lookup API.
|
||||
public struct Results: Decodable {
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case appID = "trackId"
|
||||
case currentVersionReleaseDate
|
||||
case minimumOSVersion = "minimumOsVersion"
|
||||
case releaseNotes
|
||||
case version
|
||||
}
|
||||
|
||||
/// The app's App ID.
|
||||
public let appID: Int
|
||||
|
||||
/// The release date for the latest verison of the app.
|
||||
public let currentVersionReleaseDate: String
|
||||
|
||||
/// The minimum verison of iOS that the current verison of the app requires.
|
||||
public let minimumOSVersion: String
|
||||
|
||||
/// The releases notes from the latest version of the app.
|
||||
public let releaseNotes: String?
|
||||
|
||||
/// The latest version of the app.
|
||||
public let version: String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// SirenDelegate.swift
|
||||
// SirenExample
|
||||
//
|
||||
// Created by Arthur Sabintsev on 4/8/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
/// MARK - Siren UpdateType
|
||||
|
||||
/// `UpdateType` 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.
|
||||
///
|
||||
/// - major: Major release available: A.b.c.d
|
||||
/// - minor: Minor release available: a.B.c.d
|
||||
/// - patch: Patch release available: a.b.C.d
|
||||
/// - revision: Revision release available: a.b.c.D
|
||||
/// - unknown: No information available about the update.
|
||||
public enum UpdateType: String {
|
||||
/// Major release available: A.b.c.d
|
||||
case major
|
||||
/// Minor release available: a.B.c.d
|
||||
case minor
|
||||
/// Patch release available: a.b.C.d
|
||||
case patch
|
||||
/// Revision release available: a.b.c.D
|
||||
case revision
|
||||
/// No information available about the update.
|
||||
case unknown
|
||||
}
|
||||
|
||||
// MARK: - SirenDelegate Protocol
|
||||
|
||||
/// Delegate that handles all codepaths for Siren upon version check completion.
|
||||
public protocol SirenDelegate: NSObjectProtocol {
|
||||
/// Siren performed a version check and did not display an alert.
|
||||
func sirenDidDetectNewVersionWithoutAlert(title: String, message: String, updateType: UpdateType)
|
||||
|
||||
/// Siren failed to perform version check.
|
||||
///
|
||||
/// - Note:
|
||||
/// Depending on the reason for failure,
|
||||
/// a system-level error may be returned.
|
||||
func sirenDidFailVersionCheck(error: Error)
|
||||
|
||||
/// User presented with an update dialog.
|
||||
///
|
||||
/// - Parameter alertType: The type of alert that was presented.
|
||||
func sirenDidShowUpdateDialog(alertType: Siren.AlertType)
|
||||
|
||||
/// Siren performed a version check and the latest version was already installed.
|
||||
func sirenLatestVersionInstalled()
|
||||
|
||||
/// Provides the decoded JSON information from a successful version check call.
|
||||
///
|
||||
/// - Parameter lookupModel: The `Decodable` model representing the JSON results from the iTunes Lookup API.
|
||||
func sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel: SirenLookupModel)
|
||||
|
||||
/// User did click on button that cancels update dialog.
|
||||
func sirenUserDidCancel()
|
||||
|
||||
/// User did click on button that launched "App Store.app".
|
||||
func sirenUserDidLaunchAppStore()
|
||||
|
||||
/// User did click on button that skips version update.
|
||||
func sirenUserDidSkipVersion()
|
||||
}
|
||||
|
||||
// MARK: - SirenDelegate Protocol Extension
|
||||
|
||||
public extension SirenDelegate {
|
||||
func sirenDidDetectNewVersionWithoutAlert(title: String, message: String, updateType: UpdateType) {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
func sirenDidFailVersionCheck(error: Error) {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
func sirenDidShowUpdateDialog(alertType: Siren.AlertType) {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
func sirenLatestVersionInstalled() {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
func sirenUserDidCancel() {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
func sirenUserDidLaunchAppStore() {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
func sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel: SirenLookupModel) {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
func sirenUserDidSkipVersion() {
|
||||
printMessage()
|
||||
}
|
||||
|
||||
private func printMessage(_ function: String = #function) {
|
||||
SirenLog("The default implementation of \(function) is being called. You can ignore this message if you do not care to implement this method in your `SirenDelegate` conforming structure.")
|
||||
}
|
||||
}
|
||||
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
/* 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."="Uma nova versão do %@ está disponível. Por favor atualize para a versão %@ agora.";
|
||||
"A new version of %@ is available. Please update to version %@ now."="Uma nova versão do %@ está disponível. Por favor atualize para a versão %@.";
|
||||
|
||||
/* Update alert title */
|
||||
"Update Available"="Atualização disponível";
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+101
-338
@@ -10,7 +10,7 @@ import UIKit
|
||||
|
||||
// MARK: - Siren
|
||||
|
||||
/// The Siren Class. A singleton that is initialized using the shared() method.
|
||||
/// The Siren Class. A singleton that is initialized using the `shared` constant.
|
||||
public final class Siren: NSObject {
|
||||
|
||||
/// Current installed version of your app.
|
||||
@@ -30,16 +30,16 @@ public final class Siren: NSObject {
|
||||
/// - sirenUserDidCancel()
|
||||
///
|
||||
/// When a new version has been detected, and you would like to present a localized message in a custom UI. use this delegate method:
|
||||
/// - sirenDidDetectNewVersionWithoutAlert(message: String)
|
||||
/// - sirenDidDetectNewVersionWithoutAlert(title: String, message: String)
|
||||
public 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.
|
||||
/// When enabled, a stream of print() statements are logged to your console when a version check is performed.
|
||||
public lazy var debugEnabled = false
|
||||
|
||||
/// Determines the type of alert that should be shown.
|
||||
/// See the Siren.AlertType enum for full details.
|
||||
public var alertType = AlertType.option {
|
||||
public var alertType: AlertType = .option {
|
||||
didSet {
|
||||
majorUpdateAlertType = alertType
|
||||
minorUpdateAlertType = alertType
|
||||
@@ -51,26 +51,30 @@ public final class Siren: NSObject {
|
||||
/// 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.
|
||||
public lazy var majorUpdateAlertType = AlertType.option
|
||||
public lazy var majorUpdateAlertType: AlertType = .option
|
||||
|
||||
/// 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.
|
||||
public lazy var minorUpdateAlertType = AlertType.option
|
||||
public lazy var minorUpdateAlertType: AlertType = .option
|
||||
|
||||
/// 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.
|
||||
public lazy var patchUpdateAlertType = AlertType.option
|
||||
public lazy var patchUpdateAlertType: AlertType = .option
|
||||
|
||||
/// 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.
|
||||
public lazy var revisionUpdateAlertType = AlertType.option
|
||||
public lazy var revisionUpdateAlertType: AlertType = .option
|
||||
|
||||
/// The name of your app.
|
||||
/// By default, it's set to the name of the app that's stored in your plist.
|
||||
public lazy var appName: String = Bundle.main.bestMatchingAppName()
|
||||
public lazy var appName = Bundle.bestMatchingAppName()
|
||||
|
||||
/// Overrides all the Strings to which Siren defaults.
|
||||
/// Defaults to the values defined in `SirenAlertMessaging.Constants`
|
||||
public var alertMessaging = SirenAlertMessaging()
|
||||
|
||||
/// 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.
|
||||
@@ -84,26 +88,29 @@ public final class Siren: NSObject {
|
||||
/// Overrides the tint color for UIAlertController.
|
||||
public var alertControllerTintColor: UIColor?
|
||||
|
||||
/// When this is set, the alert will only show up if the current version has already been released for X days
|
||||
/// 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.
|
||||
public var showAlertAfterCurrentVersionHasBeenReleasedForDays: Int = 1
|
||||
|
||||
/// The current version of your app that is available for download on the App Store
|
||||
public internal(set) var currentAppStoreVersion: String?
|
||||
|
||||
internal var updaterWindow: UIWindow?
|
||||
/// The `UIWindow` instance that presents the `SirenAlertViewController`.
|
||||
var updaterWindow: UIWindow?
|
||||
|
||||
var lastVersionCheckPerformedOnDate: Date?
|
||||
|
||||
fileprivate var appID: Int?
|
||||
fileprivate var lastVersionCheckPerformedOnDate: Date?
|
||||
fileprivate lazy var alertViewIsVisible: Bool = false
|
||||
|
||||
/// Type of the available update
|
||||
fileprivate var updateType: UpdateType = .unknown
|
||||
|
||||
/// The App's Singleton
|
||||
public static let shared = Siren()
|
||||
|
||||
@available(*, deprecated: 1.2.0, unavailable, renamed: "shared")
|
||||
public static let sharedInstance = Siren()
|
||||
|
||||
override init() {
|
||||
lastVersionCheckPerformedOnDate = UserDefaults.standard.object(forKey: SirenDefaults.StoredVersionCheckDate.rawValue) as? Date
|
||||
lastVersionCheckPerformedOnDate = UserDefaults.storedVersionCheckDate
|
||||
}
|
||||
|
||||
/// Checks the currently installed version of your app against the App Store.
|
||||
@@ -113,13 +120,18 @@ public final class Siren: NSObject {
|
||||
/// - Parameters:
|
||||
/// - checkType: The frequency in days in which you want a check to be performed. Please refer to the Siren.VersionCheckType enum for more details.
|
||||
public func checkVersion(checkType: VersionCheckType) {
|
||||
guard let _ = Bundle.bundleID() else {
|
||||
printMessage(message: "Please make sure that you have set a `Bundle Identifier` in your project.")
|
||||
updateType = .unknown
|
||||
|
||||
guard Bundle.bundleID() != nil else {
|
||||
printMessage("Please make sure that you have set a `Bundle Identifier` in your project.")
|
||||
return
|
||||
}
|
||||
|
||||
if checkType == .immediately {
|
||||
performVersionCheck()
|
||||
} else if UserDefaults.shouldPerformVersionCheckOnSubsequentLaunch {
|
||||
UserDefaults.shouldPerformVersionCheckOnSubsequentLaunch = false
|
||||
performVersionCheck()
|
||||
} else {
|
||||
guard let lastVersionCheckPerformedOnDate = lastVersionCheckPerformedOnDate else {
|
||||
performVersionCheck()
|
||||
@@ -129,87 +141,88 @@ public final class Siren: NSObject {
|
||||
if Date.days(since: lastVersionCheckPerformedOnDate) >= checkType.rawValue {
|
||||
performVersionCheck()
|
||||
} else {
|
||||
postError(.recentlyCheckedAlready, underlyingError: nil)
|
||||
postError(.recentlyCheckedAlready)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Launches the AppStore in two situations:
|
||||
///
|
||||
/// - User clicked the `Update` button in the UIAlertController modal.
|
||||
/// - 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.
|
||||
public func launchAppStore() {
|
||||
guard let appID = appID,
|
||||
let url = URL(string: "https://itunes.apple.com/app/id\(appID)") else {
|
||||
return
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
if #available(iOS 10.0, *) {
|
||||
UIApplication.shared.open(url, options: [:], completionHandler: nil)
|
||||
} else {
|
||||
UIApplication.shared.openURL(url)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Helpers (Networking)
|
||||
// MARK: - Networking
|
||||
|
||||
private extension Siren {
|
||||
|
||||
func performVersionCheck() {
|
||||
do {
|
||||
let url = try iTunesURLFromString()
|
||||
let request = URLRequest(url: url, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 30)
|
||||
URLSession.shared.dataTask(with: request, completionHandler: { [unowned self] (data, response, error) in
|
||||
self.processResults(withData: data, response: response, error: error)
|
||||
URLSession.shared.dataTask(with: request, completionHandler: { [weak self] (data, response, error) in
|
||||
self?.processResults(withData: data, response: response, error: error)
|
||||
}).resume()
|
||||
} catch let error as NSError {
|
||||
postError(.malformedURL, underlyingError: error)
|
||||
} catch {
|
||||
postError(.malformedURL)
|
||||
}
|
||||
}
|
||||
|
||||
func processResults(withData data: Data?, response: URLResponse?, error: Error?) {
|
||||
if let error = error {
|
||||
postError(.appStoreDataRetrievalFailure, underlyingError: error)
|
||||
postError(.appStoreDataRetrievalFailure(underlyingError: error))
|
||||
} else {
|
||||
guard let data = data else {
|
||||
postError(.appStoreDataRetrievalFailure, underlyingError: nil)
|
||||
postError(.appStoreDataRetrievalFailure(underlyingError: nil))
|
||||
return
|
||||
}
|
||||
|
||||
do {
|
||||
let jsonData = try JSONSerialization.jsonObject(with: data, options: [])
|
||||
guard let appData = jsonData as? [String: Any],
|
||||
isUpdateCompatibleWithDeviceOS(appData: appData) else {
|
||||
postError(.appStoreJSONParsingFailure, underlyingError: nil)
|
||||
return
|
||||
let decodedData = try JSONDecoder().decode(SirenLookupModel.self, from: data)
|
||||
|
||||
guard !decodedData.results.isEmpty else {
|
||||
return postError(.appStoreDataRetrievalEmptyResults)
|
||||
}
|
||||
|
||||
DispatchQueue.main.async { [unowned self] in
|
||||
// Print iTunesLookup results from appData
|
||||
self.printMessage(message: "JSON results: \(appData)")
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
guard let self = self else { return }
|
||||
|
||||
// Process Results (e.g., extract current version that is available on the AppStore)
|
||||
self.processVersionCheck(with: appData)
|
||||
self.printMessage("Decoded JSON results: \(decodedData)")
|
||||
self.delegate?.sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel: decodedData)
|
||||
self.processVersionCheck(with: decodedData)
|
||||
}
|
||||
|
||||
} catch let error as NSError {
|
||||
postError(.appStoreDataRetrievalFailure, underlyingError: error)
|
||||
} catch {
|
||||
postError(.appStoreJSONParsingFailure(underlyingError: error))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func processVersionCheck(with payload: [String: Any]) {
|
||||
storeVersionCheckDate() // Store version comparison date
|
||||
|
||||
guard let results = payload[JSONKeys.results] as? [[String: Any]] else {
|
||||
postError(.appStoreVersionNumberFailure, underlyingError: nil)
|
||||
func processVersionCheck(with model: SirenLookupModel) {
|
||||
guard isUpdateCompatibleWithDeviceOS(for: model) else {
|
||||
return
|
||||
}
|
||||
|
||||
/// Condition satisfied when app not in App Store
|
||||
guard !results.isEmpty else {
|
||||
postError(.appStoreDataRetrievalFailure, underlyingError: nil)
|
||||
return
|
||||
}
|
||||
|
||||
guard let info = results.first else {
|
||||
postError(.appStoreDataRetrievalFailure, underlyingError: nil)
|
||||
return
|
||||
}
|
||||
|
||||
guard let appID = info[JSONKeys.appID] as? Int else {
|
||||
postError(.appStoreAppIDFailure, underlyingError: nil)
|
||||
guard let appID = model.results.first?.appID else {
|
||||
postError(.appStoreAppIDFailure)
|
||||
return
|
||||
}
|
||||
|
||||
self.appID = appID
|
||||
|
||||
guard let currentAppStoreVersion = info[JSONKeys.version] as? String else {
|
||||
postError(.appStoreVersionArrayFailure, underlyingError: nil)
|
||||
guard let currentAppStoreVersion = model.results.first?.version else {
|
||||
postError(.appStoreVersionArrayFailure)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -217,18 +230,18 @@ private extension Siren {
|
||||
|
||||
guard isAppStoreVersionNewer() else {
|
||||
delegate?.sirenLatestVersionInstalled()
|
||||
postError(.noUpdateAvailable, underlyingError: nil)
|
||||
postError(.noUpdateAvailable)
|
||||
return
|
||||
}
|
||||
|
||||
guard let currentVersionReleaseDate = info[JSONKeys.currentVersionReleaseDate] as? String,
|
||||
guard let currentVersionReleaseDate = model.results.first?.currentVersionReleaseDate,
|
||||
let daysSinceRelease = Date.days(since: currentVersionReleaseDate) else {
|
||||
return
|
||||
}
|
||||
|
||||
guard daysSinceRelease >= showAlertAfterCurrentVersionHasBeenReleasedForDays else {
|
||||
let message = "Your app has been released for \(daysSinceRelease) days, but Siren cannot prompt the user until \(showAlertAfterCurrentVersionHasBeenReleasedForDays) days have passed."
|
||||
self.printMessage(message: message)
|
||||
self.printMessage(message)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -251,20 +264,20 @@ private extension Siren {
|
||||
components.queryItems = items
|
||||
|
||||
guard let url = components.url, !url.absoluteString.isEmpty else {
|
||||
throw SirenError.malformedURL
|
||||
throw SirenError.Known.malformedURL
|
||||
}
|
||||
|
||||
return url
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Helpers (Alert)
|
||||
// MARK: - Alert
|
||||
|
||||
private extension Siren {
|
||||
func showAlertIfCurrentAppStoreVersionNotSkipped() {
|
||||
alertType = setAlertType()
|
||||
|
||||
guard let previouslySkippedVersion = UserDefaults.standard.object(forKey: SirenDefaults.StoredSkippedVersion.rawValue) as? String else {
|
||||
guard let previouslySkippedVersion = UserDefaults.storedSkippedVersion else {
|
||||
showAlert()
|
||||
return
|
||||
}
|
||||
@@ -275,7 +288,9 @@ private extension Siren {
|
||||
}
|
||||
|
||||
func showAlert() {
|
||||
let updateAvailableMessage = Bundle().localizedString(stringKey: "Update Available", forceLanguageLocalization: forceLanguageLocalization)
|
||||
storeVersionCheckDate()
|
||||
|
||||
let updateAvailableMessage = localizedUpdateTitle()
|
||||
let newVersionMessage = localizedNewVersionMessage()
|
||||
|
||||
let alertController = UIAlertController(title: updateAvailableMessage, message: newVersionMessage, preferredStyle: .alert)
|
||||
@@ -295,7 +310,8 @@ private extension Siren {
|
||||
alertController.addAction(updateAlertAction())
|
||||
alertController.addAction(skipAlertAction())
|
||||
case .none:
|
||||
delegate?.sirenDidDetectNewVersionWithoutAlert(message: newVersionMessage)
|
||||
let updateTitle = localizedUpdateTitle()
|
||||
delegate?.sirenDidDetectNewVersionWithoutAlert(title: updateTitle, message: newVersionMessage, updateType: updateType)
|
||||
}
|
||||
|
||||
if alertType != .none && !alertViewIsVisible {
|
||||
@@ -307,7 +323,9 @@ private extension Siren {
|
||||
|
||||
func updateAlertAction() -> UIAlertAction {
|
||||
let title = localizedUpdateButtonTitle()
|
||||
let action = UIAlertAction(title: title, style: .default) { [unowned self] _ in
|
||||
let action = UIAlertAction(title: title, style: .default) { [weak self] _ in
|
||||
guard let self = self else { return }
|
||||
|
||||
self.hideWindow()
|
||||
self.launchAppStore()
|
||||
self.delegate?.sirenUserDidLaunchAppStore()
|
||||
@@ -320,10 +338,13 @@ private extension Siren {
|
||||
|
||||
func nextTimeAlertAction() -> UIAlertAction {
|
||||
let title = localizedNextTimeButtonTitle()
|
||||
let action = UIAlertAction(title: title, style: .default) { [unowned self] _ in
|
||||
let action = UIAlertAction(title: title, style: .default) { [weak self] _ in
|
||||
guard let self = self else { return }
|
||||
|
||||
self.hideWindow()
|
||||
self.delegate?.sirenUserDidCancel()
|
||||
self.alertViewIsVisible = false
|
||||
UserDefaults.shouldPerformVersionCheckOnSubsequentLaunch = true
|
||||
return
|
||||
}
|
||||
|
||||
@@ -332,10 +353,11 @@ private extension Siren {
|
||||
|
||||
func skipAlertAction() -> UIAlertAction {
|
||||
let title = localizedSkipButtonTitle()
|
||||
let action = UIAlertAction(title: title, style: .default) { [unowned self] _ in
|
||||
let action = UIAlertAction(title: title, style: .default) { [weak self] _ in
|
||||
guard let self = self else { return }
|
||||
|
||||
if let currentAppStoreVersion = self.currentAppStoreVersion {
|
||||
UserDefaults.standard.set(currentAppStoreVersion, forKey: SirenDefaults.StoredSkippedVersion.rawValue)
|
||||
UserDefaults.storedSkippedVersion = currentAppStoreVersion
|
||||
UserDefaults.standard.synchronize()
|
||||
}
|
||||
|
||||
@@ -354,8 +376,8 @@ private extension Siren {
|
||||
return .option
|
||||
}
|
||||
|
||||
let oldVersion = (currentInstalledVersion).characters.split {$0 == "."}.map { String($0) }.map {Int($0) ?? 0}
|
||||
let newVersion = (currentAppStoreVersion).characters.split {$0 == "."}.map { String($0) }.map {Int($0) ?? 0}
|
||||
let oldVersion = (currentInstalledVersion).lazy.split {$0 == "."}.map { String($0) }.map {Int($0) ?? 0}
|
||||
let newVersion = (currentAppStoreVersion).lazy.split {$0 == "."}.map { String($0) }.map {Int($0) ?? 0}
|
||||
|
||||
guard let newVersionFirst = newVersion.first, let oldVersionFirst = oldVersion.first else {
|
||||
return alertType // Default value is .Option
|
||||
@@ -363,277 +385,18 @@ private extension Siren {
|
||||
|
||||
if newVersionFirst > oldVersionFirst { // A.b.c.d
|
||||
alertType = majorUpdateAlertType
|
||||
updateType = .major
|
||||
} else if newVersion.count > 1 && (oldVersion.count <= 1 || newVersion[1] > oldVersion[1]) { // a.B.c.d
|
||||
alertType = minorUpdateAlertType
|
||||
updateType = .minor
|
||||
} else if newVersion.count > 2 && (oldVersion.count <= 2 || newVersion[2] > oldVersion[2]) { // a.b.C.d
|
||||
alertType = patchUpdateAlertType
|
||||
updateType = .patch
|
||||
} else if newVersion.count > 3 && (oldVersion.count <= 3 || newVersion[3] > oldVersion[3]) { // a.b.c.D
|
||||
alertType = revisionUpdateAlertType
|
||||
updateType = .revision
|
||||
}
|
||||
|
||||
return alertType
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Helpers (Localization)
|
||||
|
||||
private extension Siren {
|
||||
func localizedNewVersionMessage() -> String {
|
||||
let newVersionMessageToLocalize = "A new version of %@ is available. Please update to version %@ now."
|
||||
let newVersionMessage = Bundle().localizedString(stringKey: newVersionMessageToLocalize, forceLanguageLocalization: forceLanguageLocalization)
|
||||
|
||||
guard let currentAppStoreVersion = currentAppStoreVersion else {
|
||||
return String(format: newVersionMessage, appName, "Unknown")
|
||||
}
|
||||
|
||||
return String(format: newVersionMessage, appName, currentAppStoreVersion)
|
||||
}
|
||||
|
||||
func localizedUpdateButtonTitle() -> String {
|
||||
return Bundle().localizedString(stringKey: "Update", forceLanguageLocalization: forceLanguageLocalization)
|
||||
}
|
||||
|
||||
func localizedNextTimeButtonTitle() -> String {
|
||||
return Bundle().localizedString(stringKey: "Next time", forceLanguageLocalization: forceLanguageLocalization)
|
||||
}
|
||||
|
||||
func localizedSkipButtonTitle() -> String {
|
||||
return Bundle().localizedString(stringKey: "Skip this version", forceLanguageLocalization: forceLanguageLocalization)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Helpers (Version)
|
||||
|
||||
extension Siren {
|
||||
func isAppStoreVersionNewer() -> Bool {
|
||||
var newVersionExists = false
|
||||
|
||||
if let currentInstalledVersion = currentInstalledVersion,
|
||||
let currentAppStoreVersion = currentAppStoreVersion,
|
||||
(currentInstalledVersion.compare(currentAppStoreVersion, options: .numeric) == .orderedAscending) {
|
||||
|
||||
newVersionExists = true
|
||||
}
|
||||
|
||||
return newVersionExists
|
||||
}
|
||||
|
||||
fileprivate func storeVersionCheckDate() {
|
||||
lastVersionCheckPerformedOnDate = Date()
|
||||
if let lastVersionCheckPerformedOnDate = lastVersionCheckPerformedOnDate {
|
||||
UserDefaults.standard.set(lastVersionCheckPerformedOnDate, forKey: SirenDefaults.StoredVersionCheckDate.rawValue)
|
||||
UserDefaults.standard.synchronize()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Helpers (Misc.)
|
||||
|
||||
private extension Siren {
|
||||
func isUpdateCompatibleWithDeviceOS(appData: [String: Any]) -> Bool {
|
||||
guard let results = appData[JSONKeys.results] as? [[String: Any]],
|
||||
let info = results.first,
|
||||
let requiredOSVersion = info[JSONKeys.minimumOSVersion] as? String else {
|
||||
postError(.appStoreOSVersionNumberFailure, underlyingError: nil)
|
||||
return false
|
||||
}
|
||||
|
||||
let systemVersion = UIDevice.current.systemVersion
|
||||
|
||||
guard systemVersion.compare(requiredOSVersion, options: .numeric) == .orderedDescending ||
|
||||
systemVersion.compare(requiredOSVersion, options: .numeric) == .orderedSame else {
|
||||
postError(.appStoreOSVersionUnsupported, underlyingError: nil)
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func hideWindow() {
|
||||
if let updaterWindow = updaterWindow {
|
||||
updaterWindow.isHidden = true
|
||||
self.updaterWindow = nil
|
||||
}
|
||||
}
|
||||
|
||||
func launchAppStore() {
|
||||
guard let appID = appID,
|
||||
let iTunesURL = URL(string: "https://itunes.apple.com/app/id\(appID)") else {
|
||||
return
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
UIApplication.shared.openURL(iTunesURL)
|
||||
}
|
||||
}
|
||||
|
||||
func printMessage(message: String) {
|
||||
if debugEnabled {
|
||||
print("[Siren] \(message)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Enumerated Types (Public)
|
||||
|
||||
public extension Siren {
|
||||
/// Determines the type of alert to present after a successful version check has been performed.
|
||||
enum AlertType {
|
||||
/// Forces user to update your app (1 button alert).
|
||||
case force
|
||||
|
||||
/// (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).
|
||||
case option
|
||||
|
||||
/// Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).
|
||||
case skip
|
||||
|
||||
/// Doesn't show the alert, but instead returns a localized message
|
||||
/// for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.
|
||||
case none
|
||||
}
|
||||
|
||||
/// Determines the frequency in which the the version check is performed and the user is prompted to update the app.
|
||||
///
|
||||
enum VersionCheckType: Int {
|
||||
/// Version check performed every time the app is launched.
|
||||
case immediately = 0
|
||||
|
||||
/// Version check performed once a day.
|
||||
case daily = 1
|
||||
|
||||
/// Version check performed once a week.
|
||||
case weekly = 7
|
||||
}
|
||||
|
||||
/// 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()
|
||||
enum LanguageType: String {
|
||||
case Arabic = "ar"
|
||||
case Armenian = "hy"
|
||||
case Basque = "eu"
|
||||
case ChineseSimplified = "zh-Hans"
|
||||
case ChineseTraditional = "zh-Hant"
|
||||
case Croatian = "hr"
|
||||
case Danish = "da"
|
||||
case Dutch = "nl"
|
||||
case English = "en"
|
||||
case Estonian = "et"
|
||||
case Finnish = "fi"
|
||||
case French = "fr"
|
||||
case German = "de"
|
||||
case Greek = "el"
|
||||
case Hebrew = "he"
|
||||
case Hungarian = "hu"
|
||||
case Indonesian = "id"
|
||||
case Italian = "it"
|
||||
case Japanese = "ja"
|
||||
case Korean = "ko"
|
||||
case Latvian = "lv"
|
||||
case Lithuanian = "lt"
|
||||
case Malay = "ms"
|
||||
case Norwegian = "nb-NO"
|
||||
case Polish = "pl"
|
||||
case PortugueseBrazil = "pt"
|
||||
case PortuguesePortugal = "pt-PT"
|
||||
case Russian = "ru"
|
||||
case SerbianCyrillic = "sr-Cyrl"
|
||||
case SerbianLatin = "sr-Latn"
|
||||
case Slovenian = "sl"
|
||||
case Spanish = "es"
|
||||
case Swedish = "sv"
|
||||
case Thai = "th"
|
||||
case Turkish = "tr"
|
||||
case Vietnamese = "vi"
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Enumerated Types (Private)
|
||||
|
||||
private extension Siren {
|
||||
/// Siren-specific Error Codes
|
||||
enum ErrorCode: Int {
|
||||
case malformedURL = 1000
|
||||
case recentlyCheckedAlready
|
||||
case noUpdateAvailable
|
||||
case appStoreDataRetrievalFailure
|
||||
case appStoreJSONParsingFailure
|
||||
case appStoreOSVersionNumberFailure
|
||||
case appStoreOSVersionUnsupported
|
||||
case appStoreVersionNumberFailure
|
||||
case appStoreVersionArrayFailure
|
||||
case appStoreAppIDFailure
|
||||
case appStoreReleaseDateFailure
|
||||
}
|
||||
|
||||
/// Siren-specific Throwable Errors
|
||||
enum SirenError: Error {
|
||||
case malformedURL
|
||||
case missingBundleIdOrAppId
|
||||
}
|
||||
|
||||
/// Siren-specific UserDefaults Keys
|
||||
enum SirenDefaults: String {
|
||||
/// Key that stores the timestamp of the last version check in UserDefaults
|
||||
case StoredVersionCheckDate
|
||||
|
||||
/// Key that stores the version that a user decided to skip in UserDefaults.
|
||||
case StoredSkippedVersion
|
||||
}
|
||||
|
||||
struct JSONKeys {
|
||||
static let appID = "trackId"
|
||||
static let currentVersionReleaseDate = "currentVersionReleaseDate"
|
||||
static let minimumOSVersion = "minimumOsVersion"
|
||||
static let results = "results"
|
||||
static let version = "version"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Error Handling
|
||||
|
||||
private extension Siren {
|
||||
func postError(_ code: ErrorCode, underlyingError: Error?) {
|
||||
let description: String
|
||||
|
||||
switch code {
|
||||
case .malformedURL:
|
||||
description = "The iTunes URL is malformed. Please leave an issue on http://github.com/ArtSabintsev/Siren with as many details as possible."
|
||||
case .recentlyCheckedAlready:
|
||||
description = "Not checking the version, because it already checked recently."
|
||||
case .noUpdateAvailable:
|
||||
description = "No new update available."
|
||||
case .appStoreDataRetrievalFailure:
|
||||
description = "Error retrieving App Store data as an error was returned."
|
||||
case .appStoreJSONParsingFailure:
|
||||
description = "Error parsing App Store JSON data."
|
||||
case .appStoreOSVersionNumberFailure:
|
||||
description = "Error retrieving iOS version number as there was no data returned."
|
||||
case .appStoreOSVersionUnsupported:
|
||||
description = "The version of iOS on the device is lower than that of the one required by the app verison update."
|
||||
case .appStoreVersionNumberFailure:
|
||||
description = "Error retrieving App Store version number as there was no data returned."
|
||||
case .appStoreVersionArrayFailure:
|
||||
description = "Error retrieving App Store verson number as the JSON does not contain a 'version' key."
|
||||
case .appStoreAppIDFailure:
|
||||
description = "Error retrieving trackId as the JSON does not contain a 'trackId' key."
|
||||
case .appStoreReleaseDateFailure:
|
||||
description = "Error retrieving trackId as the JSON does not contain a 'currentVersionReleaseDate' key."
|
||||
}
|
||||
|
||||
var userInfo: [String: Any] = [NSLocalizedDescriptionKey: description]
|
||||
|
||||
if let underlyingError = underlyingError {
|
||||
userInfo[NSUnderlyingErrorKey] = underlyingError
|
||||
}
|
||||
|
||||
let error = NSError(domain: SirenErrorDomain, code: code.rawValue, userInfo: userInfo)
|
||||
|
||||
delegate?.sirenDidFailVersionCheck(error: error)
|
||||
|
||||
printMessage(message: error.localizedDescription)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
//
|
||||
// SirenBundleExtension.swift
|
||||
// SirenExample
|
||||
//
|
||||
// Created by Arthur Sabintsev on 3/17/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Bundle Extension for Siren
|
||||
|
||||
internal extension Bundle {
|
||||
class func bundleID() -> String? {
|
||||
return Bundle.main.bundleIdentifier
|
||||
}
|
||||
|
||||
func sirenBundlePath() -> String {
|
||||
return Bundle(for: Siren.self).path(forResource: "Siren", ofType: "bundle") as String!
|
||||
}
|
||||
|
||||
func sirenForcedBundlePath(forceLanguageLocalization: Siren.LanguageType) -> String {
|
||||
let path = sirenBundlePath()
|
||||
let name = forceLanguageLocalization.rawValue
|
||||
return Bundle(path: path)!.path(forResource: name, ofType: "lproj")!
|
||||
}
|
||||
|
||||
func localizedString(stringKey: String, forceLanguageLocalization: Siren.LanguageType?) -> String {
|
||||
var path: String
|
||||
let table = "SirenLocalizable"
|
||||
if let forceLanguageLocalization = forceLanguageLocalization {
|
||||
path = sirenForcedBundlePath(forceLanguageLocalization: forceLanguageLocalization)
|
||||
} else {
|
||||
path = sirenBundlePath()
|
||||
}
|
||||
|
||||
return Bundle(path: path)!.localizedString(forKey: stringKey, value: stringKey, table: table)
|
||||
}
|
||||
|
||||
func bestMatchingAppName() -> String {
|
||||
let bundleDisplayName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
|
||||
let bundleName = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
|
||||
|
||||
return bundleDisplayName ?? bundleName ?? ""
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Bundle Extension for Testing Siren
|
||||
|
||||
extension Bundle {
|
||||
func testLocalizedString(stringKey: String, forceLanguageLocalization: Siren.LanguageType?) -> String {
|
||||
return Bundle().localizedString(stringKey: stringKey, forceLanguageLocalization: forceLanguageLocalization)
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
//
|
||||
// SirenDelegate.swift
|
||||
// SirenExample
|
||||
//
|
||||
// Created by Arthur Sabintsev on 4/8/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - SirenDelegate Protocol
|
||||
|
||||
/// Delegate that handles all codepaths for Siren upon version check completion.
|
||||
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: NSError)
|
||||
|
||||
/// Siren performed version check and did not display alert.
|
||||
func sirenDidDetectNewVersionWithoutAlert(message: String)
|
||||
|
||||
/// Siren performed version check and latest version is installed.
|
||||
func sirenLatestVersionInstalled()
|
||||
}
|
||||
|
||||
// MARK: - SirenDelegate Protocol Extension
|
||||
|
||||
public extension SirenDelegate {
|
||||
|
||||
func sirenDidShowUpdateDialog(alertType: Siren.AlertType) {
|
||||
assertionFailure("An attempt to reach \(#function) failed as it was called without being implemented.")
|
||||
}
|
||||
|
||||
func sirenUserDidLaunchAppStore() {
|
||||
assertionFailure("An attempt to reach \(#function) failed as it was called without being implemented.")
|
||||
}
|
||||
|
||||
func sirenUserDidSkipVersion() {
|
||||
assertionFailure("An attempt to reach \(#function) failed as it was called without being implemented.")
|
||||
}
|
||||
|
||||
func sirenUserDidCancel() {
|
||||
assertionFailure("An attempt to reach \(#function) failed as it was called without being implemented.")
|
||||
}
|
||||
|
||||
func sirenDidFailVersionCheck(error: NSError) {
|
||||
assertionFailure("An attempt to reach \(#function) failed as it was called without being implemented.")
|
||||
}
|
||||
|
||||
func sirenDidDetectNewVersionWithoutAlert(message: String) {
|
||||
assertionFailure("An attempt to reach \(#function) failed as it was called without being implemented.")
|
||||
}
|
||||
|
||||
func sirenLatestVersionInstalled() {
|
||||
assertionFailure("An attempt to reach \(#function) failed as it was called without being implemented.")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// SirenTestHelper.swift
|
||||
// SirenExample
|
||||
//
|
||||
// Created by Arthur Sabintsev on 4/8/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Helpers (Testing Target)
|
||||
|
||||
extension Siren {
|
||||
func testSetCurrentInstalledVersion(version: String) {
|
||||
currentInstalledVersion = version
|
||||
}
|
||||
|
||||
func testSetAppStoreVersion(version: String) {
|
||||
currentAppStoreVersion = version
|
||||
}
|
||||
|
||||
func testIsAppStoreVersionNewer() -> Bool {
|
||||
return isAppStoreVersionNewer()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
//
|
||||
// SirenConstants.swift
|
||||
// Siren
|
||||
//
|
||||
// Created by Arthur Sabintsev on 9/25/18.
|
||||
// Copyright © 2018 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Enumerated Types
|
||||
|
||||
// MARK: Siren extension dealing with enumerated types and constants.
|
||||
public extension Siren {
|
||||
/// Determines the type of alert to present after a successful version check has been performed.
|
||||
enum AlertType {
|
||||
/// Forces user to update your app (1 button alert).
|
||||
case force
|
||||
/// (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).
|
||||
case option
|
||||
/// Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).
|
||||
case skip
|
||||
/// Doesn't show the alert, but instead returns a localized message
|
||||
/// for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.
|
||||
case none
|
||||
}
|
||||
|
||||
/// Determines the frequency in which the the version check is performed and the user is prompted to update the app.
|
||||
///
|
||||
enum VersionCheckType: Int {
|
||||
/// Version check performed every time the app is launched.
|
||||
case immediately = 0
|
||||
/// Version check performed once a day.
|
||||
case daily = 1
|
||||
/// Version check performed once a week.
|
||||
case weekly = 7
|
||||
}
|
||||
|
||||
/// 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()
|
||||
enum LanguageType: String {
|
||||
/// Arabic
|
||||
case arabic = "ar"
|
||||
/// Armenian
|
||||
case armenian = "hy"
|
||||
/// Basque
|
||||
case basque = "eu"
|
||||
/// Simplified Chinese
|
||||
case chineseSimplified = "zh-Hans"
|
||||
/// Traditional Chinese
|
||||
case chineseTraditional = "zh-Hant"
|
||||
/// Croatian
|
||||
case croatian = "hr"
|
||||
/// Czech
|
||||
case czech = "cs"
|
||||
/// Danish
|
||||
case danish = "da"
|
||||
/// Dutch
|
||||
case dutch = "nl"
|
||||
/// English
|
||||
case english = "en"
|
||||
/// Estonian
|
||||
case estonian = "et"
|
||||
/// Finnish
|
||||
case finnish = "fi"
|
||||
/// French
|
||||
case french = "fr"
|
||||
/// German
|
||||
case german = "de"
|
||||
/// Greek
|
||||
case greek = "el"
|
||||
/// Hebrew
|
||||
case hebrew = "he"
|
||||
/// Hungarian
|
||||
case hungarian = "hu"
|
||||
/// Indonesian
|
||||
case indonesian = "id"
|
||||
/// Italian
|
||||
case italian = "it"
|
||||
/// Japanese
|
||||
case japanese = "ja"
|
||||
/// Korean
|
||||
case korean = "ko"
|
||||
/// Latvian
|
||||
case latvian = "lv"
|
||||
/// Lithuanian
|
||||
case lithuanian = "lt"
|
||||
/// Malaysian
|
||||
case malay = "ms"
|
||||
/// Norwegian
|
||||
case norwegian = "nb-NO"
|
||||
/// Persian
|
||||
case persian = "fa"
|
||||
/// Persian (Afghanistan)
|
||||
case persianAfghanistan = "fa-AF"
|
||||
/// Persian (Iran)
|
||||
case persianIran = "fa-IR"
|
||||
/// Polish
|
||||
case polish = "pl"
|
||||
/// Portuguese (Brazil)
|
||||
case portugueseBrazil = "pt"
|
||||
/// Portuguese (Portugal)
|
||||
case portuguesePortugal = "pt-PT"
|
||||
/// Russian
|
||||
case russian = "ru"
|
||||
/// Serbian (Cyrillic)
|
||||
case serbianCyrillic = "sr-Cyrl"
|
||||
/// Serbian (Latin)
|
||||
case serbianLatin = "sr-Latn"
|
||||
/// Slovenian
|
||||
case slovenian = "sl"
|
||||
/// Spanish
|
||||
case spanish = "es"
|
||||
/// Swedish
|
||||
case swedish = "sv"
|
||||
/// Thai
|
||||
case thai = "th"
|
||||
/// Turkish
|
||||
case turkish = "tr"
|
||||
/// Urdu
|
||||
case urdu = "ur"
|
||||
/// Ukranian
|
||||
case ukrainian = "uk"
|
||||
/// Vietnamese
|
||||
case vietnamese = "vi"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
//
|
||||
// SirenError.swift
|
||||
// Siren
|
||||
//
|
||||
// Created by Arthur Sabintsev on 8/6/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Siren Error Handling
|
||||
|
||||
/// Data structure used to build Siren specific Errors.
|
||||
public struct SirenError: LocalizedError {
|
||||
/// Enumerates all potentials errors that Siren can handle.
|
||||
///
|
||||
/// - appStoreAppIDFailure: Error retrieving trackId as the JSON does not contain a 'trackId' key.
|
||||
/// - appStoreDataRetrievalFailure: Error retrieving App Store data as an error was returned.
|
||||
/// - appStoreJSONParsingFailure: Error parsing App Store JSON data.
|
||||
/// - appStoreDataRetrievalEmptyResults: Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the `countryCode` variable to fix this error.
|
||||
/// - appStoreOSVersionNumberFailure: Error retrieving iOS version number as there was no data returned.
|
||||
/// - appStoreOSVersionUnsupported: The version of iOS on the device is lower than that of the one required by the app verison update.
|
||||
/// - appStoreVersionArrayFailure: Error retrieving App Store verson number as the JSON does not contain a 'version' key.
|
||||
/// - malformedURL: The iTunes URL is malformed. Please leave an issue on https://github.com/ArtSabintsev/Siren with as many details as possible.
|
||||
/// - noUpdateAvailable: No new update available.
|
||||
/// - recentlyCheckedAlready: Not checking the version, because it was already checked recently.
|
||||
public enum Known: Error {
|
||||
/// Error retrieving trackId as the JSON does not contain a 'trackId' key.
|
||||
case appStoreAppIDFailure
|
||||
/// Error retrieving App Store data as an error was returned.
|
||||
case appStoreDataRetrievalFailure(underlyingError: Error?)
|
||||
/// Error parsing App Store JSON data.
|
||||
case appStoreJSONParsingFailure(underlyingError: Error)
|
||||
/// Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the `countryCode` variable to fix this error.
|
||||
case appStoreDataRetrievalEmptyResults
|
||||
/// Error retrieving iOS version number as there was no data returned.
|
||||
case appStoreOSVersionNumberFailure
|
||||
/// The version of iOS on the device is lower than that of the one required by the app verison update.
|
||||
case appStoreOSVersionUnsupported
|
||||
/// Error retrieving App Store verson number as the JSON does not contain a 'version' key.
|
||||
case appStoreVersionArrayFailure
|
||||
/// The iTunes URL is malformed. Please leave an issue on https://github.com/ArtSabintsev/Siren with as many details as possible.
|
||||
case malformedURL
|
||||
/// No new update available.
|
||||
case noUpdateAvailable
|
||||
/// Not checking the version, because it was already checked recently.
|
||||
case recentlyCheckedAlready
|
||||
|
||||
/// The localized description for each error handled by Siren.
|
||||
var localizedDescription: String {
|
||||
switch self {
|
||||
case .appStoreAppIDFailure:
|
||||
return "Error retrieving trackId as the JSON does not contain a 'trackId' key."
|
||||
case .appStoreDataRetrievalFailure(let error?):
|
||||
return "Error retrieving App Store data as an error was returned\nAlso, the following system level error was returned: \(error)"
|
||||
case .appStoreDataRetrievalFailure(.none):
|
||||
return "Error retrieving App Store data as an error was returned."
|
||||
case .appStoreDataRetrievalEmptyResults:
|
||||
return "Error retrieving App Store data as the JSON results were empty. Is your app available in the US? If not, change the `countryCode` variable to fix this error."
|
||||
case .appStoreJSONParsingFailure(let error):
|
||||
return "Error parsing App Store JSON data.\nAlso, the following system level error was returned: \(error)"
|
||||
case .appStoreOSVersionNumberFailure:
|
||||
return "Error retrieving iOS version number as there was no data returned."
|
||||
case .appStoreOSVersionUnsupported:
|
||||
return "The version of iOS on the device is lower than that of the one required by the app verison update."
|
||||
case .appStoreVersionArrayFailure:
|
||||
return "Error retrieving App Store verson number as the JSON does not contain a 'version' key."
|
||||
case .malformedURL:
|
||||
return "The iTunes URL is malformed. Please leave an issue on https://github.com/ArtSabintsev/Siren with as many details as possible."
|
||||
case .noUpdateAvailable:
|
||||
return "No new update available."
|
||||
case .recentlyCheckedAlready:
|
||||
return "Not checking the version, because it was already checked recently."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Error Handling
|
||||
|
||||
extension Siren {
|
||||
func postError(_ error: SirenError.Known) {
|
||||
delegate?.sirenDidFailVersionCheck(error: error)
|
||||
printMessage(error.localizedDescription)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
//
|
||||
// SirenHelpers.swift
|
||||
// Siren
|
||||
//
|
||||
// Created by Arthur Sabintsev on 9/25/18.
|
||||
// Copyright © 2018 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Version
|
||||
|
||||
extension Siren {
|
||||
func isAppStoreVersionNewer() -> Bool {
|
||||
var newVersionExists = false
|
||||
|
||||
if let currentInstalledVersion = currentInstalledVersion,
|
||||
let currentAppStoreVersion = currentAppStoreVersion,
|
||||
(currentInstalledVersion.compare(currentAppStoreVersion, options: .numeric) == .orderedAscending) {
|
||||
|
||||
newVersionExists = true
|
||||
}
|
||||
|
||||
return newVersionExists
|
||||
}
|
||||
|
||||
func storeVersionCheckDate() {
|
||||
lastVersionCheckPerformedOnDate = Date()
|
||||
if let lastVersionCheckPerformedOnDate = lastVersionCheckPerformedOnDate {
|
||||
UserDefaults.storedVersionCheckDate = lastVersionCheckPerformedOnDate
|
||||
UserDefaults.standard.synchronize()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Miscellaneous
|
||||
|
||||
extension Siren {
|
||||
func isUpdateCompatibleWithDeviceOS(for model: SirenLookupModel) -> Bool {
|
||||
guard let requiredOSVersion = model.results.first?.minimumOSVersion else {
|
||||
postError(.appStoreOSVersionNumberFailure)
|
||||
return false
|
||||
}
|
||||
|
||||
let systemVersion = UIDevice.current.systemVersion
|
||||
|
||||
guard systemVersion.compare(requiredOSVersion, options: .numeric) == .orderedDescending ||
|
||||
systemVersion.compare(requiredOSVersion, options: .numeric) == .orderedSame else {
|
||||
postError(.appStoreOSVersionUnsupported)
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func hideWindow() {
|
||||
if let updaterWindow = updaterWindow {
|
||||
updaterWindow.isHidden = true
|
||||
self.updaterWindow = nil
|
||||
}
|
||||
}
|
||||
|
||||
/// Routes a console-bound message to the `SirenLog` struct, which decorates the log message.
|
||||
///
|
||||
/// - Parameter message: The message to decorate and log to the console.
|
||||
func printMessage(_ message: String) {
|
||||
if debugEnabled {
|
||||
SirenLog(message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Test Target
|
||||
|
||||
extension Siren {
|
||||
func testSetCurrentInstalledVersion(version: String) {
|
||||
currentInstalledVersion = version
|
||||
}
|
||||
|
||||
func testSetAppStoreVersion(version: String) {
|
||||
currentAppStoreVersion = version
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// SirenLog.swift
|
||||
// SirenExample
|
||||
//
|
||||
// Created by Arthur Sabintsev on 8/5/17.
|
||||
// Copyright © 2017 Sabintsev iOS Projects. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Log and decorate Siren-specific messages to the console.
|
||||
|
||||
struct SirenLog {
|
||||
@discardableResult
|
||||
init(_ message: String) {
|
||||
print("[Siren] \(message)")
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -7,9 +7,10 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
|
||||
// MARK: - UIViewController Extension for Siren
|
||||
|
||||
internal class SirenViewController: UIViewController {
|
||||
final class SirenViewController: UIViewController {
|
||||
override var preferredStatusBarStyle: UIStatusBarStyle { return UIApplication.shared.statusBarStyle }
|
||||
}
|
||||
Vendored
+39
-8
@@ -10,11 +10,11 @@
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Section/Classes" class="dashAnchor"></a>
|
||||
<a title="Classes Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -44,6 +44,14 @@
|
||||
</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">
|
||||
@@ -52,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -74,9 +105,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:C5Siren5Siren"></a>
|
||||
<a name="/c:@M@Siren@objc(cs)Siren"></a>
|
||||
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:C5Siren5Siren">Siren</a>
|
||||
<a class="token" href="#/c:@M@Siren@objc(cs)Siren">Siren</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -84,7 +115,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The Siren Class. A singleton that is initialized using the shared() method.</p>
|
||||
<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>
|
||||
@@ -92,7 +123,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -104,8 +135,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
+176
-74
@@ -14,8 +14,7 @@
|
||||
<a title="Siren Class Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,11 +91,11 @@
|
||||
<h1>Siren</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><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>
|
||||
<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 shared() method.</p>
|
||||
<p>The Siren Class. A singleton that is initialized using the <code>shared</code> constant.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
@@ -74,9 +104,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren16SirenErrorDomainSS"></a>
|
||||
<a name="/s:5SirenAAC0A11ErrorDomainSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/SirenErrorDomain" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren16SirenErrorDomainSS">SirenErrorDomain</a>
|
||||
<a class="token" href="#/s:5SirenAAC0A11ErrorDomainSSvp">SirenErrorDomain</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -91,7 +121,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">SirenErrorDomain</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -101,9 +131,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__"></a>
|
||||
<a name="/s:5SirenAAC8delegateAA0A8Delegate_pSgXwvp"></a>
|
||||
<a name="//apple_ref/swift/Property/delegate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__">delegate</a>
|
||||
<a class="token" href="#/s:5SirenAAC8delegateAA0A8Delegate_pSgXwvp">delegate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -113,21 +143,27 @@
|
||||
<div class="abstract">
|
||||
<p>The SirenDelegate variable, which should be set if you’d like to be notified:</p>
|
||||
|
||||
<p>When a user views or interacts with the alert
|
||||
- sirenDidShowUpdateDialog(alertType: AlertType)
|
||||
- sirenUserDidLaunchAppStore()
|
||||
- sirenUserDidSkipVersion()
|
||||
- sirenUserDidCancel()</p>
|
||||
<p>When a user views or interacts with the alert</p>
|
||||
|
||||
<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:
|
||||
- sirenDidDetectNewVersionWithoutAlert(message: String)</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(title: String, message: String)</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -137,9 +173,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren12debugEnabledSb"></a>
|
||||
<a name="/s:5SirenAAC12debugEnabledSbvp"></a>
|
||||
<a name="//apple_ref/swift/Property/debugEnabled" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren12debugEnabledSb">debugEnabled</a>
|
||||
<a class="token" href="#/s:5SirenAAC12debugEnabledSbvp">debugEnabled</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -148,14 +184,14 @@
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>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.</p>
|
||||
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"><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>
|
||||
<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="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -165,9 +201,9 @@ When enabled, a stream of println() statements are logged to your console when a
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren9alertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC9alertTypeAB05AlertC0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/alertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren9alertTypeOS0_9AlertType">alertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC9alertTypeAB05AlertC0Ovp">alertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -183,7 +219,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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">Siren</span><span class="o">.</span><span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -193,9 +229,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/majorUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType">majorUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ovp">majorUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -212,7 +248,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">majorUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -222,9 +258,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/minorUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType">minorUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ovp">minorUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -241,7 +277,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">minorUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -251,9 +287,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/patchUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType">patchUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ovp">patchUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -270,7 +306,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">patchUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -280,9 +316,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/revisionUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType">revisionUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ovp">revisionUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -299,7 +335,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">revisionUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -309,9 +345,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren7appNameSS"></a>
|
||||
<a name="/s:5SirenAAC7appNameSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/appName" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren7appNameSS">appName</a>
|
||||
<a class="token" href="#/s:5SirenAAC7appNameSSvp">appName</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -327,7 +363,7 @@ By default, it’s set to the name of the app that’s stored in your pl
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">appName</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt">Bundle</span><span class="o">.</span><span class="n">main</span><span class="o">.</span><span class="nf">bestMatchingAppName</span><span class="p">()</span></code></pre>
|
||||
<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="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -337,9 +373,37 @@ By default, it’s set to the name of the app that’s stored in your pl
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren11countryCodeGSqSS_"></a>
|
||||
<a name="/s:5SirenAAC14alertMessagingAA0a5AlertC0Vvp"></a>
|
||||
<a name="//apple_ref/swift/Property/alertMessaging" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5SirenAAC14alertMessagingAA0a5AlertC0Vvp">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="p">:</span> <span class="kt"><a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a></span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5SirenAAC11countryCodeSSSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/countryCode" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren11countryCodeGSqSS_">countryCode</a>
|
||||
<a class="token" href="#/s:5SirenAAC11countryCodeSSSgvp">countryCode</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -356,7 +420,7 @@ If your app is not available in the US App Store, set it to the identifier of at
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -366,9 +430,9 @@ If your app is not available in the US App Store, set it to the identifier of at
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_"></a>
|
||||
<a name="/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/forceLanguageLocalization" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_">forceLanguageLocalization</a>
|
||||
<a class="token" href="#/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgvp">forceLanguageLocalization</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -384,7 +448,7 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -394,9 +458,9 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_"></a>
|
||||
<a name="/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/alertControllerTintColor" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_">alertControllerTintColor</a>
|
||||
<a class="token" href="#/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgvp">alertControllerTintColor</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -411,7 +475,7 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -421,9 +485,9 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi"></a>
|
||||
<a name="/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSivp"></a>
|
||||
<a name="//apple_ref/swift/Property/showAlertAfterCurrentVersionHasBeenReleasedForDays" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi">showAlertAfterCurrentVersionHasBeenReleasedForDays</a>
|
||||
<a class="token" href="#/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSivp">showAlertAfterCurrentVersionHasBeenReleasedForDays</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -431,7 +495,7 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<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
|
||||
<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>
|
||||
@@ -439,7 +503,7 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -449,9 +513,9 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_"></a>
|
||||
<a name="/s:5SirenAAC22currentAppStoreVersionSSSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/currentAppStoreVersion" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_">currentAppStoreVersion</a>
|
||||
<a class="token" href="#/s:5SirenAAC22currentAppStoreVersionSSSgvp">currentAppStoreVersion</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -466,7 +530,7 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -476,9 +540,9 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:ZvC5Siren5Siren6sharedS0_"></a>
|
||||
<a name="/s:5SirenAAC6sharedABvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/shared" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:ZvC5Siren5Siren6sharedS0_">shared</a>
|
||||
<a class="token" href="#/s:5SirenAAC6sharedABvpZ">shared</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -493,7 +557,7 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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="p">:</span> <span class="kt">Siren</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -503,9 +567,9 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_"></a>
|
||||
<a name="/s:5SirenAAC12checkVersion0B4TypeyAB0c5CheckD0O_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/checkVersion(checkType:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_">checkVersion(checkType:)</a>
|
||||
<a class="token" href="#/s:5SirenAAC12checkVersion0B4TypeyAB0c5CheckD0O_tF">checkVersion(checkType:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -515,14 +579,14 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<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:vC5Siren5Siren11countryCodeGSqSS_">countryCode</a></code> property before calling this method. Please refer to the countryCode property for more information.</p>
|
||||
you should set the <code><a href="../Classes/Siren.html#/s:5SirenAAC11countryCodeSSSgvp">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"><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>
|
||||
<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>
|
||||
@@ -539,7 +603,6 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<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>
|
||||
@@ -549,16 +612,55 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
</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">
|
||||
<div class="task-name-container">
|
||||
<a name="/Siren%20extension%20dealing%20with%20enumerated%20types%20and%20constants."></a>
|
||||
<a name="//apple_ref/swift/Section/Siren extension dealing with enumerated types and constants." class="dashAnchor"></a>
|
||||
<a href="#/Siren%20extension%20dealing%20with%20enumerated%20types%20and%20constants.">
|
||||
<h3 class="section-name">Siren extension dealing with enumerated types and constants.</h3>
|
||||
</a>
|
||||
</div>
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:OC5Siren5Siren9AlertType"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO"></a>
|
||||
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:OC5Siren5Siren9AlertType">AlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO">AlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -574,7 +676,7 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -584,9 +686,9 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:OC5Siren5Siren16VersionCheckType"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO"></a>
|
||||
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:OC5Siren5Siren16VersionCheckType">VersionCheckType</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO">VersionCheckType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -602,7 +704,7 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
|
||||
<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>
|
||||
@@ -612,9 +714,9 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:OC5Siren5Siren12LanguageType"></a>
|
||||
<a name="/s:5SirenAAC12LanguageTypeO"></a>
|
||||
<a name="//apple_ref/swift/Enum/LanguageType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:OC5Siren5Siren12LanguageType">LanguageType</a>
|
||||
<a class="token" href="#/s:5SirenAAC12LanguageTypeO">LanguageType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -633,7 +735,7 @@ by setting the forceLanguageLocalization property before calling checkVersion()<
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">LanguageType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
<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>
|
||||
@@ -645,8 +747,8 @@ by setting the forceLanguageLocalization property before calling checkVersion()<
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>AlertType Enum Reference</title>
|
||||
<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'>
|
||||
@@ -11,18 +11,17 @@
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
|
||||
<a title="AlertType Enum Reference"></a>
|
||||
<a title="AlertType Enumeration Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../../img/carat.png" />
|
||||
AlertType Enum Reference
|
||||
AlertType Enumeration Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,7 +91,7 @@
|
||||
<h1>AlertType</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -74,9 +104,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO5forceyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/force" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_">force</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO5forceyA2DmF">force</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -91,23 +121,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">force</span></code></pre>
|
||||
<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:FOC5Siren5Siren9AlertType6optionFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO6optionyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/option" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType6optionFMS1_S1_">option</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO6optionyA2DmF">option</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -122,23 +148,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">option</span></code></pre>
|
||||
<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:FOC5Siren5Siren9AlertType4skipFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO4skipyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/skip" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType4skipFMS1_S1_">skip</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO4skipyA2DmF">skip</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -153,23 +175,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">skip</span></code></pre>
|
||||
<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:FOC5Siren5Siren9AlertType4noneFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO4noneyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/none" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType4noneFMS1_S1_">none</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO4noneyA2DmF">none</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -177,7 +195,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Doesn’t show the alert, but instead returns a localized message
|
||||
<p>Doesn’t show the alert, but instead returns a localized message
|
||||
for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.</p>
|
||||
|
||||
</div>
|
||||
@@ -185,7 +203,7 @@ for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegat
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="k">none</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="k">case</span> <span class="k">none</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,8 +215,8 @@ for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegat
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>VersionCheckType Enum Reference</title>
|
||||
<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'>
|
||||
@@ -11,18 +11,17 @@
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
|
||||
<a title="VersionCheckType Enum Reference"></a>
|
||||
<a title="VersionCheckType Enumeration Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../../img/carat.png" />
|
||||
VersionCheckType Enum Reference
|
||||
VersionCheckType Enumeration Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,7 +91,7 @@
|
||||
<h1>VersionCheckType</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
|
||||
<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>
|
||||
@@ -74,9 +104,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO11immediatelyyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/immediately" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_">immediately</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO11immediatelyyA2DmF">immediately</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -91,23 +121,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">immediately</span> <span class="o">=</span> <span class="mi">0</span></code></pre>
|
||||
<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:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO5dailyyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/daily" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_">daily</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO5dailyyA2DmF">daily</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -122,23 +148,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">daily</span> <span class="o">=</span> <span class="mi">1</span></code></pre>
|
||||
<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:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO6weeklyyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/weekly" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_">weekly</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO6weeklyyA2DmF">weekly</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -153,7 +175,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">weekly</span> <span class="o">=</span> <span class="mi">7</span></code></pre>
|
||||
<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>
|
||||
@@ -165,8 +187,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
Vendored
+149
@@ -0,0 +1,149 @@
|
||||
<!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 name="//apple_ref/swift/Section/Enumerations" class="dashAnchor"></a>
|
||||
<a title="Enumerations Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,262 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</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:5Siren10UpdateTypeO5majoryA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/major" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO5majoryA2CmF">major</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Major release available: A.b.c.d</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">major</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO5minoryA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/minor" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO5minoryA2CmF">minor</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Minor release available: a.B.c.d</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">minor</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO5patchyA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/patch" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO5patchyA2CmF">patch</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Patch release available: a.b.C.d</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">patch</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO8revisionyA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/revision" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO8revisionyA2CmF">revision</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Revision release available: a.b.c.D</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">revision</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO7unknownyA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/unknown" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO7unknownyA2CmF">unknown</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>No information available about the update.</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">unknown</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
Vendored
+38
-7
@@ -10,11 +10,11 @@
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Section/Protocols" class="dashAnchor"></a>
|
||||
<a title="Protocols Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -44,6 +44,14 @@
|
||||
</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">
|
||||
@@ -52,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -74,9 +105,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:P5Siren13SirenDelegate"></a>
|
||||
<a name="/s:5Siren0A8DelegateP"></a>
|
||||
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:P5Siren13SirenDelegate">SirenDelegate</a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP">SirenDelegate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -92,7 +123,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kd">class</span></code></pre>
|
||||
<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>
|
||||
@@ -104,8 +135,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
<a title="SirenDelegate Protocol Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,7 +91,7 @@
|
||||
<h1>SirenDelegate</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kd">class</span></code></pre>
|
||||
<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>
|
||||
@@ -74,9 +104,83 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_"></a>
|
||||
<a name="/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlert5title7message10updateTypeySS_SSAA06UpdateM0OtF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidDetectNewVersionWithoutAlert(title:message:updateType:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlert5title7message10updateTypeySS_SSAA06UpdateM0OtF">sirenDidDetectNewVersionWithoutAlert(title: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 a version check and did not display an 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">title</span><span class="p">:</span> <span class="kt">String</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:5Siren0A8DelegateP24sirenDidFailVersionCheck5errorys5Error_p_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidFailVersionCheck(error:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidFailVersionCheck5errorys5Error_p_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.</p>
|
||||
<div class="aside aside-note">
|
||||
<p class="aside-title">Note</p>
|
||||
Depending on the reason for failure,
|
||||
a system-level error may be returned.
|
||||
|
||||
</div>
|
||||
|
||||
</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:5Siren0A8DelegateP24sirenDidShowUpdateDialog9alertTypeyA2AC05AlertI0O_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidShowUpdateDialog(alertType:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_">sirenDidShowUpdateDialog(alertType:)</a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidShowUpdateDialog9alertTypeyA2AC05AlertI0O_tF">sirenDidShowUpdateDialog(alertType:)</a>
|
||||
</code>
|
||||
<span class="declaration-note">
|
||||
Default implementation
|
||||
@@ -87,7 +191,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>User presented with update dialog.</p>
|
||||
<p>User presented with an update dialog.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -98,19 +202,38 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
<div>
|
||||
<h4>Parameters</h4>
|
||||
<table class="graybox">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<code>
|
||||
<em>alertType</em>
|
||||
</code>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<p>The type of alert that was presented.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenUserDidLaunchAppStore()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_">sirenUserDidLaunchAppStore()</a>
|
||||
<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
|
||||
@@ -121,7 +244,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>User did click on button that launched App Store.app.</p>
|
||||
<p>Siren performed a version check and the latest version was already installed.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -132,7 +255,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -142,9 +265,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenUserDidSkipVersion()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_">sirenUserDidSkipVersion()</a>
|
||||
<a name="/s:5Siren0A8DelegateP50sirenNetworkCallDidReturnWithNewVersionInformation11lookupModelyAA0a6LookupM0V_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP50sirenNetworkCallDidReturnWithNewVersionInformation11lookupModelyAA0a6LookupM0V_tF">sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel:)</a>
|
||||
</code>
|
||||
<span class="declaration-note">
|
||||
Default implementation
|
||||
@@ -155,7 +278,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>User did click on button that skips version update.</p>
|
||||
<p>Provides the decoded JSON information from a successful version check call.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -166,19 +289,38 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenNetworkCallDidReturnWithNewVersionInformation</span><span class="p">(</span><span class="nv">lookupModel</span><span class="p">:</span> <span class="kt"><a href="../Structs/SirenLookupModel.html">SirenLookupModel</a></span><span class="p">)</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Parameters</h4>
|
||||
<table class="graybox">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<code>
|
||||
<em>lookupModel</em>
|
||||
</code>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<p>The <code>Decodable</code> model representing the JSON results from the iTunes Lookup API.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_"></a>
|
||||
<a name="/s:5Siren0A8DelegateP18sirenUserDidCancelyyF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenUserDidCancel()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_">sirenUserDidCancel()</a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP18sirenUserDidCancelyyF">sirenUserDidCancel()</a>
|
||||
</code>
|
||||
<span class="declaration-note">
|
||||
Default implementation
|
||||
@@ -200,7 +342,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -210,9 +352,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidFailVersionCheck(error:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_">sirenDidFailVersionCheck(error:)</a>
|
||||
<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
|
||||
@@ -223,7 +365,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Siren failed to perform version check (may return system-level error).</p>
|
||||
<p>User did click on button that launched <q>App Store.app</q>.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -234,7 +376,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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">NSError</span><span class="p">)</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -244,9 +386,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidDetectNewVersionWithoutAlert(message:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_">sirenDidDetectNewVersionWithoutAlert(message:)</a>
|
||||
<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
|
||||
@@ -257,7 +399,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Siren performed version check and did not display alert.</p>
|
||||
<p>User did click on button that skips version update.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -268,41 +410,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenLatestVersionInstalled()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_">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"><code><span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -314,8 +422,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
Vendored
+230
@@ -0,0 +1,230 @@
|
||||
<!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 name="//apple_ref/swift/Section/Structures" class="dashAnchor"></a>
|
||||
<a title="Structures Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</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%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 <code>SirenAlertMessaging</code> 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>
|
||||
<div class="task-group">
|
||||
<div class="task-name-container">
|
||||
<a name="/Model%20representing%20a%20selection%20of%20results%20from%20the%20iTunes%20Lookup%20API"></a>
|
||||
<a name="//apple_ref/swift/Section/Model representing a selection of results from the iTunes Lookup API" class="dashAnchor"></a>
|
||||
<a href="#/Model%20representing%20a%20selection%20of%20results%20from%20the%20iTunes%20Lookup%20API">
|
||||
<h3 class="section-name">Model representing a selection of results from the iTunes Lookup API</h3>
|
||||
</a>
|
||||
</div>
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV"></a>
|
||||
<a name="//apple_ref/swift/Struct/SirenLookupModel" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV">SirenLookupModel</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 extension used to parse and map the iTunes JSON results into a model represented in Swift.</p>
|
||||
|
||||
<a href="Structs/SirenLookupModel.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">SirenLookupModel</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<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">
|
||||
<p>Data structure used to build Siren specific Errors.</p>
|
||||
|
||||
<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>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,249 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</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 <code>SirenAlertMessaging</code> 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">
|
||||
<p>The default constants used for the alert messaging.</p>
|
||||
|
||||
<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:5Siren0A14AlertMessagingV11updateTitle0D7Message0d6ButtonF008nextTimegF0011skipVersiongF0ACSo18NSAttributedStringC_A4Jtcfc"></a>
|
||||
<a name="//apple_ref/swift/Method/init(updateTitle:updateMessage:updateButtonMessage:nextTimeButtonMessage:skipVersionButtonMessage:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV11updateTitle0D7Message0d6ButtonF008nextTimegF0011skipVersiongF0ACSo18NSAttributedStringC_A4Jtcfc">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">NSAttributedString</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">NSAttributedString</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">NSAttributedString</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">NSAttributedString</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">NSAttributedString</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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,251 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</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>
|
||||
<p>The default constants used for the alert messaging.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/nextTime" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSo18NSAttributedStringCvpZ">nextTime</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The button text that conveys the message that the user should be prompted to update next time the app launches.</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">nextTime</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/skipVersion" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSo18NSAttributedStringCvpZ">skipVersion</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The text that conveys the message that the the user wants to skip this verison update.</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">skipVersion</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/updateMessage" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSo18NSAttributedStringCvpZ">updateMessage</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The text that conveys the message that there is an app update 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="kd">static</span> <span class="k">let</span> <span class="nv">updateMessage</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/updateTitle" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSo18NSAttributedStringCvpZ">updateTitle</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The alert title which defaults to <em>Update Available</em>.</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">updateTitle</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/updateNow" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSo18NSAttributedStringCvpZ">updateNow</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The button text that conveys the message that the user would like to update the app right away.</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">updateNow</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,157 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</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>
|
||||
<p>Data structure used to build Siren specific Errors.</p>
|
||||
|
||||
</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">
|
||||
<p>Enumerates all potentials errors that Siren can handle.</p>
|
||||
|
||||
<ul>
|
||||
<li>appStoreAppIDFailure: Error retrieving trackId as the JSON does not contain a ‘trackId’ key.</li>
|
||||
<li>appStoreDataRetrievalFailure: Error retrieving App Store data as an error was returned.</li>
|
||||
<li>appStoreJSONParsingFailure: Error parsing App Store JSON data.</li>
|
||||
<li>appStoreDataRetrievalEmptyResults: Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the <code>countryCode</code> variable to fix this error.</li>
|
||||
<li>appStoreOSVersionNumberFailure: Error retrieving iOS version number as there was no data returned.</li>
|
||||
<li>appStoreOSVersionUnsupported: The version of iOS on the device is lower than that of the one required by the app verison update.</li>
|
||||
<li>appStoreVersionArrayFailure: Error retrieving App Store verson number as the JSON does not contain a ‘version’ key.</li>
|
||||
<li>malformedURL: The iTunes URL is malformed. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</li>
|
||||
<li>noUpdateAvailable: No new update available.</li>
|
||||
<li>recentlyCheckedAlready: Not checking the version, because it was already checked recently.</li>
|
||||
</ul>
|
||||
|
||||
<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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,399 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</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>
|
||||
<p>Enumerates all potentials errors that Siren can handle.</p>
|
||||
|
||||
<ul>
|
||||
<li>appStoreAppIDFailure: Error retrieving trackId as the JSON does not contain a ‘trackId’ key.</li>
|
||||
<li>appStoreDataRetrievalFailure: Error retrieving App Store data as an error was returned.</li>
|
||||
<li>appStoreJSONParsingFailure: Error parsing App Store JSON data.</li>
|
||||
<li>appStoreDataRetrievalEmptyResults: Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the <code>countryCode</code> variable to fix this error.</li>
|
||||
<li>appStoreOSVersionNumberFailure: Error retrieving iOS version number as there was no data returned.</li>
|
||||
<li>appStoreOSVersionUnsupported: The version of iOS on the device is lower than that of the one required by the app verison update.</li>
|
||||
<li>appStoreVersionArrayFailure: Error retrieving App Store verson number as the JSON does not contain a ‘version’ key.</li>
|
||||
<li>malformedURL: The iTunes URL is malformed. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</li>
|
||||
<li>noUpdateAvailable: No new update available.</li>
|
||||
<li>recentlyCheckedAlready: Not checking the version, because it was already checked recently.</li>
|
||||
</ul>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreAppIDFailure" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureyA2EmF">appStoreAppIDFailure</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving trackId as the JSON does not contain a ‘trackId’ key.</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">appStoreAppIDFailure</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureyAEs0B0_pSg_tcAEmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreDataRetrievalFailure(underlyingError:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureyAEs0B0_pSg_tcAEmF">appStoreDataRetrievalFailure(underlyingError:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving App Store data as an error was returned.</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="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>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureyAEs0B0_p_tcAEmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreJSONParsingFailure(underlyingError:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureyAEs0B0_p_tcAEmF">appStoreJSONParsingFailure(underlyingError:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error parsing App Store JSON data.</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="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>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO33appStoreDataRetrievalEmptyResultsyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreDataRetrievalEmptyResults" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO33appStoreDataRetrievalEmptyResultsyA2EmF">appStoreDataRetrievalEmptyResults</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the <code>countryCode</code> variable to fix this error.</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">appStoreDataRetrievalEmptyResults</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreOSVersionNumberFailure" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureyA2EmF">appStoreOSVersionNumberFailure</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving iOS version number as there was no data returned.</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">appStoreOSVersionNumberFailure</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreOSVersionUnsupported" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedyA2EmF">appStoreOSVersionUnsupported</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The version of iOS on the device is lower than that of the one required by the app verison update.</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">appStoreOSVersionUnsupported</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreVersionArrayFailure" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureyA2EmF">appStoreVersionArrayFailure</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving App Store verson number as the JSON does not contain a ‘version’ key.</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">appStoreVersionArrayFailure</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO12malformedURLyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/malformedURL" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO12malformedURLyA2EmF">malformedURL</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The iTunes URL is malformed. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</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">malformedURL</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/noUpdateAvailable" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableyA2EmF">noUpdateAvailable</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>No new update 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="k">case</span> <span class="n">noUpdateAvailable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/recentlyCheckedAlready" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyyA2EmF">recentlyCheckedAlready</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Not checking the version, because it was already checked recently.</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">recentlyCheckedAlready</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>SirenLookupModel 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/SirenLookupModel" class="dashAnchor"></a>
|
||||
<a title="SirenLookupModel Structure Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../img/carat.png" />
|
||||
SirenLookupModel 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>SirenLookupModel</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">SirenLookupModel</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<p>MARK: Siren extension used to parse and map the iTunes JSON results into a model represented in Swift.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7resultsSayAC7ResultsVGvp"></a>
|
||||
<a name="//apple_ref/swift/Property/results" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7resultsSayAC7ResultsVGvp">results</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The array of results objects from the iTunes Lookup API.</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">results</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Structs/SirenLookupModel/Results.html">Results</a></span><span class="p">]</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV"></a>
|
||||
<a name="//apple_ref/swift/Struct/Results" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV">Results</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The Results object from the the iTunes Lookup API.</p>
|
||||
|
||||
<a href="../Structs/SirenLookupModel/Results.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">Results</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,251 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Results 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/Results" class="dashAnchor"></a>
|
||||
<a title="Results Structure Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../../img/carat.png" />
|
||||
Results 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>Results</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">Results</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<p>The Results object from the the iTunes Lookup API.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV5appIDSivp"></a>
|
||||
<a name="//apple_ref/swift/Property/appID" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV5appIDSivp">appID</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’s App ID.</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">appID</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:5Siren0A11LookupModelV7ResultsV25currentVersionReleaseDateSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/currentVersionReleaseDate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV25currentVersionReleaseDateSSvp">currentVersionReleaseDate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The release date for the latest verison of the app.</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">currentVersionReleaseDate</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV16minimumOSVersionSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/minimumOSVersion" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV16minimumOSVersionSSvp">minimumOSVersion</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The minimum verison of iOS that the current verison of the app requires.</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">minimumOSVersion</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV12releaseNotesSSSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/releaseNotes" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV12releaseNotesSSSgvp">releaseNotes</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The releases notes from the latest version of the app.</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">releaseNotes</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:5Siren0A11LookupModelV7ResultsV7versionSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/version" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV7versionSSvp">version</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The latest version of the app.</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">version</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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
Vendored
+28
-1
@@ -1 +1,28 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" 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="128" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h93v20H0z"/><path fill="#dfb317" d="M93 0h35v20H93z"/><path fill="url(#b)" d="M0 0h128v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="46.5" y="15" fill="#010101" fill-opacity=".3">documentation</text><text x="46.5" y="14">documentation</text><text x="109.5" y="15" fill="#010101" fill-opacity=".3">55%</text><text x="109.5" y="14">55%</text></g></svg>
|
||||
<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>
|
||||
|
||||
|
Before Width: | Height: | Size: 808 B After Width: | Height: | Size: 1.1 KiB |
@@ -164,6 +164,11 @@ header {
|
||||
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; }
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Section/Classes" class="dashAnchor"></a>
|
||||
<a title="Classes Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -44,6 +44,14 @@
|
||||
</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">
|
||||
@@ -52,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -74,9 +105,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:C5Siren5Siren"></a>
|
||||
<a name="/c:@M@Siren@objc(cs)Siren"></a>
|
||||
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:C5Siren5Siren">Siren</a>
|
||||
<a class="token" href="#/c:@M@Siren@objc(cs)Siren">Siren</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -84,7 +115,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The Siren Class. A singleton that is initialized using the shared() method.</p>
|
||||
<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>
|
||||
@@ -92,7 +123,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -104,8 +135,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
<a title="Siren Class Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,11 +91,11 @@
|
||||
<h1>Siren</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><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>
|
||||
<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 shared() method.</p>
|
||||
<p>The Siren Class. A singleton that is initialized using the <code>shared</code> constant.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
@@ -74,9 +104,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren16SirenErrorDomainSS"></a>
|
||||
<a name="/s:5SirenAAC0A11ErrorDomainSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/SirenErrorDomain" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren16SirenErrorDomainSS">SirenErrorDomain</a>
|
||||
<a class="token" href="#/s:5SirenAAC0A11ErrorDomainSSvp">SirenErrorDomain</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -91,7 +121,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">let</span> <span class="nv">SirenErrorDomain</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -101,9 +131,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__"></a>
|
||||
<a name="/s:5SirenAAC8delegateAA0A8Delegate_pSgXwvp"></a>
|
||||
<a name="//apple_ref/swift/Property/delegate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__">delegate</a>
|
||||
<a class="token" href="#/s:5SirenAAC8delegateAA0A8Delegate_pSgXwvp">delegate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -113,21 +143,27 @@
|
||||
<div class="abstract">
|
||||
<p>The SirenDelegate variable, which should be set if you’d like to be notified:</p>
|
||||
|
||||
<p>When a user views or interacts with the alert
|
||||
- sirenDidShowUpdateDialog(alertType: AlertType)
|
||||
- sirenUserDidLaunchAppStore()
|
||||
- sirenUserDidSkipVersion()
|
||||
- sirenUserDidCancel()</p>
|
||||
<p>When a user views or interacts with the alert</p>
|
||||
|
||||
<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:
|
||||
- sirenDidDetectNewVersionWithoutAlert(message: String)</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(title: String, message: String)</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -137,9 +173,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren12debugEnabledSb"></a>
|
||||
<a name="/s:5SirenAAC12debugEnabledSbvp"></a>
|
||||
<a name="//apple_ref/swift/Property/debugEnabled" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren12debugEnabledSb">debugEnabled</a>
|
||||
<a class="token" href="#/s:5SirenAAC12debugEnabledSbvp">debugEnabled</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -148,14 +184,14 @@
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>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.</p>
|
||||
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"><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>
|
||||
<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="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -165,9 +201,9 @@ When enabled, a stream of println() statements are logged to your console when a
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren9alertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC9alertTypeAB05AlertC0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/alertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren9alertTypeOS0_9AlertType">alertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC9alertTypeAB05AlertC0Ovp">alertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -183,7 +219,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">alertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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">Siren</span><span class="o">.</span><span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -193,9 +229,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/majorUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType">majorUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ovp">majorUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -212,7 +248,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">majorUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -222,9 +258,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/minorUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType">minorUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ovp">minorUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -241,7 +277,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">minorUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -251,9 +287,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/patchUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType">patchUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ovp">patchUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -270,7 +306,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">patchUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -280,9 +316,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType"></a>
|
||||
<a name="/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ovp"></a>
|
||||
<a name="//apple_ref/swift/Property/revisionUpdateAlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType">revisionUpdateAlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ovp">revisionUpdateAlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -299,7 +335,7 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">revisionUpdateAlertType</span> <span class="o">=</span> <span class="kt"><a href="../Classes/Siren/AlertType.html">AlertType</a></span><span class="o">.</span><span class="n">option</span></code></pre>
|
||||
<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="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -309,9 +345,9 @@ See the Siren.AlertType enum for full details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren7appNameSS"></a>
|
||||
<a name="/s:5SirenAAC7appNameSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/appName" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren7appNameSS">appName</a>
|
||||
<a class="token" href="#/s:5SirenAAC7appNameSSvp">appName</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -327,7 +363,7 @@ By default, it’s set to the name of the app that’s stored in your pl
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">appName</span><span class="p">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="kt">Bundle</span><span class="o">.</span><span class="n">main</span><span class="o">.</span><span class="nf">bestMatchingAppName</span><span class="p">()</span></code></pre>
|
||||
<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="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -337,9 +373,37 @@ By default, it’s set to the name of the app that’s stored in your pl
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren11countryCodeGSqSS_"></a>
|
||||
<a name="/s:5SirenAAC14alertMessagingAA0a5AlertC0Vvp"></a>
|
||||
<a name="//apple_ref/swift/Property/alertMessaging" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5SirenAAC14alertMessagingAA0a5AlertC0Vvp">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="p">:</span> <span class="kt"><a href="../Structs/SirenAlertMessaging.html">SirenAlertMessaging</a></span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5SirenAAC11countryCodeSSSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/countryCode" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren11countryCodeGSqSS_">countryCode</a>
|
||||
<a class="token" href="#/s:5SirenAAC11countryCodeSSSgvp">countryCode</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -356,7 +420,7 @@ If your app is not available in the US App Store, set it to the identifier of at
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -366,9 +430,9 @@ If your app is not available in the US App Store, set it to the identifier of at
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_"></a>
|
||||
<a name="/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/forceLanguageLocalization" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_">forceLanguageLocalization</a>
|
||||
<a class="token" href="#/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgvp">forceLanguageLocalization</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -384,7 +448,7 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -394,9 +458,9 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_"></a>
|
||||
<a name="/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/alertControllerTintColor" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_">alertControllerTintColor</a>
|
||||
<a class="token" href="#/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgvp">alertControllerTintColor</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -411,7 +475,7 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -421,9 +485,9 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi"></a>
|
||||
<a name="/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSivp"></a>
|
||||
<a name="//apple_ref/swift/Property/showAlertAfterCurrentVersionHasBeenReleasedForDays" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi">showAlertAfterCurrentVersionHasBeenReleasedForDays</a>
|
||||
<a class="token" href="#/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSivp">showAlertAfterCurrentVersionHasBeenReleasedForDays</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -431,7 +495,7 @@ See the Siren.LanguageType enum for more details.</p>
|
||||
<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
|
||||
<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>
|
||||
@@ -439,7 +503,7 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -449,9 +513,9 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_"></a>
|
||||
<a name="/s:5SirenAAC22currentAppStoreVersionSSSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/currentAppStoreVersion" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_">currentAppStoreVersion</a>
|
||||
<a class="token" href="#/s:5SirenAAC22currentAppStoreVersionSSSgvp">currentAppStoreVersion</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -466,7 +530,7 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
@@ -476,9 +540,9 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:ZvC5Siren5Siren6sharedS0_"></a>
|
||||
<a name="/s:5SirenAAC6sharedABvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/shared" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:ZvC5Siren5Siren6sharedS0_">shared</a>
|
||||
<a class="token" href="#/s:5SirenAAC6sharedABvpZ">shared</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -493,7 +557,7 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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="p">:</span> <span class="kt">Siren</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -503,9 +567,9 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_"></a>
|
||||
<a name="/s:5SirenAAC12checkVersion0B4TypeyAB0c5CheckD0O_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/checkVersion(checkType:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_">checkVersion(checkType:)</a>
|
||||
<a class="token" href="#/s:5SirenAAC12checkVersion0B4TypeyAB0c5CheckD0O_tF">checkVersion(checkType:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -515,14 +579,14 @@ Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the
|
||||
<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:vC5Siren5Siren11countryCodeGSqSS_">countryCode</a></code> property before calling this method. Please refer to the countryCode property for more information.</p>
|
||||
you should set the <code><a href="../Classes/Siren.html#/s:5SirenAAC11countryCodeSSSgvp">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"><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>
|
||||
<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>
|
||||
@@ -539,7 +603,6 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<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>
|
||||
@@ -549,16 +612,55 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
</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">
|
||||
<div class="task-name-container">
|
||||
<a name="/Siren%20extension%20dealing%20with%20enumerated%20types%20and%20constants."></a>
|
||||
<a name="//apple_ref/swift/Section/Siren extension dealing with enumerated types and constants." class="dashAnchor"></a>
|
||||
<a href="#/Siren%20extension%20dealing%20with%20enumerated%20types%20and%20constants.">
|
||||
<h3 class="section-name">Siren extension dealing with enumerated types and constants.</h3>
|
||||
</a>
|
||||
</div>
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:OC5Siren5Siren9AlertType"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO"></a>
|
||||
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:OC5Siren5Siren9AlertType">AlertType</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO">AlertType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -574,7 +676,7 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -584,9 +686,9 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:OC5Siren5Siren16VersionCheckType"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO"></a>
|
||||
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:OC5Siren5Siren16VersionCheckType">VersionCheckType</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO">VersionCheckType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -602,7 +704,7 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
|
||||
<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>
|
||||
@@ -612,9 +714,9 @@ you should set the <code><a href="../Classes/Siren.html#/s:vC5Siren5Siren11count
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:OC5Siren5Siren12LanguageType"></a>
|
||||
<a name="/s:5SirenAAC12LanguageTypeO"></a>
|
||||
<a name="//apple_ref/swift/Enum/LanguageType" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:OC5Siren5Siren12LanguageType">LanguageType</a>
|
||||
<a class="token" href="#/s:5SirenAAC12LanguageTypeO">LanguageType</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -633,7 +735,7 @@ by setting the forceLanguageLocalization property before calling checkVersion()<
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">LanguageType</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
<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>
|
||||
@@ -645,8 +747,8 @@ by setting the forceLanguageLocalization property before calling checkVersion()<
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
+51
-33
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>AlertType Enum Reference</title>
|
||||
<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'>
|
||||
@@ -11,18 +11,17 @@
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
|
||||
<a title="AlertType Enum Reference"></a>
|
||||
<a title="AlertType Enumeration Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../../img/carat.png" />
|
||||
AlertType Enum Reference
|
||||
AlertType Enumeration Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,7 +91,7 @@
|
||||
<h1>AlertType</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -74,9 +104,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO5forceyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/force" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_">force</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO5forceyA2DmF">force</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -91,23 +121,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">force</span></code></pre>
|
||||
<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:FOC5Siren5Siren9AlertType6optionFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO6optionyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/option" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType6optionFMS1_S1_">option</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO6optionyA2DmF">option</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -122,23 +148,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">option</span></code></pre>
|
||||
<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:FOC5Siren5Siren9AlertType4skipFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO4skipyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/skip" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType4skipFMS1_S1_">skip</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO4skipyA2DmF">skip</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -153,23 +175,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">skip</span></code></pre>
|
||||
<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:FOC5Siren5Siren9AlertType4noneFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC9AlertTypeO4noneyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/none" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren9AlertType4noneFMS1_S1_">none</a>
|
||||
<a class="token" href="#/s:5SirenAAC9AlertTypeO4noneyA2DmF">none</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -177,7 +195,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Doesn’t show the alert, but instead returns a localized message
|
||||
<p>Doesn’t show the alert, but instead returns a localized message
|
||||
for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.</p>
|
||||
|
||||
</div>
|
||||
@@ -185,7 +203,7 @@ for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegat
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="k">none</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="k">case</span> <span class="k">none</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,8 +215,8 @@ for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegat
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
+380
-328
File diff suppressed because it is too large
Load Diff
+47
-25
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>VersionCheckType Enum Reference</title>
|
||||
<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'>
|
||||
@@ -11,18 +11,17 @@
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
|
||||
<a title="VersionCheckType Enum Reference"></a>
|
||||
<a title="VersionCheckType Enumeration Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../../img/carat.png" />
|
||||
VersionCheckType Enum Reference
|
||||
VersionCheckType Enumeration Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,7 +91,7 @@
|
||||
<h1>VersionCheckType</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
|
||||
<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>
|
||||
@@ -74,9 +104,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO11immediatelyyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/immediately" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_">immediately</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO11immediatelyyA2DmF">immediately</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -91,23 +121,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">immediately</span> <span class="o">=</span> <span class="mi">0</span></code></pre>
|
||||
<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:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO5dailyyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/daily" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_">daily</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO5dailyyA2DmF">daily</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -122,23 +148,19 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">daily</span> <span class="o">=</span> <span class="mi">1</span></code></pre>
|
||||
<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:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_"></a>
|
||||
<a name="/s:5SirenAAC16VersionCheckTypeO6weeklyyA2DmF"></a>
|
||||
<a name="//apple_ref/swift/Element/weekly" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_">weekly</a>
|
||||
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO6weeklyyA2DmF">weekly</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -153,7 +175,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">case</span> <span class="n">weekly</span> <span class="o">=</span> <span class="mi">7</span></code></pre>
|
||||
<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>
|
||||
@@ -165,8 +187,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
<!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 name="//apple_ref/swift/Section/Enumerations" class="dashAnchor"></a>
|
||||
<a title="Enumerations Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,262 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</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:5Siren10UpdateTypeO5majoryA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/major" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO5majoryA2CmF">major</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Major release available: A.b.c.d</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">major</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO5minoryA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/minor" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO5minoryA2CmF">minor</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Minor release available: a.B.c.d</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">minor</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO5patchyA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/patch" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO5patchyA2CmF">patch</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Patch release available: a.b.C.d</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">patch</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO8revisionyA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/revision" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO8revisionyA2CmF">revision</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Revision release available: a.b.c.D</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">revision</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren10UpdateTypeO7unknownyA2CmF"></a>
|
||||
<a name="//apple_ref/swift/Element/unknown" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren10UpdateTypeO7unknownyA2CmF">unknown</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>No information available about the update.</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">unknown</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Section/Protocols" class="dashAnchor"></a>
|
||||
<a title="Protocols Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -44,6 +44,14 @@
|
||||
</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">
|
||||
@@ -52,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -74,9 +105,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:P5Siren13SirenDelegate"></a>
|
||||
<a name="/s:5Siren0A8DelegateP"></a>
|
||||
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:P5Siren13SirenDelegate">SirenDelegate</a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP">SirenDelegate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
@@ -92,7 +123,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kd">class</span></code></pre>
|
||||
<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>
|
||||
@@ -104,8 +135,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
+174
-66
@@ -14,8 +14,7 @@
|
||||
<a title="SirenDelegate Protocol Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="../img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -45,6 +44,14 @@
|
||||
</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">
|
||||
@@ -53,6 +60,29 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
@@ -61,7 +91,7 @@
|
||||
<h1>SirenDelegate</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span><span class="p">:</span> <span class="kd">class</span></code></pre>
|
||||
<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>
|
||||
@@ -74,9 +104,83 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_"></a>
|
||||
<a name="/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlert5title7message10updateTypeySS_SSAA06UpdateM0OtF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidDetectNewVersionWithoutAlert(title:message:updateType:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlert5title7message10updateTypeySS_SSAA06UpdateM0OtF">sirenDidDetectNewVersionWithoutAlert(title: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 a version check and did not display an 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">title</span><span class="p">:</span> <span class="kt">String</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:5Siren0A8DelegateP24sirenDidFailVersionCheck5errorys5Error_p_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidFailVersionCheck(error:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidFailVersionCheck5errorys5Error_p_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.</p>
|
||||
<div class="aside aside-note">
|
||||
<p class="aside-title">Note</p>
|
||||
Depending on the reason for failure,
|
||||
a system-level error may be returned.
|
||||
|
||||
</div>
|
||||
|
||||
</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:5Siren0A8DelegateP24sirenDidShowUpdateDialog9alertTypeyA2AC05AlertI0O_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidShowUpdateDialog(alertType:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_">sirenDidShowUpdateDialog(alertType:)</a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidShowUpdateDialog9alertTypeyA2AC05AlertI0O_tF">sirenDidShowUpdateDialog(alertType:)</a>
|
||||
</code>
|
||||
<span class="declaration-note">
|
||||
Default implementation
|
||||
@@ -87,7 +191,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>User presented with update dialog.</p>
|
||||
<p>User presented with an update dialog.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -98,19 +202,38 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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>
|
||||
<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>
|
||||
<div>
|
||||
<h4>Parameters</h4>
|
||||
<table class="graybox">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<code>
|
||||
<em>alertType</em>
|
||||
</code>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<p>The type of alert that was presented.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenUserDidLaunchAppStore()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_">sirenUserDidLaunchAppStore()</a>
|
||||
<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
|
||||
@@ -121,7 +244,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>User did click on button that launched App Store.app.</p>
|
||||
<p>Siren performed a version check and the latest version was already installed.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -132,7 +255,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -142,9 +265,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenUserDidSkipVersion()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_">sirenUserDidSkipVersion()</a>
|
||||
<a name="/s:5Siren0A8DelegateP50sirenNetworkCallDidReturnWithNewVersionInformation11lookupModelyAA0a6LookupM0V_tF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP50sirenNetworkCallDidReturnWithNewVersionInformation11lookupModelyAA0a6LookupM0V_tF">sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel:)</a>
|
||||
</code>
|
||||
<span class="declaration-note">
|
||||
Default implementation
|
||||
@@ -155,7 +278,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>User did click on button that skips version update.</p>
|
||||
<p>Provides the decoded JSON information from a successful version check call.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -166,19 +289,38 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenNetworkCallDidReturnWithNewVersionInformation</span><span class="p">(</span><span class="nv">lookupModel</span><span class="p">:</span> <span class="kt"><a href="../Structs/SirenLookupModel.html">SirenLookupModel</a></span><span class="p">)</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Parameters</h4>
|
||||
<table class="graybox">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<code>
|
||||
<em>lookupModel</em>
|
||||
</code>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<p>The <code>Decodable</code> model representing the JSON results from the iTunes Lookup API.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_"></a>
|
||||
<a name="/s:5Siren0A8DelegateP18sirenUserDidCancelyyF"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenUserDidCancel()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_">sirenUserDidCancel()</a>
|
||||
<a class="token" href="#/s:5Siren0A8DelegateP18sirenUserDidCancelyyF">sirenUserDidCancel()</a>
|
||||
</code>
|
||||
<span class="declaration-note">
|
||||
Default implementation
|
||||
@@ -200,7 +342,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -210,9 +352,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidFailVersionCheck(error:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_">sirenDidFailVersionCheck(error:)</a>
|
||||
<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
|
||||
@@ -223,7 +365,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Siren failed to perform version check (may return system-level error).</p>
|
||||
<p>User did click on button that launched <q>App Store.app</q>.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -234,7 +376,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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">NSError</span><span class="p">)</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -244,9 +386,9 @@
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenDidDetectNewVersionWithoutAlert(message:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_">sirenDidDetectNewVersionWithoutAlert(message:)</a>
|
||||
<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
|
||||
@@ -257,7 +399,7 @@
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Siren performed version check and did not display alert.</p>
|
||||
<p>User did click on button that skips version update.</p>
|
||||
|
||||
</div>
|
||||
<h4>Default Implementation</h4>
|
||||
@@ -268,41 +410,7 @@
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><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></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/sirenLatestVersionInstalled()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_">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"><code><span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span></code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -314,8 +422,8 @@
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
<!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 name="//apple_ref/swift/Section/Structures" class="dashAnchor"></a>
|
||||
<a title="Structures Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</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%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 <code>SirenAlertMessaging</code> 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>
|
||||
<div class="task-group">
|
||||
<div class="task-name-container">
|
||||
<a name="/Model%20representing%20a%20selection%20of%20results%20from%20the%20iTunes%20Lookup%20API"></a>
|
||||
<a name="//apple_ref/swift/Section/Model representing a selection of results from the iTunes Lookup API" class="dashAnchor"></a>
|
||||
<a href="#/Model%20representing%20a%20selection%20of%20results%20from%20the%20iTunes%20Lookup%20API">
|
||||
<h3 class="section-name">Model representing a selection of results from the iTunes Lookup API</h3>
|
||||
</a>
|
||||
</div>
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV"></a>
|
||||
<a name="//apple_ref/swift/Struct/SirenLookupModel" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV">SirenLookupModel</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 extension used to parse and map the iTunes JSON results into a model represented in Swift.</p>
|
||||
|
||||
<a href="Structs/SirenLookupModel.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">SirenLookupModel</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<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">
|
||||
<p>Data structure used to build Siren specific Errors.</p>
|
||||
|
||||
<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>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
+249
@@ -0,0 +1,249 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</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 <code>SirenAlertMessaging</code> 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">
|
||||
<p>The default constants used for the alert messaging.</p>
|
||||
|
||||
<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:5Siren0A14AlertMessagingV11updateTitle0D7Message0d6ButtonF008nextTimegF0011skipVersiongF0ACSo18NSAttributedStringC_A4Jtcfc"></a>
|
||||
<a name="//apple_ref/swift/Method/init(updateTitle:updateMessage:updateButtonMessage:nextTimeButtonMessage:skipVersionButtonMessage:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV11updateTitle0D7Message0d6ButtonF008nextTimegF0011skipVersiongF0ACSo18NSAttributedStringC_A4Jtcfc">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">NSAttributedString</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">NSAttributedString</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">NSAttributedString</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">NSAttributedString</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">NSAttributedString</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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
+251
@@ -0,0 +1,251 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</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>
|
||||
<p>The default constants used for the alert messaging.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/nextTime" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSo18NSAttributedStringCvpZ">nextTime</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The button text that conveys the message that the user should be prompted to update next time the app launches.</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">nextTime</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/skipVersion" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSo18NSAttributedStringCvpZ">skipVersion</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The text that conveys the message that the the user wants to skip this verison update.</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">skipVersion</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/updateMessage" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSo18NSAttributedStringCvpZ">updateMessage</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The text that conveys the message that there is an app update 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="kd">static</span> <span class="k">let</span> <span class="nv">updateMessage</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/updateTitle" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSo18NSAttributedStringCvpZ">updateTitle</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The alert title which defaults to <em>Update Available</em>.</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">updateTitle</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSo18NSAttributedStringCvpZ"></a>
|
||||
<a name="//apple_ref/swift/Variable/updateNow" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSo18NSAttributedStringCvpZ">updateNow</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The button text that conveys the message that the user would like to update the app right away.</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">updateNow</span><span class="p">:</span> <span class="kt">NSAttributedString</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,157 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</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>
|
||||
<p>Data structure used to build Siren specific Errors.</p>
|
||||
|
||||
</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">
|
||||
<p>Enumerates all potentials errors that Siren can handle.</p>
|
||||
|
||||
<ul>
|
||||
<li>appStoreAppIDFailure: Error retrieving trackId as the JSON does not contain a ‘trackId’ key.</li>
|
||||
<li>appStoreDataRetrievalFailure: Error retrieving App Store data as an error was returned.</li>
|
||||
<li>appStoreJSONParsingFailure: Error parsing App Store JSON data.</li>
|
||||
<li>appStoreDataRetrievalEmptyResults: Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the <code>countryCode</code> variable to fix this error.</li>
|
||||
<li>appStoreOSVersionNumberFailure: Error retrieving iOS version number as there was no data returned.</li>
|
||||
<li>appStoreOSVersionUnsupported: The version of iOS on the device is lower than that of the one required by the app verison update.</li>
|
||||
<li>appStoreVersionArrayFailure: Error retrieving App Store verson number as the JSON does not contain a ‘version’ key.</li>
|
||||
<li>malformedURL: The iTunes URL is malformed. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</li>
|
||||
<li>noUpdateAvailable: No new update available.</li>
|
||||
<li>recentlyCheckedAlready: Not checking the version, because it was already checked recently.</li>
|
||||
</ul>
|
||||
|
||||
<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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,399 @@
|
||||
<!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">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</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>
|
||||
<p>Enumerates all potentials errors that Siren can handle.</p>
|
||||
|
||||
<ul>
|
||||
<li>appStoreAppIDFailure: Error retrieving trackId as the JSON does not contain a ‘trackId’ key.</li>
|
||||
<li>appStoreDataRetrievalFailure: Error retrieving App Store data as an error was returned.</li>
|
||||
<li>appStoreJSONParsingFailure: Error parsing App Store JSON data.</li>
|
||||
<li>appStoreDataRetrievalEmptyResults: Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the <code>countryCode</code> variable to fix this error.</li>
|
||||
<li>appStoreOSVersionNumberFailure: Error retrieving iOS version number as there was no data returned.</li>
|
||||
<li>appStoreOSVersionUnsupported: The version of iOS on the device is lower than that of the one required by the app verison update.</li>
|
||||
<li>appStoreVersionArrayFailure: Error retrieving App Store verson number as the JSON does not contain a ‘version’ key.</li>
|
||||
<li>malformedURL: The iTunes URL is malformed. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</li>
|
||||
<li>noUpdateAvailable: No new update available.</li>
|
||||
<li>recentlyCheckedAlready: Not checking the version, because it was already checked recently.</li>
|
||||
</ul>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreAppIDFailure" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureyA2EmF">appStoreAppIDFailure</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving trackId as the JSON does not contain a ‘trackId’ key.</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">appStoreAppIDFailure</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureyAEs0B0_pSg_tcAEmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreDataRetrievalFailure(underlyingError:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureyAEs0B0_pSg_tcAEmF">appStoreDataRetrievalFailure(underlyingError:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving App Store data as an error was returned.</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="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>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureyAEs0B0_p_tcAEmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreJSONParsingFailure(underlyingError:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureyAEs0B0_p_tcAEmF">appStoreJSONParsingFailure(underlyingError:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error parsing App Store JSON data.</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="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>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO33appStoreDataRetrievalEmptyResultsyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreDataRetrievalEmptyResults" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO33appStoreDataRetrievalEmptyResultsyA2EmF">appStoreDataRetrievalEmptyResults</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the <code>countryCode</code> variable to fix this error.</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">appStoreDataRetrievalEmptyResults</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreOSVersionNumberFailure" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureyA2EmF">appStoreOSVersionNumberFailure</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving iOS version number as there was no data returned.</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">appStoreOSVersionNumberFailure</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreOSVersionUnsupported" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedyA2EmF">appStoreOSVersionUnsupported</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The version of iOS on the device is lower than that of the one required by the app verison update.</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">appStoreOSVersionUnsupported</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/appStoreVersionArrayFailure" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureyA2EmF">appStoreVersionArrayFailure</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Error retrieving App Store verson number as the JSON does not contain a ‘version’ key.</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">appStoreVersionArrayFailure</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO12malformedURLyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/malformedURL" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO12malformedURLyA2EmF">malformedURL</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The iTunes URL is malformed. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</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">malformedURL</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/noUpdateAvailable" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableyA2EmF">noUpdateAvailable</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>No new update 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="k">case</span> <span class="n">noUpdateAvailable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyyA2EmF"></a>
|
||||
<a name="//apple_ref/swift/Element/recentlyCheckedAlready" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyyA2EmF">recentlyCheckedAlready</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Not checking the version, because it was already checked recently.</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">recentlyCheckedAlready</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>SirenLookupModel 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/SirenLookupModel" class="dashAnchor"></a>
|
||||
<a title="SirenLookupModel Structure Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../img/carat.png" />
|
||||
SirenLookupModel 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>SirenLookupModel</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">SirenLookupModel</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<p>MARK: Siren extension used to parse and map the iTunes JSON results into a model represented in Swift.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7resultsSayAC7ResultsVGvp"></a>
|
||||
<a name="//apple_ref/swift/Property/results" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7resultsSayAC7ResultsVGvp">results</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The array of results objects from the iTunes Lookup API.</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">results</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Structs/SirenLookupModel/Results.html">Results</a></span><span class="p">]</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV"></a>
|
||||
<a name="//apple_ref/swift/Struct/Results" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV">Results</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The Results object from the the iTunes Lookup API.</p>
|
||||
|
||||
<a href="../Structs/SirenLookupModel/Results.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">Results</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
+251
@@ -0,0 +1,251 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Results 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/Results" class="dashAnchor"></a>
|
||||
<a title="Results Structure Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../../index.html">Siren Reference</a>
|
||||
<img id="carat" src="../../img/carat.png" />
|
||||
Results 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>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="../../Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>Results</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">Results</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<p>The Results object from the the iTunes Lookup API.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV5appIDSivp"></a>
|
||||
<a name="//apple_ref/swift/Property/appID" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV5appIDSivp">appID</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’s App ID.</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">appID</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:5Siren0A11LookupModelV7ResultsV25currentVersionReleaseDateSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/currentVersionReleaseDate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV25currentVersionReleaseDateSSvp">currentVersionReleaseDate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The release date for the latest verison of the app.</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">currentVersionReleaseDate</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV16minimumOSVersionSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/minimumOSVersion" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV16minimumOSVersionSSvp">minimumOSVersion</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The minimum verison of iOS that the current verison of the app requires.</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">minimumOSVersion</span><span class="p">:</span> <span class="kt">String</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:5Siren0A11LookupModelV7ResultsV12releaseNotesSSSgvp"></a>
|
||||
<a name="//apple_ref/swift/Property/releaseNotes" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV12releaseNotesSSSgvp">releaseNotes</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The releases notes from the latest version of the app.</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">releaseNotes</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:5Siren0A11LookupModelV7ResultsV7versionSSvp"></a>
|
||||
<a name="//apple_ref/swift/Property/version" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:5Siren0A11LookupModelV7ResultsV7versionSSvp">version</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The latest version of the app.</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">version</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>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,28 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" 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="128" height="20" rx="3" fill="#fff"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#a)">
|
||||
<path fill="#555" d="M0 0h93v20H0z"/>
|
||||
<path fill="#4c1" d="M93 0h35v20H93z"/>
|
||||
<path fill="url(#b)" d="M0 0h128v20H0z"/>
|
||||
</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="1095" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="250">
|
||||
95%
|
||||
</text>
|
||||
<text x="1095" y="140" transform="scale(.1)" textLength="250">
|
||||
95%
|
||||
</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -164,6 +164,11 @@ header {
|
||||
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; }
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
<a title="Siren Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">Siren Docs</a> (55% documented)</p>
|
||||
<p class="header-right"><a href="https://github.com/artsabintsev/siren"><img src="img/gh.png"/>View on GitHub</a></p>
|
||||
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
@@ -44,6 +43,14 @@
|
||||
</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">
|
||||
@@ -52,16 +59,46 @@
|
||||
</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>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel.html">SirenLookupModel</a>
|
||||
</li>
|
||||
<li class="nav-group-task">
|
||||
<a href="Structs/SirenLookupModel/Results.html">– Results</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
|
||||
<a href='#siren' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='siren'>Siren</h1>
|
||||
<a href='#notify-users-when-a-new-version-of-your-app-is-available-and-prompt-them-to-upgrade' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='notify-users-when-a-new-version-of-your-app-is-available-and-prompt-them-to-upgrade'>Notify users when a new version of your app is available and prompt them to upgrade.</h3>
|
||||
<a href='#a-href-https-dashboard-buddybuild-com-apps-58c4d0d85601d40100c5c51d-build-latest-branch-master-img-src-https-dashboard-buddybuild-com-api-statusimage-appid-58c4d0d85601d40100c5c51d-branch-master-build-latest-alt-buddybuild-a-a-href-https-cocoapods-org-pods-siren-img-src-https-img-shields-io-cocoapods-v-siren-svg-alt-cocoapods-a-a-href-https-github-com-carthage-carthage-img-src-https-img-shields-io-badge-carthage-compatible-4bc51d-svg-style-flat-alt-carthage-compatible-a-a-href-https-swift-org-package-manager-img-src-https-img-shields-io-badge-swiftpm-compatible-brightgreen-svg-alt-swiftpm-compatible-a-a-href-https-cocoapods-org-pods-siren-img-src-https-img-shields-io-cocoapods-dt-siren-svg-alt-cocoapods-a-a-href-https-cocoapods-org-pods-siren-img-src-https-img-shields-io-cocoapods-dm-siren-svg-alt-cocoapods-a' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='a-href-https-dashboard-buddybuild-com-apps-58c4d0d85601d40100c5c51d-build-latest-branch-master-img-src-https-dashboard-buddybuild-com-api-statusimage-appid-58c4d0d85601d40100c5c51d-branch-master-build-latest-alt-buddybuild-a-a-href-https-cocoapods-org-pods-siren-img-src-https-img-shields-io-cocoapods-v-siren-svg-alt-cocoapods-a-a-href-https-github-com-carthage-carthage-img-src-https-img-shields-io-badge-carthage-compatible-4bc51d-svg-style-flat-alt-carthage-compatible-a-a-href-https-swift-org-package-manager-img-src-https-img-shields-io-badge-swiftpm-compatible-brightgreen-svg-alt-swiftpm-compatible-a-a-href-https-cocoapods-org-pods-siren-img-src-https-img-shields-io-cocoapods-dt-siren-svg-alt-cocoapods-a-a-href-https-cocoapods-org-pods-siren-img-src-https-img-shields-io-cocoapods-dm-siren-svg-alt-cocoapods-a'><a href="https://dashboard.buddybuild.com/apps/58c4d0d85601d40100c5c51d/build/latest?branch=master"><img src="https://dashboard.buddybuild.com/api/statusImage?appID=58c4d0d85601d40100c5c51d&branch=master&build=latest" alt="BuddyBuild"></a> <a href="https://cocoapods.org/pods/Siren"><img src="https://img.shields.io/cocoapods/v/Siren.svg" alt="CocoaPods"></a> <a href="https://github.com/Carthage/Carthage"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage Compatible"></a> <a href="https://swift.org/package-manager/"><img src="https://img.shields.io/badge/SwiftPM-Compatible-brightgreen.svg" alt="SwiftPM Compatible"></a> <a href="https://cocoapods.org/pods/Siren"><img src="https://img.shields.io/cocoapods/dt/Siren.svg" alt="CocoaPods"></a> <a href="https://cocoapods.org/pods/Siren"><img src="https://img.shields.io/cocoapods/dm/Siren.svg" alt="CocoaPods"></a></h2>
|
||||
<a href='#table-of-contents' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='table-of-contents'>Table of Contents</h2>
|
||||
<h1 id='siren' class='heading'>Siren 🚨</h1>
|
||||
<h3 id='notify-users-when-a-new-version-of-your-app-is-available-and-prompt-them-to-upgrade' class='heading'>Notify users when a new version of your app is available and prompt them to upgrade.</h3>
|
||||
|
||||
<p><a href="https://travis-ci.org/ArtSabintsev/Siren"><img src="https://travis-ci.org/ArtSabintsev/Siren.svg?branch=master" alt="Travis CI Status"></a></p>
|
||||
|
||||
<p><img src="https://img.shields.io/badge/Swift-4.2%2C%204.1%2C%203.2%2C%203.1%202.3-orange.svg" alt="Swift Support"> <img src="https://github.com/ArtSabintsev/Siren/blob/master/docs/badge.svg" alt="Documentation"></p>
|
||||
|
||||
<p><a href="https://cocoapods.org/pods/Siren"><img src="https://img.shields.io/cocoapods/v/Siren.svg" alt="CocoaPods"></a> <a href="https://github.com/Carthage/Carthage"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage Compatible"></a> <a href="https://swift.org/package-manager/"><img src="https://img.shields.io/badge/SwiftPM-Compatible-brightgreen.svg" alt="SwiftPM Compatible"></a></p>
|
||||
|
||||
<hr>
|
||||
<h2 id='table-of-contents' class='heading'>Table of Contents</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/ArtSabintsev/Siren#about">About</a></li>
|
||||
@@ -75,102 +112,135 @@
|
||||
<li><a href="https://github.com/ArtSabintsev/Siren#device-compatibility">Device Compatibility</a></li>
|
||||
<li><a href="https://github.com/ArtSabintsev/Siren#testing-siren">Testing Siren</a></li>
|
||||
<li><a href="https://github.com/ArtSabintsev/Siren#app-store-submissions">App Store Review & Submissions</a></li>
|
||||
<li><a href="https://github.com/ArtSabintsev/Siren#phased-releases">Phrased Releases</a></li>
|
||||
<li><a href="https://github.com/ArtSabintsev/Siren#words-of-caution">Words of Caution</a></li>
|
||||
<li><a href="https://github.com/ArtSabintsev/Siren#ports">Ports</a></li>
|
||||
</ul>
|
||||
<a href='#a-href-https-github-com-artsabintsev-siren-created-and-maintained-by-attribution-a' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='a-href-https-github-com-artsabintsev-siren-created-and-maintained-by-attribution-a'>- <a href="https://github.com/ArtSabintsev/Siren#created-and-maintained-by">Attribution</a></h2>
|
||||
<a href='#about' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='about'>About</h2>
|
||||
<h2 id='a-href-https-github-com-artsabintsev-siren-created-and-maintained-by-attribution-a' class='heading'>- <a href="https://github.com/ArtSabintsev/Siren#created-and-maintained-by">Attribution</a></h2>
|
||||
<h2 id='about' class='heading'>About</h2>
|
||||
|
||||
<p><strong>Siren</strong> checks a user’s currently installed version of your iOS app against the version that is currently available in the App Store.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<ul>
|
||||
<li>Siren is built to work with the <a href="http://semver.org/"><strong>Semantic Versioning</strong></a> system.
|
||||
<li>Siren is built to work with the <a href="https://semver.org/"><strong>Semantic Versioning</strong></a> system.
|
||||
|
||||
<ul>
|
||||
<li>Semantic Versioning is a three number versioning system (e.g., 1.0.0)</li>
|
||||
<li>Siren also supports two-number versioning (e.g., 1.0) and four-number versioning (e.g., 1.0.0.0)</li>
|
||||
</ul></li>
|
||||
<li>Siren is actively maintained by <a href="http://github.com/ArtSabintsev"><strong>Arthur Sabintsev</strong></a> and <a href="http://twitter.com/getaaron"><strong>Aaron Brager</strong></a></li>
|
||||
<li>Siren is actively maintained by <a href="https://github.com/ArtSabintsev"><strong>Arthur Sabintsev</strong></a> and <a href="https://twitter.com/getaaron"><strong>Aaron Brager</strong></a></li>
|
||||
</ul>
|
||||
<a href='#readme-translations' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='readme-translations'>README Translations</h3>
|
||||
<h3 id='readme-translations' class='heading'>README Translations</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="README.zh_CN.md"><strong>简体中文</strong></a> (by <a href="http://www.jianshu.com/u/d8bbc4831623"><strong>Daniel Hu</strong></a>)</li>
|
||||
<li><a href="README.zh_CN.md"><strong>简体中文</strong></a> (by <a href="https://www.jianshu.com/u/d8bbc4831623"><strong>Daniel Hu</strong></a>)</li>
|
||||
</ul>
|
||||
<a href='#features' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='features'>Features</h2>
|
||||
<h2 id='features' class='heading'>Features</h2>
|
||||
|
||||
<ul>
|
||||
<li>[x] CocoaPods Support</li>
|
||||
<li>[x] Carthage Support</li>
|
||||
<li>[x] Swift Package Manager Support</li>
|
||||
<li>[x] Localized for 30+ languages (see <a href="https://github.com/ArtSabintsev/Siren#localization">Localization</a>)</li>
|
||||
<li>[x] Pre-Update Device Compatibility Check (see <a href="https://github.com/ArtSabintsev/Siren#device-compatibility">Device Compatibility</a></li>
|
||||
<li>[x] Pre-Update Device Compatibility Check (see <a href="https://github.com/ArtSabintsev/Siren#device-compatibility">Device Compatibility</a>)</li>
|
||||
<li>[x] Three types of alerts (see <a href="https://github.com/ArtSabintsev/Siren#screenshots">Screenshots</a>)</li>
|
||||
<li>[x] Optional delegate methods (see <a href="https://github.com/ArtSabintsev/Siren#optional-delegate-and-delegate-methods">Delegates (Optional)</a></li>
|
||||
<li>[x] Optional delegate methods (see <a href="https://github.com/ArtSabintsev/Siren#optional-delegate-and-delegate-methods">Delegates (Optional)</a>)</li>
|
||||
<li>[x] Unit Tests</li>
|
||||
<li>[x] Documentation can be found at <a href="http://sabintsev.com/Siren">http://sabintsev.com/Siren</a>.</li>
|
||||
</ul>
|
||||
<a href='#screenshots' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='screenshots'>Screenshots</h2>
|
||||
<h2 id='screenshots' class='heading'>Screenshots</h2>
|
||||
|
||||
<ul>
|
||||
<li>The <strong>left picture</strong> forces the user to update the app.</li>
|
||||
<li>The <strong>center picture</strong> gives the user the option to update the app.</li>
|
||||
<li>The <strong>right picture</strong> gives the user the option to skip the current update.</li>
|
||||
<li>These options are controlled by the <code>SirenAlertType</code> enum.</li>
|
||||
<li>These options are controlled by the <code><a href="Classes/Siren/AlertType.html">Siren.AlertType</a></code> enum.</li>
|
||||
</ul>
|
||||
|
||||
<p><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"></p>
|
||||
<a href='#installation-instructions' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='installation-instructions'>Installation Instructions</h2>
|
||||
<a href='#cocoapods' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='cocoapods'>CocoaPods</h3>
|
||||
<h2 id='installation-instructions' class='heading'>Installation Instructions</h2>
|
||||
|
||||
<p>For Swift 3 support:
|
||||
<code>ruby
|
||||
pod 'Siren'
|
||||
</code></p>
|
||||
|
||||
<p>For Swift 2.3 support:
|
||||
<code>ruby
|
||||
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3'
|
||||
</code></p>
|
||||
|
||||
<p>For Swift 2.2 support:
|
||||
<code>ruby
|
||||
pod 'Siren', '0.9.5'
|
||||
</code></p>
|
||||
<a href='#carthage' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='carthage'>Carthage</h3>
|
||||
|
||||
<p>For Swift 3 support:</p>
|
||||
<pre class="highlight swift"><code><span class="n">github</span> <span class="s">"ArtSabintsev/Siren"</span>
|
||||
<table><thead>
|
||||
<tr>
|
||||
<th>Swift Version</th>
|
||||
<th>Branch Name</th>
|
||||
<th>Will Continue to Receive Updates?</th>
|
||||
</tr>
|
||||
</thead><tbody>
|
||||
<tr>
|
||||
<td>4.2</td>
|
||||
<td>master</td>
|
||||
<td><strong>Yes</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4.1</td>
|
||||
<td>swift4.1</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3.2</td>
|
||||
<td>swift3.2</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3.1</td>
|
||||
<td>swift3.1</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2.3</td>
|
||||
<td>swift2.3</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<h3 id='cocoapods' class='heading'>CocoaPods</h3>
|
||||
<pre class="highlight ruby"><code><span class="n">pod</span> <span class="s1">'Siren'</span> <span class="c1"># Swift 4.2</span>
|
||||
<span class="n">pod</span> <span class="s1">'Siren'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=></span> <span class="s1">'https://github.com/ArtSabintsev/Siren.git'</span><span class="p">,</span> <span class="ss">:branch</span> <span class="o">=></span> <span class="s1">'swift4.1'</span> <span class="c1"># Swift 4.1</span>
|
||||
<span class="n">pod</span> <span class="s1">'Siren'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=></span> <span class="s1">'https://github.com/ArtSabintsev/Siren.git'</span><span class="p">,</span> <span class="ss">:branch</span> <span class="o">=></span> <span class="s1">'swift3.2'</span> <span class="c1"># Swift 3.2</span>
|
||||
<span class="n">pod</span> <span class="s1">'Siren'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=></span> <span class="s1">'https://github.com/ArtSabintsev/Siren.git'</span><span class="p">,</span> <span class="ss">:branch</span> <span class="o">=></span> <span class="s1">'swift3.1'</span> <span class="c1"># Swift 3.1</span>
|
||||
<span class="n">pod</span> <span class="s1">'Siren'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=></span> <span class="s1">'https://github.com/ArtSabintsev/Siren.git'</span><span class="p">,</span> <span class="ss">:branch</span> <span class="o">=></span> <span class="s1">'swift2.3'</span> <span class="c1"># Swift 2.3</span>
|
||||
</code></pre>
|
||||
|
||||
<p>For Swift 2.3 support:</p>
|
||||
<pre class="highlight swift"><code><span class="n">github</span> <span class="s">"ArtSabintsev/Siren"</span> <span class="s">"swift2.3"</span>
|
||||
<h3 id='carthage' class='heading'>Carthage</h3>
|
||||
<pre class="highlight swift"><code><span class="n">github</span> <span class="s">"ArtSabintsev/Siren"</span> <span class="c1">// Swift 4.2</span>
|
||||
<span class="n">github</span> <span class="s">"ArtSabintsev/Siren"</span><span class="p">,</span> <span class="s">"swift4.1"</span> <span class="c1">// Swift 4.1</span>
|
||||
<span class="n">github</span> <span class="s">"ArtSabintsev/Siren"</span><span class="p">,</span> <span class="s">"swift3.2"</span> <span class="c1">// Swift 3.2</span>
|
||||
<span class="n">github</span> <span class="s">"ArtSabintsev/Siren"</span><span class="p">,</span> <span class="s">"swift3.1"</span> <span class="c1">// Swift 3.1</span>
|
||||
<span class="n">github</span> <span class="s">"ArtSabintsev/Siren"</span><span class="p">,</span> <span class="s">"swift2.3"</span> <span class="c1">// Swift 2.3</span>
|
||||
</code></pre>
|
||||
<a href='#swift-package-manager' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='swift-package-manager'>Swift Package Manager</h3>
|
||||
<pre class="highlight swift"><code><span class="o">.</span><span class="kt">Package</span><span class="p">(</span><span class="nv">url</span><span class="p">:</span> <span class="s">"https://github.com/ArtSabintsev/Siren.git"</span><span class="p">,</span> <span class="nv">majorVersion</span><span class="p">:</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<h3 id='swift-package-manager' class='heading'>Swift Package Manager</h3>
|
||||
<pre class="highlight swift"><code><span class="o">.</span><span class="kt">Package</span><span class="p">(</span><span class="nv">url</span><span class="p">:</span> <span class="s">"https://github.com/ArtSabintsev/Siren.git"</span><span class="p">,</span> <span class="nv">majorVersion</span><span class="p">:</span> <span class="mi">3</span><span class="p">)</span>
|
||||
</code></pre>
|
||||
<a href='#example-code' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='example-code'>Example Code</h2>
|
||||
<h2 id='example-code' class='heading'>Example Code</h2>
|
||||
|
||||
<p>Below is some commented sample code. Adapt this to meet your app’s needs.</p>
|
||||
|
||||
<p>For a full list of optional settings/preferences, please refer to <a href="https://github.com/ArtSabintsev/Siren/blob/master/SirenExample/SirenExample/AppDelegate.swift">https://github.com/ArtSabintsev/Siren/blob/master/SirenExample/SirenExample/AppDelegate.swift</a> in the Sample Project.</p>
|
||||
<p>For a full list of optional settings/preferences, please refer to <a href="https://github.com/ArtSabintsev/Siren/blob/master/Example/Example/AppDelegate.swift">https://github.com/ArtSabintsev/Siren/blob/master/Example/Example/AppDelegate.swift</a> in the Sample Project.</p>
|
||||
<pre class="highlight plaintext"><code>func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
|
||||
/* Siren code should go below window?.makeKeyAndVisible() */
|
||||
|
||||
// Siren is a singleton
|
||||
let siren = Siren.shared
|
||||
// Siren is a singleton
|
||||
let siren = Siren.shared
|
||||
|
||||
// Optional: Defaults to .Option
|
||||
siren.alertType = <#SirenAlertType_Enum_Value#>
|
||||
// Optional: Defaults to .option
|
||||
siren.alertType = <#Siren.AlertType_Enum_Value#>
|
||||
|
||||
// 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: 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: NSAttributedString(string: "New Fancy Title"),
|
||||
updateMessage: NSAttributedString(string: "New message goes here!"),
|
||||
updateButtonMessage: NSAttributedString(string: "Update Now, Plz!?"),
|
||||
nextTimeButtonMessage: NSAttributedString(string: "OK, next time it is!"),
|
||||
skipVersionButtonMessage: NSAttributedString(string: "Please don't push skip, please don't!"))
|
||||
|
||||
// Replace .Immediately with .Daily or .Weekly to specify a maximum daily or weekly frequency for version checks.
|
||||
|
||||
// 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
|
||||
@@ -178,19 +248,20 @@ pod 'Siren', '0.9.5'
|
||||
|
||||
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(_:). */
|
||||
Place in applicationDidBecomeActive(_:).
|
||||
*/
|
||||
|
||||
Siren.shared.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.
|
||||
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
|
||||
ONLY USE WITH Siren.AlertType.immediately
|
||||
*/
|
||||
|
||||
Siren.shared.checkVersion(checkType: .immediately)
|
||||
@@ -198,112 +269,153 @@ func applicationWillEnterForeground(application: UIApplication) {
|
||||
</code></pre>
|
||||
|
||||
<p>And you’re all set!</p>
|
||||
<a href='#prompting-for-updates-without-alerts' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='prompting-for-updates-without-alerts'>Prompting for Updates without Alerts</h3>
|
||||
<h3 id='prompting-for-updates-without-alerts' class='heading'>Prompting for Updates without Alerts</h3>
|
||||
|
||||
<p>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:</p>
|
||||
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">application</span><span class="p">(</span><span class="nv">application</span><span class="p">:</span> <span class="kt">UIApplication</span><span class="p">,</span> <span class="n">didFinishLaunchingWithOptions</span> <span class="nv">launchOptions</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSObject</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">]?)</span> <span class="o">-></span> <span class="kt">Bool</span> <span class="p">{</span>
|
||||
<span class="o">...</span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">delegate</span> <span class="o">=</span> <span class="k">self</span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">alertType</span> <span class="o">=</span> <span class="o">.</span><span class="kt">None</span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">alertType</span> <span class="o">=</span> <span class="o">.</span><span class="k">none</span>
|
||||
<span class="o">...</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="kd">extension</span> <span class="kt">AppDelegate</span><span class="p">:</span> <span class="kt">SirenDelegate</span> <span class="p">{</span>
|
||||
<span class="c1">// Returns a localized message to this delegate method upon performing a successful version check</span>
|
||||
<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="p">{</span>
|
||||
<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">UpdateType</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nf">print</span><span class="p">(</span><span class="s">"</span><span class="se">\(</span><span class="n">message</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre>
|
||||
|
||||
<p>Siren will call the <code>sirenDidDetectNewVersionWithoutAlert(message: String)</code> delegate method, passing a localized, suggested update string suitable for display. Implement this method to display your own messaging, optionally using <code>message</code>.</p>
|
||||
<a href='#granular-version-update-management' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='granular-version-update-management'>Granular Version Update Management</h2>
|
||||
<h2 id='granular-version-update-management' class='heading'>Granular Version Update Management</h2>
|
||||
|
||||
<p>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 <em>optional</em> lines to your setup <em>before</em> calling the <code>checkVersion()</code> method:</p>
|
||||
<pre class="highlight swift"><code> <span class="cm">/* Siren defaults to SirenAlertType.Option for all updates */</span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">revisionUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">SirenAlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">patchUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">SirenAlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">minorUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">SirenAlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">majorUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">SirenAlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<pre class="highlight swift"><code> <span class="cm">/* Siren defaults to Siren.AlertType.option for all updates */</span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">revisionUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">Siren</span><span class="o">.</span><span class="kt">AlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">patchUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">Siren</span><span class="o">.</span><span class="kt">AlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">minorUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">Siren</span><span class="o">.</span><span class="kt">AlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<span class="n">siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">majorUpdateAlertType</span> <span class="o">=</span> <span class="o"><</span><span class="err">#</span><span class="kt">Siren</span><span class="o">.</span><span class="kt">AlertType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
</code></pre>
|
||||
<a href='#optional-delegate-and-delegate-methods' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='optional-delegate-and-delegate-methods'>Optional Delegate and Delegate Methods</h2>
|
||||
<h2 id='optional-delegate-and-delegate-methods' class='heading'>Optional Delegate and Delegate Methods</h2>
|
||||
|
||||
<p>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.</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="kd">class</span> <span class="p">{</span>
|
||||
<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">SirenAlertType</span><span class="p">)</span> <span class="c1">// User presented with update dialog</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span> <span class="c1">// User did click on button that launched App Store.app</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span> <span class="c1">// User did click on button that skips version update</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span> <span class="c1">// User did click on button that cancels update dialog</span>
|
||||
<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">NSError</span><span class="p">)</span> <span class="c1">// Siren failed to perform version check (may return system-level error)</span>
|
||||
<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="c1">// Siren performed version check and did not display alert</span>
|
||||
<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> <span class="p">{</span>
|
||||
<span class="c1">/// Siren performed version check and did not display alert.</span>
|
||||
<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">UpdateType</span><span class="p">)</span>
|
||||
|
||||
<span class="c1">/// Siren failed to perform version check.</span>
|
||||
<span class="c1">///</span>
|
||||
<span class="c1">/// - Note:</span>
|
||||
<span class="c1">/// Depending on the reason for failure,</span>
|
||||
<span class="c1">/// a system-level error may be returned.</span>
|
||||
<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>
|
||||
|
||||
<span class="c1">/// User presented with update dialog.</span>
|
||||
<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">Siren</span><span class="o">.</span><span class="kt">AlertType</span><span class="p">)</span>
|
||||
|
||||
<span class="c1">/// Siren performed a version check and latest version is installed.</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span>
|
||||
|
||||
<span class="c1">/// Provides the decoded JSON information from a successful version check call.</span>
|
||||
<span class="c1">///</span>
|
||||
<span class="c1">/// - SeeAlso:</span>
|
||||
<span class="c1">/// SirenLookupModel.swift</span>
|
||||
<span class="c1">///</span>
|
||||
<span class="c1">/// - Parameter lookupModel: The `Decodable` model representing the JSON results from the iTunes Lookup API.</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenNetworkCallDidReturnWithNewVersionInformation</span><span class="p">(</span><span class="nv">lookupModel</span><span class="p">:</span> <span class="kt">SirenLookupModel</span><span class="p">)</span>
|
||||
|
||||
<span class="c1">/// User did click on button that cancels update dialog.</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span>
|
||||
|
||||
<span class="c1">/// User did click on button that launched "App Store.app".</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span>
|
||||
|
||||
<span class="c1">/// User did click on button that skips version update.</span>
|
||||
<span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre>
|
||||
<a href='#localization' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='localization'>Localization</h2>
|
||||
<h2 id='localization' class='heading'>Localization</h2>
|
||||
|
||||
<p>Siren is localized for
|
||||
- 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</p>
|
||||
<p>Siren is localized for</p>
|
||||
|
||||
<ul>
|
||||
<li>Arabic</li>
|
||||
<li>Armenian</li>
|
||||
<li>Basque</li>
|
||||
<li>Chinese (Simplified and Traditional)</li>
|
||||
<li>Croatian</li>
|
||||
<li>Czech</li>
|
||||
<li>Danish</li>
|
||||
<li>Dutch</li>
|
||||
<li>English</li>
|
||||
<li>Estonian</li>
|
||||
<li>Finnish</li>
|
||||
<li>French</li>
|
||||
<li>German</li>
|
||||
<li>Greek</li>
|
||||
<li>Hebrew</li>
|
||||
<li>Hungarian</li>
|
||||
<li>Indonesian</li>
|
||||
<li>Italian</li>
|
||||
<li>Japanese</li>
|
||||
<li>Korean</li>
|
||||
<li>Latvian</li>
|
||||
<li>Lithuanian</li>
|
||||
<li>Malay</li>
|
||||
<li>Norwegian (Bokmål)</li>
|
||||
<li>Persian (Afghanistan, Iran, Persian)</li>
|
||||
<li>Polish</li>
|
||||
<li>Portuguese (Brazil and Portugal)</li>
|
||||
<li>Russian</li>
|
||||
<li>Serbian (Cyrillic and Latin)</li>
|
||||
<li>Slovenian</li>
|
||||
<li>Spanish</li>
|
||||
<li>Swedish</li>
|
||||
<li>Thai</li>
|
||||
<li>Turkish</li>
|
||||
<li>Ukrainian</li>
|
||||
<li>Urdu</li>
|
||||
<li>Vietnamese</li>
|
||||
</ul>
|
||||
|
||||
<p>You may want the update dialog to <em>always</em> appear in a certain language, ignoring iOS’s language setting (e.g. apps released in a specific country).</p>
|
||||
|
||||
<p>You can enable it like so:</p>
|
||||
<pre class="highlight swift"><code><span class="kt">Siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">forceLanguageLocalization</span> <span class="o">=</span> <span class="kt">SirenLanguageType</span><span class="o">.<</span><span class="err">#</span><span class="kt">SirenLanguageType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
<pre class="highlight swift"><code><span class="kt">Siren</span><span class="o">.</span><span class="n">shared</span><span class="o">.</span><span class="n">forceLanguageLocalization</span> <span class="o">=</span> <span class="kt">Siren</span><span class="o">.</span><span class="kt">LanguageType</span><span class="o">.<</span><span class="err">#</span><span class="kt">Siren</span><span class="o">.</span><span class="kt">LanguageType_Enum_Value</span><span class="err">#</span><span class="o">></span>
|
||||
</code></pre>
|
||||
<a href='#device-compatibility' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='device-compatibility'>Device Compatibility</h2>
|
||||
<h2 id='device-compatibility' class='heading'>Device Compatibility</h2>
|
||||
|
||||
<p>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 <em>false positive</em> case regarding app updating.</p>
|
||||
<a href='#testing-siren' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='testing-siren'>Testing Siren</h2>
|
||||
<p>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 10 installed on their device, but the app update requires iOS 11, an alert will not be shown. This takes care of the <em>false positive</em> case regarding app updating.</p>
|
||||
<h2 id='testing-siren' class='heading'>Testing Siren</h2>
|
||||
|
||||
<p>Temporarily change the version string in Xcode (within the <code>.xcodeproj</code>) 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.</p>
|
||||
|
||||
<p>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 <a href="https://itunes.apple.com/us/app/itunes-connect/id376771144?mt=8">iTunes Connect Mobile</a> app’s bundleID: <code>com.apple.itunesconnect.mobile</code>.</p>
|
||||
<p>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 <a href="https://itunes.apple.com/app/id1234793120">App Store Connect</a> app’s bundleID: <code>com.apple.AppStoreConnect</code>.</p>
|
||||
|
||||
<p>For your convenience, you may turn on debugging statements by setting <code>self.debugEnabled = true</code> before calling the <code>checkVersion()</code> method.</p>
|
||||
<a href='#app-store-submissions' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='app-store-submissions'>App Store Submissions</h2>
|
||||
<h2 id='app-store-submissions' class='heading'>App Store Submissions</h2>
|
||||
|
||||
<p>The App Store reviewer will <strong>not</strong> see the alert. The version in the App Store will always be older than the version being reviewed.</p>
|
||||
<a href='#words-of-caution' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='words-of-caution'>Words of Caution</h2>
|
||||
<h2 id='phased-releases' class='heading'>Phased Releases</h2>
|
||||
|
||||
<p>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 release, while no new binary is made available for download via the App Store. It is for this reason, I caution developers to not use the <code>Force</code> option unless you are controlling the <code>Force</code> option with a remote configuration file (e.g., enabling Siren remotely only after you have guaranteed that the app has propagated to the App Store).</p>
|
||||
<p>In 2017, Apple announced the <a href="https://itunespartner.apple.com/en/apps/faq/Managing%20Your%20Apps_Submission%20Process">ability to rollout app updates gradually (a.k.a. Phased Releases)</a>. Siren will continue to work as it has in the past, presenting an update modal to <em>all</em> users. If you opt-in to a phased rollout for a specific version, you have a few choices:</p>
|
||||
|
||||
<p>Also, in even rarer situations, the iTunes JSON may fluctuate between multiple versions of your app shortly after pushing out a new version. This is extremely rare, and has only been reported once in the five years that Siren and Harpy have been around.</p>
|
||||
<a href='#ports' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='ports'>Ports</h2>
|
||||
<ul>
|
||||
<li>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 from the App Store, Siren will ignore the phased rollout and will prompt users to update.</li>
|
||||
<li>You can set <code>showAlertAfterCurrentVersionHasBeenReleasedForDays</code> to <code>7</code>, and Siren will not prompt any users until the latest version is 7 days old, after phased rollout is complete.</li>
|
||||
<li>You can remotely disable Siren until the rollout is done using your own API / backend logic.</li>
|
||||
</ul>
|
||||
<h2 id='words-of-caution' class='heading'>Words of Caution</h2>
|
||||
|
||||
<p>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 1 day (24 hours) after the JSON has been updated to prompt the user to update. To change the default setting, please modify the value of <code>showAlertAfterCurrentVersionHasBeenReleasedForDays</code>.</p>
|
||||
<h2 id='ports' class='heading'>Ports</h2>
|
||||
|
||||
<ul>
|
||||
<li><strong>Objective-C (iOS)</strong>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://github.com/ArtSabintsev/Harpy"><strong>Harpy</strong></a></li>
|
||||
<li><a href="https://github.com/ArtSabintsev/Harpy"><strong>Harpy</strong></a></li>
|
||||
<li>Siren was ported <em>from</em> Harpy, as Siren and Harpy are maintained by the same developer.</li>
|
||||
</ul></li>
|
||||
<li><strong>Java (Android)</strong>
|
||||
@@ -319,15 +431,15 @@ func applicationWillEnterForeground(application: UIApplication) {
|
||||
<li>The Siren Swift library inspired the React Native library.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<a href='#created-and-maintained-by' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='created-and-maintained-by'>Created and maintained by</h2>
|
||||
<h2 id='created-and-maintained-by' class='heading'>Created and maintained by</h2>
|
||||
|
||||
<p><a href="http://www.sabintsev.com/">Arthur Ariel Sabintsev</a> & <a href="http://twitter.com/getaaron">Aaron Brager</a></p>
|
||||
<p><a href="http://www.sabintsev.com/">Arthur Ariel Sabintsev</a> & <a href="https://twitter.com/getaaron">Aaron Brager</a></p>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2015-2017 <a class="link" href="http://www.sabintsev.com" target="_blank" rel="external">Arthur Ariel Sabintsev</a></p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
<p>© 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-09-28)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,254 +1,44 @@
|
||||
{
|
||||
"warnings": [
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 514,
|
||||
"symbol": "Siren.LanguageType.Arabic",
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Models/SirenLookupModel.swift",
|
||||
"line": 13,
|
||||
"symbol": "SirenLookupModel",
|
||||
"symbol_kind": "source.lang.swift.decl.struct",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Protocols/SirenDelegate.swift",
|
||||
"line": 23,
|
||||
"symbol": "UpdateType.major",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 515,
|
||||
"symbol": "Siren.LanguageType.Armenian",
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Protocols/SirenDelegate.swift",
|
||||
"line": 24,
|
||||
"symbol": "UpdateType.minor",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 516,
|
||||
"symbol": "Siren.LanguageType.Basque",
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Protocols/SirenDelegate.swift",
|
||||
"line": 25,
|
||||
"symbol": "UpdateType.patch",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 517,
|
||||
"symbol": "Siren.LanguageType.ChineseSimplified",
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Protocols/SirenDelegate.swift",
|
||||
"line": 26,
|
||||
"symbol": "UpdateType.revision",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 518,
|
||||
"symbol": "Siren.LanguageType.ChineseTraditional",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 519,
|
||||
"symbol": "Siren.LanguageType.Croatian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 520,
|
||||
"symbol": "Siren.LanguageType.Danish",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 521,
|
||||
"symbol": "Siren.LanguageType.Dutch",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 522,
|
||||
"symbol": "Siren.LanguageType.English",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 523,
|
||||
"symbol": "Siren.LanguageType.Estonian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 524,
|
||||
"symbol": "Siren.LanguageType.Finnish",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 525,
|
||||
"symbol": "Siren.LanguageType.French",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 526,
|
||||
"symbol": "Siren.LanguageType.German",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 527,
|
||||
"symbol": "Siren.LanguageType.Greek",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 528,
|
||||
"symbol": "Siren.LanguageType.Hebrew",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 529,
|
||||
"symbol": "Siren.LanguageType.Hungarian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 530,
|
||||
"symbol": "Siren.LanguageType.Indonesian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 531,
|
||||
"symbol": "Siren.LanguageType.Italian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 532,
|
||||
"symbol": "Siren.LanguageType.Japanese",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 533,
|
||||
"symbol": "Siren.LanguageType.Korean",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 534,
|
||||
"symbol": "Siren.LanguageType.Latvian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 535,
|
||||
"symbol": "Siren.LanguageType.Lithuanian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 536,
|
||||
"symbol": "Siren.LanguageType.Malay",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 537,
|
||||
"symbol": "Siren.LanguageType.Norwegian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 538,
|
||||
"symbol": "Siren.LanguageType.Polish",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 539,
|
||||
"symbol": "Siren.LanguageType.PortugueseBrazil",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 540,
|
||||
"symbol": "Siren.LanguageType.PortuguesePortugal",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 541,
|
||||
"symbol": "Siren.LanguageType.Russian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 542,
|
||||
"symbol": "Siren.LanguageType.SerbianCyrillic",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 543,
|
||||
"symbol": "Siren.LanguageType.SerbianLatin",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 544,
|
||||
"symbol": "Siren.LanguageType.Slovenian",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 545,
|
||||
"symbol": "Siren.LanguageType.Spanish",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 546,
|
||||
"symbol": "Siren.LanguageType.Swedish",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 547,
|
||||
"symbol": "Siren.LanguageType.Thai",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 548,
|
||||
"symbol": "Siren.LanguageType.Turkish",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
},
|
||||
{
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift",
|
||||
"line": 549,
|
||||
"symbol": "Siren.LanguageType.Vietnamese",
|
||||
"file": "/Users/Arthur/Documents/oss/siren/Sources/Protocols/SirenDelegate.swift",
|
||||
"line": 27,
|
||||
"symbol": "UpdateType.unknown",
|
||||
"symbol_kind": "source.lang.swift.decl.enumelement",
|
||||
"warning": "undocumented"
|
||||
}
|
||||
|
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user