diff --git a/Gemfile.lock b/Gemfile.lock index 80be56a1..13cd63cb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,7 +7,7 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - claide (1.0.1) + claide (1.0.2) cocoapods (1.2.1) activesupport (>= 4.0.2, < 5) claide (>= 1.0.1, < 2.0) @@ -74,9 +74,9 @@ GEM thread_safe (~> 0.1) xcinvoke (0.3.0) liferaft (~> 0.0.6) - xcodeproj (1.4.4) + xcodeproj (1.5.0) CFPropertyList (~> 2.3.3) - claide (>= 1.0.1, < 2.0) + claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.2.3) @@ -88,4 +88,4 @@ DEPENDENCIES jazzy BUNDLED WITH - 1.14.6 + 1.15.1 diff --git a/Siren.podspec b/Siren.podspec index b77b5148..bfaf8190 100755 --- a/Siren.podspec +++ b/Siren.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "Siren" - s.version = "2.0.5" + s.version = "2.0.6" 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 diff --git a/docs/Classes.html b/docs/Classes.html index c7ec6d6e..df67a7ad 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -13,7 +13,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -105,7 +105,7 @@

Declaration

diff --git a/docs/Classes/Siren.html b/docs/Classes/Siren.html index 0f5aeb6c..3e645713 100644 --- a/docs/Classes/Siren.html +++ b/docs/Classes/Siren.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -113,14 +113,20 @@

Declaration

The SirenDelegate variable, which should be set if you’d like to be notified:

-

When a user views or interacts with the alert -- sirenDidShowUpdateDialog(alertType: AlertType) -- sirenUserDidLaunchAppStore() -- sirenUserDidSkipVersion() -- sirenUserDidCancel()

+

When a user views or interacts with the alert

-

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)

+ + +

When a new version has been detected, and you would like to present a localized message in a custom UI. use this delegate method:

+ +
@@ -539,7 +545,6 @@

Parameters

The frequency in days in which you want a check to be performed. Please refer to the Siren.VersionCheckType enum for more details.

-
@@ -646,7 +651,7 @@

Declaration

diff --git a/docs/Classes/Siren/AlertType.html b/docs/Classes/Siren/AlertType.html index 8d1c168d..63087954 100644 --- a/docs/Classes/Siren/AlertType.html +++ b/docs/Classes/Siren/AlertType.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -198,7 +198,7 @@

Declaration

diff --git a/docs/Classes/Siren/LanguageType.html b/docs/Classes/Siren/LanguageType.html index b997b99e..16212331 100644 --- a/docs/Classes/Siren/LanguageType.html +++ b/docs/Classes/Siren/LanguageType.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -258,6 +258,37 @@

Declaration

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
diff --git a/docs/Classes/Siren/VersionCheckType.html b/docs/Classes/Siren/VersionCheckType.html index cc07d7f3..7565278c 100644 --- a/docs/Classes/Siren/VersionCheckType.html +++ b/docs/Classes/Siren/VersionCheckType.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -166,7 +166,7 @@

Declaration

diff --git a/docs/Protocols.html b/docs/Protocols.html index 02a75f1c..68a57d52 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -13,7 +13,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -105,7 +105,7 @@

Declaration

diff --git a/docs/Protocols/SirenDelegate.html b/docs/Protocols/SirenDelegate.html index 837d50a5..2774f926 100644 --- a/docs/Protocols/SirenDelegate.html +++ b/docs/Protocols/SirenDelegate.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -315,7 +315,7 @@

Declaration

diff --git a/docs/badge.svg b/docs/badge.svg index 8cd259e0..89585b3c 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -1 +1 @@ -documentationdocumentation55%55% \ No newline at end of file +documentationdocumentation51%51% \ No newline at end of file diff --git a/docs/css/jazzy.css b/docs/css/jazzy.css index d6d65b7f..d6282826 100644 --- a/docs/css/jazzy.css +++ b/docs/css/jazzy.css @@ -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; } diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes.html index c7ec6d6e..df67a7ad 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes.html @@ -13,7 +13,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -105,7 +105,7 @@

Declaration

diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren.html index 0f5aeb6c..3e645713 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -113,14 +113,20 @@

Declaration

The SirenDelegate variable, which should be set if you’d like to be notified:

-

When a user views or interacts with the alert -- sirenDidShowUpdateDialog(alertType: AlertType) -- sirenUserDidLaunchAppStore() -- sirenUserDidSkipVersion() -- sirenUserDidCancel()

+

When a user views or interacts with the alert

-

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)

+ + +

When a new version has been detected, and you would like to present a localized message in a custom UI. use this delegate method:

+ +
@@ -539,7 +545,6 @@

Parameters

The frequency in days in which you want a check to be performed. Please refer to the Siren.VersionCheckType enum for more details.

-
@@ -646,7 +651,7 @@

Declaration

diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html index 8d1c168d..63087954 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -198,7 +198,7 @@

Declaration

diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html index b997b99e..16212331 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -258,6 +258,37 @@

Declaration

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html index cc07d7f3..7565278c 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -166,7 +166,7 @@

Declaration

diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols.html index 02a75f1c..68a57d52 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols.html @@ -13,7 +13,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -105,7 +105,7 @@

Declaration

diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html index 837d50a5..2774f926 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html @@ -14,7 +14,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -315,7 +315,7 @@

Declaration

diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/Siren.docset/Contents/Resources/Documents/css/jazzy.css index d6d65b7f..d6282826 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/css/jazzy.css +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/css/jazzy.css @@ -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; } diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/index.html b/docs/docsets/Siren.docset/Contents/Resources/Documents/index.html index 319456d9..cc4d305c 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/index.html @@ -13,7 +13,7 @@
-

Siren Docs (55% documented)

+

Siren Docs (51% documented)

View on GitHub

@@ -58,10 +58,10 @@
-

Siren

-

Notify users when a new version of your app is available and prompt them to upgrade.

-

BuddyBuild CocoaPods Carthage Compatible SwiftPM Compatible CocoaPods CocoaPods

-

Table of Contents

+

Siren 🚨

+

Notify users when a new version of your app is available and prompt them to upgrade.

+

BuddyBuild CocoaPods Carthage Compatible SwiftPM Compatible CocoaPods CocoaPods

+

Table of Contents

-

- Attribution

-

About

+

- Attribution

+

About

Siren checks a user’s currently installed version of your iOS app against the version that is currently available in the App Store.

@@ -94,64 +95,63 @@
  • Siren is actively maintained by Arthur Sabintsev and Aaron Brager
  • -

    README Translations

    +

    README Translations

    -

    Features

    +

    Features

    -

    Screenshots

    +

    Screenshots

    -

    Installation Instructions

    -

    CocoaPods

    +

    Installation Instructions

    +

    CocoaPods

    -

    For Swift 3 support: -ruby -pod 'Siren' -

    +

    For Swift 3 support:

    +
    pod 'Siren'
    +
    -

    For Swift 2.3 support: -ruby -pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3' -

    +

    For Swift 4 support:

    +
    pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift4'
    +
    -

    For Swift 2.2 support: -ruby -pod 'Siren', '0.9.5' -

    -

    Carthage

    +

    For Swift 2.3 support:

    +
    pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3' 
    +
    +

    Carthage

    For Swift 3 support:

    github "ArtSabintsev/Siren"
     
    -

    For Swift 2.3 support:

    -
    github "ArtSabintsev/Siren" "swift2.3"
    +

    For Swift 4 support:

    +
    github "ArtSabintsev/Siren", "swift4"
     
    -

    Swift Package Manager

    +
    github "ArtSabintsev/Siren", "swift2.3"
    +
    +

    Swift Package Manager

    .Package(url: "https://github.com/ArtSabintsev/Siren.git", majorVersion: 2)
     
    -

    Example Code

    +

    Example Code

    Below is some commented sample code. Adapt this to meet your app’s needs.

    @@ -162,15 +162,15 @@ // 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 - // Replace .Immediately with .Daily or .Weekly to specify a maximum daily or weekly frequency for version checks. + // Replace .immediately with .daily or .weekly to specify a maximum daily or weekly frequency for version checks. siren.checkVersion(checkType: .immediately) return true @@ -178,7 +178,7 @@ 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(_:). */ @@ -187,10 +187,10 @@ 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,13 +198,13 @@

    And you’re all set!

    -

    Prompting for Updates without Alerts

    +

    Prompting for Updates without Alerts

    Some developers may want to display a less obtrusive custom interface, like a banner or small icon. To accomplish this, you can disable alert presentation by doing the following:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
         ...
         siren.delegate = self
    -    siren.alertType = .None
    +    siren.alertType = .none
         ...
     }
     
    @@ -217,20 +217,20 @@
     

    Siren will call the sirenDidDetectNewVersionWithoutAlert(message: String) delegate method, passing a localized, suggested update string suitable for display. Implement this method to display your own messaging, optionally using message.

    -

    Granular Version Update Management

    +

    Granular Version Update Management

    If you would like to set a different type of alert for revision, patch, minor, and/or major updates, simply add one or all of the following optional lines to your setup before calling the checkVersion() method:

    -
        /* Siren defaults to SirenAlertType.Option for all updates */
    -    siren.shared.revisionUpdateAlertType = <#SirenAlertType_Enum_Value#>
    -    siren.shared.patchUpdateAlertType = <#SirenAlertType_Enum_Value#>
    -    siren.shared.minorUpdateAlertType = <#SirenAlertType_Enum_Value#>
    -    siren.shared.majorUpdateAlertType = <#SirenAlertType_Enum_Value#>
    +
        /* Siren defaults to Siren.AlertType.option for all updates */
    +    siren.shared.revisionUpdateAlertType = <#Siren.AlertType_Enum_Value#>
    +    siren.shared.patchUpdateAlertType = <#Siren.AlertType_Enum_Value#>
    +    siren.shared.minorUpdateAlertType = <#Siren.AlertType_Enum_Value#>
    +    siren.shared.majorUpdateAlertType = <#Siren.AlertType_Enum_Value#>
     
    -

    Optional Delegate and Delegate Methods

    +

    Optional Delegate and Delegate Methods

    Six delegate methods allow you to handle or track the user’s behavior. Each method has a default, empty implementation, effectively making each of these methods optional.

    public protocol SirenDelegate: class {
    -    func sirenDidShowUpdateDialog(alertType: SirenAlertType)   // User presented with update dialog
    +    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
    @@ -238,66 +238,74 @@
         func sirenDidDetectNewVersionWithoutAlert(message: String) // Siren performed version check and did not display alert
     }
     
    -

    Localization

    - -

    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

    +

    Localization

    + +

    Siren is localized for

    + +
      +
    • Arabic
    • +
    • Armenian
    • +
    • Basque
    • +
    • Chinese (Simplified and Traditional)
    • +
    • Croatian
    • +
    • Czech
    • +
    • Danish
    • +
    • Dutch
    • +
    • English
    • +
    • Estonian
    • +
    • Finnish
    • +
    • French
    • +
    • German
    • +
    • Greek
    • +
    • Hebrew
    • +
    • Hungarian
    • +
    • Indonesian
    • +
    • Italian
    • +
    • Japanese
    • +
    • Korean
    • +
    • Latvian
    • +
    • Lithuanian
    • +
    • Malay
    • +
    • Norwegian (Bokmål)
    • +
    • Persian (Afghanistan, Iran, Persian)
    • +
    • Polish
    • +
    • Portuguese (Brazil and Portugal)
    • +
    • Russian
    • +
    • Serbian (Cyrillic and Latin)
    • +
    • Slovenian
    • +
    • Spanish
    • +
    • Swedish
    • +
    • Thai
    • +
    • Turkish
    • +
    • Urdu
    • +
    • Vietnamese
    • +

    You may want the update dialog to always appear in a certain language, ignoring iOS’s language setting (e.g. apps released in a specific country).

    You can enable it like so:

    -
    Siren.shared.forceLanguageLocalization = SirenLanguageType.<#SirenLanguageType_Enum_Value#>
    +
    Siren.shared.forceLanguageLocalization = Siren.LanguageType.<#Siren.LanguageType_Enum_Value#>
     
    -

    Device Compatibility

    +

    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.

    -

    Testing Siren

    +

    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 app’s bundleID: com.apple.itunesconnect.mobile.

    For your convenience, you may turn on debugging statements by setting self.debugEnabled = true before calling the checkVersion() method.

    -

    App Store Submissions

    +

    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.

    -

    Words of Caution

    +

    Phased Releases

    -

    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 Force option unless you are controlling the Force 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).

    +

    In 2017, Apple announced the ability to rollout app updates gradually (a.k.a. Phased Releases). 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 will need to remotely disable Siren until the rollout is done.

    +

    Words of Caution

    -

    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.

    -

    Ports

    +

    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.

    +

    Ports

    • Objective-C (iOS) @@ -319,7 +327,7 @@
    • The Siren Swift library inspired the React Native library.
    -

    Created and maintained by

    +

    Created and maintained by

    Arthur Ariel Sabintsev & Aaron Brager

    @@ -327,7 +335,7 @@
    diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/search.json b/docs/docsets/Siren.docset/Contents/Resources/Documents/search.json index 7459b68f..f5e628ab 100644 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Siren.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_":{"name":"sirenDidShowUpdateDialog(alertType:)","abstract":"

    User presented with update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_":{"name":"sirenUserDidLaunchAppStore()","abstract":"

    User did click on button that launched App Store.app.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_":{"name":"sirenUserDidSkipVersion()","abstract":"

    User did click on button that skips version update.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_":{"name":"sirenUserDidCancel()","abstract":"

    User did click on button that cancels update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_":{"name":"sirenDidFailVersionCheck(error:)","abstract":"

    Siren failed to perform version check (may return system-level error).

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_":{"name":"sirenDidDetectNewVersionWithoutAlert(message:)","abstract":"

    Siren performed version check and did not display alert.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_":{"name":"sirenLatestVersionInstalled()","abstract":"

    Siren performed version check and latest version is installed.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html":{"name":"SirenDelegate","abstract":"

    Delegate that handles all codepaths for Siren upon version check completion.

    "},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6ArabicFMS1_S1_":{"name":"Arabic","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8ArmenianFMS1_S1_":{"name":"Armenian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6BasqueFMS1_S1_":{"name":"Basque","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType17ChineseSimplifiedFMS1_S1_":{"name":"ChineseSimplified","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18ChineseTraditionalFMS1_S1_":{"name":"ChineseTraditional","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8CroatianFMS1_S1_":{"name":"Croatian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6DanishFMS1_S1_":{"name":"Danish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5DutchFMS1_S1_":{"name":"Dutch","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7EnglishFMS1_S1_":{"name":"English","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8EstonianFMS1_S1_":{"name":"Estonian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7FinnishFMS1_S1_":{"name":"Finnish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6FrenchFMS1_S1_":{"name":"French","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6GermanFMS1_S1_":{"name":"German","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5GreekFMS1_S1_":{"name":"Greek","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6HebrewFMS1_S1_":{"name":"Hebrew","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9HungarianFMS1_S1_":{"name":"Hungarian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10IndonesianFMS1_S1_":{"name":"Indonesian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7ItalianFMS1_S1_":{"name":"Italian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8JapaneseFMS1_S1_":{"name":"Japanese","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6KoreanFMS1_S1_":{"name":"Korean","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7LatvianFMS1_S1_":{"name":"Latvian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10LithuanianFMS1_S1_":{"name":"Lithuanian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5MalayFMS1_S1_":{"name":"Malay","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9NorwegianFMS1_S1_":{"name":"Norwegian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6PolishFMS1_S1_":{"name":"Polish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType16PortugueseBrazilFMS1_S1_":{"name":"PortugueseBrazil","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18PortuguesePortugalFMS1_S1_":{"name":"PortuguesePortugal","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7RussianFMS1_S1_":{"name":"Russian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType15SerbianCyrillicFMS1_S1_":{"name":"SerbianCyrillic","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType12SerbianLatinFMS1_S1_":{"name":"SerbianLatin","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9SlovenianFMS1_S1_":{"name":"Slovenian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SpanishFMS1_S1_":{"name":"Spanish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SwedishFMS1_S1_":{"name":"Swedish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType4ThaiFMS1_S1_":{"name":"Thai","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7TurkishFMS1_S1_":{"name":"Turkish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10VietnameseFMS1_S1_":{"name":"Vietnamese","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_":{"name":"immediately","abstract":"

    Version check performed every time the app is launched.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_":{"name":"daily","abstract":"

    Version check performed once a day.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_":{"name":"weekly","abstract":"

    Version check performed once a week.

    ","parent_name":"VersionCheckType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_":{"name":"force","abstract":"

    Forces user to update your app (1 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType6optionFMS1_S1_":{"name":"option","abstract":"

    (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4skipFMS1_S1_":{"name":"skip","abstract":"

    Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4noneFMS1_S1_":{"name":"none","abstract":"

    Doesn’t show the alert, but instead returns a localized message","parent_name":"AlertType"},"Classes/Siren.html#/s:vC5Siren5Siren16SirenErrorDomainSS":{"name":"SirenErrorDomain","abstract":"

    The error domain for all errors created by Siren.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__":{"name":"delegate","abstract":"

    The SirenDelegate variable, which should be set if you’d like to be notified:

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren12debugEnabledSb":{"name":"debugEnabled","abstract":"

    The debug flag, which is disabled by default.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren9alertTypeOS0_9AlertType":{"name":"alertType","abstract":"

    Determines the type of alert that should be shown.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType":{"name":"majorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for major version updates: A.b.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType":{"name":"minorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor version updates: a.B.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType":{"name":"patchUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor patch updates: a.b.C","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType":{"name":"revisionUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for revision updates: a.b.c.D","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren7appNameSS":{"name":"appName","abstract":"

    The name of your app.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren11countryCodeGSqSS_":{"name":"countryCode","abstract":"

    The region or country of an App Store in which your app is available.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_":{"name":"forceLanguageLocalization","abstract":"

    Overrides the default localization of a user’s device when presenting the update message and button titles in the alert.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_":{"name":"alertControllerTintColor","abstract":"

    Overrides the tint color for UIAlertController.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi":{"name":"showAlertAfterCurrentVersionHasBeenReleasedForDays","abstract":"

    When this is set, the alert will only show up if the current version has already been released for X days","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_":{"name":"currentAppStoreVersion","abstract":"

    The current version of your app that is available for download on the App Store

    ","parent_name":"Siren"},"Classes/Siren.html#/s:ZvC5Siren5Siren6sharedS0_":{"name":"shared","abstract":"

    The App’s Singleton

    ","parent_name":"Siren"},"Classes/Siren.html#/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_":{"name":"checkVersion(checkType:)","abstract":"

    Checks the currently installed version of your app against the App Store.","parent_name":"Siren"},"Classes/Siren/AlertType.html":{"name":"AlertType","abstract":"

    Determines the type of alert to present after a successful version check has been performed.

    ","parent_name":"Siren"},"Classes/Siren/VersionCheckType.html":{"name":"VersionCheckType","abstract":"

    Determines the frequency in which the the version check is performed and the user is prompted to update the app.

    ","parent_name":"Siren"},"Classes/Siren/LanguageType.html":{"name":"LanguageType","abstract":"

    Determines the available languages in which the update message and alert button titles should appear.

    ","parent_name":"Siren"},"Classes/Siren.html":{"name":"Siren","abstract":"

    The Siren Class. A singleton that is initialized using the shared() method.

    "},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."}} \ No newline at end of file +{"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_":{"name":"sirenDidShowUpdateDialog(alertType:)","abstract":"

    User presented with update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_":{"name":"sirenUserDidLaunchAppStore()","abstract":"

    User did click on button that launched App Store.app.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_":{"name":"sirenUserDidSkipVersion()","abstract":"

    User did click on button that skips version update.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_":{"name":"sirenUserDidCancel()","abstract":"

    User did click on button that cancels update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_":{"name":"sirenDidFailVersionCheck(error:)","abstract":"

    Siren failed to perform version check (may return system-level error).

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_":{"name":"sirenDidDetectNewVersionWithoutAlert(message:)","abstract":"

    Siren performed version check and did not display alert.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_":{"name":"sirenLatestVersionInstalled()","abstract":"

    Siren performed version check and latest version is installed.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html":{"name":"SirenDelegate","abstract":"

    Delegate that handles all codepaths for Siren upon version check completion.

    "},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6ArabicFMS1_S1_":{"name":"Arabic","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8ArmenianFMS1_S1_":{"name":"Armenian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6BasqueFMS1_S1_":{"name":"Basque","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType17ChineseSimplifiedFMS1_S1_":{"name":"ChineseSimplified","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18ChineseTraditionalFMS1_S1_":{"name":"ChineseTraditional","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8CroatianFMS1_S1_":{"name":"Croatian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5CzechFMS1_S1_":{"name":"Czech","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6DanishFMS1_S1_":{"name":"Danish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5DutchFMS1_S1_":{"name":"Dutch","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7EnglishFMS1_S1_":{"name":"English","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8EstonianFMS1_S1_":{"name":"Estonian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7FinnishFMS1_S1_":{"name":"Finnish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6FrenchFMS1_S1_":{"name":"French","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6GermanFMS1_S1_":{"name":"German","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5GreekFMS1_S1_":{"name":"Greek","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6HebrewFMS1_S1_":{"name":"Hebrew","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9HungarianFMS1_S1_":{"name":"Hungarian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10IndonesianFMS1_S1_":{"name":"Indonesian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7ItalianFMS1_S1_":{"name":"Italian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8JapaneseFMS1_S1_":{"name":"Japanese","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6KoreanFMS1_S1_":{"name":"Korean","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7LatvianFMS1_S1_":{"name":"Latvian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10LithuanianFMS1_S1_":{"name":"Lithuanian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5MalayFMS1_S1_":{"name":"Malay","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9NorwegianFMS1_S1_":{"name":"Norwegian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7PersianFMS1_S1_":{"name":"Persian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18PersianAfghanistanFMS1_S1_":{"name":"PersianAfghanistan","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType11PersianIranFMS1_S1_":{"name":"PersianIran","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6PolishFMS1_S1_":{"name":"Polish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType16PortugueseBrazilFMS1_S1_":{"name":"PortugueseBrazil","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18PortuguesePortugalFMS1_S1_":{"name":"PortuguesePortugal","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7RussianFMS1_S1_":{"name":"Russian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType15SerbianCyrillicFMS1_S1_":{"name":"SerbianCyrillic","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType12SerbianLatinFMS1_S1_":{"name":"SerbianLatin","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9SlovenianFMS1_S1_":{"name":"Slovenian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SpanishFMS1_S1_":{"name":"Spanish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SwedishFMS1_S1_":{"name":"Swedish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType4ThaiFMS1_S1_":{"name":"Thai","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7TurkishFMS1_S1_":{"name":"Turkish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType4UrduFMS1_S1_":{"name":"Urdu","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10VietnameseFMS1_S1_":{"name":"Vietnamese","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_":{"name":"immediately","abstract":"

    Version check performed every time the app is launched.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_":{"name":"daily","abstract":"

    Version check performed once a day.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_":{"name":"weekly","abstract":"

    Version check performed once a week.

    ","parent_name":"VersionCheckType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_":{"name":"force","abstract":"

    Forces user to update your app (1 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType6optionFMS1_S1_":{"name":"option","abstract":"

    (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4skipFMS1_S1_":{"name":"skip","abstract":"

    Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4noneFMS1_S1_":{"name":"none","abstract":"

    Doesn’t show the alert, but instead returns a localized message","parent_name":"AlertType"},"Classes/Siren.html#/s:vC5Siren5Siren16SirenErrorDomainSS":{"name":"SirenErrorDomain","abstract":"

    The error domain for all errors created by Siren.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__":{"name":"delegate","abstract":"

    The SirenDelegate variable, which should be set if you’d like to be notified:

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren12debugEnabledSb":{"name":"debugEnabled","abstract":"

    The debug flag, which is disabled by default.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren9alertTypeOS0_9AlertType":{"name":"alertType","abstract":"

    Determines the type of alert that should be shown.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType":{"name":"majorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for major version updates: A.b.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType":{"name":"minorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor version updates: a.B.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType":{"name":"patchUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor patch updates: a.b.C","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType":{"name":"revisionUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for revision updates: a.b.c.D","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren7appNameSS":{"name":"appName","abstract":"

    The name of your app.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren11countryCodeGSqSS_":{"name":"countryCode","abstract":"

    The region or country of an App Store in which your app is available.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_":{"name":"forceLanguageLocalization","abstract":"

    Overrides the default localization of a user’s device when presenting the update message and button titles in the alert.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_":{"name":"alertControllerTintColor","abstract":"

    Overrides the tint color for UIAlertController.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi":{"name":"showAlertAfterCurrentVersionHasBeenReleasedForDays","abstract":"

    When this is set, the alert will only show up if the current version has already been released for X days","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_":{"name":"currentAppStoreVersion","abstract":"

    The current version of your app that is available for download on the App Store

    ","parent_name":"Siren"},"Classes/Siren.html#/s:ZvC5Siren5Siren6sharedS0_":{"name":"shared","abstract":"

    The App’s Singleton

    ","parent_name":"Siren"},"Classes/Siren.html#/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_":{"name":"checkVersion(checkType:)","abstract":"

    Checks the currently installed version of your app against the App Store.","parent_name":"Siren"},"Classes/Siren/AlertType.html":{"name":"AlertType","abstract":"

    Determines the type of alert to present after a successful version check has been performed.

    ","parent_name":"Siren"},"Classes/Siren/VersionCheckType.html":{"name":"VersionCheckType","abstract":"

    Determines the frequency in which the the version check is performed and the user is prompted to update the app.

    ","parent_name":"Siren"},"Classes/Siren/LanguageType.html":{"name":"LanguageType","abstract":"

    Determines the available languages in which the update message and alert button titles should appear.

    ","parent_name":"Siren"},"Classes/Siren.html":{"name":"Siren","abstract":"

    The Siren Class. A singleton that is initialized using the shared() method.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/Siren.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/Siren.docset/Contents/Resources/Documents/undocumented.json deleted file mode 100644 index 9fb26c89..00000000 --- a/docs/docsets/Siren.docset/Contents/Resources/Documents/undocumented.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "warnings": [ - { - "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", - "line": 514, - "symbol": "Siren.LanguageType.Arabic", - "symbol_kind": "source.lang.swift.decl.enumelement", - "warning": "undocumented" - }, - { - "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", - "line": 515, - "symbol": "Siren.LanguageType.Armenian", - "symbol_kind": "source.lang.swift.decl.enumelement", - "warning": "undocumented" - }, - { - "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", - "line": 516, - "symbol": "Siren.LanguageType.Basque", - "symbol_kind": "source.lang.swift.decl.enumelement", - "warning": "undocumented" - }, - { - "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", - "line": 517, - "symbol": "Siren.LanguageType.ChineseSimplified", - "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", - "symbol_kind": "source.lang.swift.decl.enumelement", - "warning": "undocumented" - } - ], - "source_directory": "/Users/Arthur/Documents/oss/siren" -} \ No newline at end of file diff --git a/docs/docsets/Siren.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Siren.docset/Contents/Resources/docSet.dsidx index 2122937e..c2fdd051 100644 Binary files a/docs/docsets/Siren.docset/Contents/Resources/docSet.dsidx and b/docs/docsets/Siren.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/Siren.tgz b/docs/docsets/Siren.tgz index 16486114..156f74fb 100644 Binary files a/docs/docsets/Siren.tgz and b/docs/docsets/Siren.tgz differ diff --git a/docs/index.html b/docs/index.html index 319456d9..cc4d305c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -13,7 +13,7 @@
    -

    Siren Docs (55% documented)

    +

    Siren Docs (51% documented)

    View on GitHub

    @@ -58,10 +58,10 @@
    -

    Siren

    -

    Notify users when a new version of your app is available and prompt them to upgrade.

    -

    BuddyBuild CocoaPods Carthage Compatible SwiftPM Compatible CocoaPods CocoaPods

    -

    Table of Contents

    +

    Siren 🚨

    +

    Notify users when a new version of your app is available and prompt them to upgrade.

    +

    BuddyBuild CocoaPods Carthage Compatible SwiftPM Compatible CocoaPods CocoaPods

    +

    Table of Contents

    -

    - Attribution

    -

    About

    +

    - Attribution

    +

    About

    Siren checks a user’s currently installed version of your iOS app against the version that is currently available in the App Store.

    @@ -94,64 +95,63 @@
  • Siren is actively maintained by Arthur Sabintsev and Aaron Brager
  • -

    README Translations

    +

    README Translations

    -

    Features

    +

    Features

    -

    Screenshots

    +

    Screenshots

    • The left picture forces the user to update the app.
    • The center picture gives the user the option to update the app.
    • The right picture gives the user the option to skip the current update.
    • -
    • These options are controlled by the SirenAlertType enum.
    • +
    • These options are controlled by the Siren.AlertType enum.

    -

    Installation Instructions

    -

    CocoaPods

    +

    Installation Instructions

    +

    CocoaPods

    -

    For Swift 3 support: -ruby -pod 'Siren' -

    +

    For Swift 3 support:

    +
    pod 'Siren'
    +
    -

    For Swift 2.3 support: -ruby -pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3' -

    +

    For Swift 4 support:

    +
    pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift4'
    +
    -

    For Swift 2.2 support: -ruby -pod 'Siren', '0.9.5' -

    -

    Carthage

    +

    For Swift 2.3 support:

    +
    pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3' 
    +
    +

    Carthage

    For Swift 3 support:

    github "ArtSabintsev/Siren"
     
    -

    For Swift 2.3 support:

    -
    github "ArtSabintsev/Siren" "swift2.3"
    +

    For Swift 4 support:

    +
    github "ArtSabintsev/Siren", "swift4"
     
    -

    Swift Package Manager

    +
    github "ArtSabintsev/Siren", "swift2.3"
    +
    +

    Swift Package Manager

    .Package(url: "https://github.com/ArtSabintsev/Siren.git", majorVersion: 2)
     
    -

    Example Code

    +

    Example Code

    Below is some commented sample code. Adapt this to meet your app’s needs.

    @@ -162,15 +162,15 @@ // 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 - // Replace .Immediately with .Daily or .Weekly to specify a maximum daily or weekly frequency for version checks. + // Replace .immediately with .daily or .weekly to specify a maximum daily or weekly frequency for version checks. siren.checkVersion(checkType: .immediately) return true @@ -178,7 +178,7 @@ 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(_:). */ @@ -187,10 +187,10 @@ 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,13 +198,13 @@

    And you’re all set!

    -

    Prompting for Updates without Alerts

    +

    Prompting for Updates without Alerts

    Some developers may want to display a less obtrusive custom interface, like a banner or small icon. To accomplish this, you can disable alert presentation by doing the following:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
         ...
         siren.delegate = self
    -    siren.alertType = .None
    +    siren.alertType = .none
         ...
     }
     
    @@ -217,20 +217,20 @@
     

    Siren will call the sirenDidDetectNewVersionWithoutAlert(message: String) delegate method, passing a localized, suggested update string suitable for display. Implement this method to display your own messaging, optionally using message.

    -

    Granular Version Update Management

    +

    Granular Version Update Management

    If you would like to set a different type of alert for revision, patch, minor, and/or major updates, simply add one or all of the following optional lines to your setup before calling the checkVersion() method:

    -
        /* Siren defaults to SirenAlertType.Option for all updates */
    -    siren.shared.revisionUpdateAlertType = <#SirenAlertType_Enum_Value#>
    -    siren.shared.patchUpdateAlertType = <#SirenAlertType_Enum_Value#>
    -    siren.shared.minorUpdateAlertType = <#SirenAlertType_Enum_Value#>
    -    siren.shared.majorUpdateAlertType = <#SirenAlertType_Enum_Value#>
    +
        /* Siren defaults to Siren.AlertType.option for all updates */
    +    siren.shared.revisionUpdateAlertType = <#Siren.AlertType_Enum_Value#>
    +    siren.shared.patchUpdateAlertType = <#Siren.AlertType_Enum_Value#>
    +    siren.shared.minorUpdateAlertType = <#Siren.AlertType_Enum_Value#>
    +    siren.shared.majorUpdateAlertType = <#Siren.AlertType_Enum_Value#>
     
    -

    Optional Delegate and Delegate Methods

    +

    Optional Delegate and Delegate Methods

    Six delegate methods allow you to handle or track the user’s behavior. Each method has a default, empty implementation, effectively making each of these methods optional.

    public protocol SirenDelegate: class {
    -    func sirenDidShowUpdateDialog(alertType: SirenAlertType)   // User presented with update dialog
    +    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
    @@ -238,66 +238,74 @@
         func sirenDidDetectNewVersionWithoutAlert(message: String) // Siren performed version check and did not display alert
     }
     
    -

    Localization

    - -

    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

    +

    Localization

    + +

    Siren is localized for

    + +
      +
    • Arabic
    • +
    • Armenian
    • +
    • Basque
    • +
    • Chinese (Simplified and Traditional)
    • +
    • Croatian
    • +
    • Czech
    • +
    • Danish
    • +
    • Dutch
    • +
    • English
    • +
    • Estonian
    • +
    • Finnish
    • +
    • French
    • +
    • German
    • +
    • Greek
    • +
    • Hebrew
    • +
    • Hungarian
    • +
    • Indonesian
    • +
    • Italian
    • +
    • Japanese
    • +
    • Korean
    • +
    • Latvian
    • +
    • Lithuanian
    • +
    • Malay
    • +
    • Norwegian (Bokmål)
    • +
    • Persian (Afghanistan, Iran, Persian)
    • +
    • Polish
    • +
    • Portuguese (Brazil and Portugal)
    • +
    • Russian
    • +
    • Serbian (Cyrillic and Latin)
    • +
    • Slovenian
    • +
    • Spanish
    • +
    • Swedish
    • +
    • Thai
    • +
    • Turkish
    • +
    • Urdu
    • +
    • Vietnamese
    • +

    You may want the update dialog to always appear in a certain language, ignoring iOS’s language setting (e.g. apps released in a specific country).

    You can enable it like so:

    -
    Siren.shared.forceLanguageLocalization = SirenLanguageType.<#SirenLanguageType_Enum_Value#>
    +
    Siren.shared.forceLanguageLocalization = Siren.LanguageType.<#Siren.LanguageType_Enum_Value#>
     
    -

    Device Compatibility

    +

    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.

    -

    Testing Siren

    +

    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 app’s bundleID: com.apple.itunesconnect.mobile.

    For your convenience, you may turn on debugging statements by setting self.debugEnabled = true before calling the checkVersion() method.

    -

    App Store Submissions

    +

    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.

    -

    Words of Caution

    +

    Phased Releases

    -

    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 Force option unless you are controlling the Force 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).

    +

    In 2017, Apple announced the ability to rollout app updates gradually (a.k.a. Phased Releases). 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 will need to remotely disable Siren until the rollout is done.

    +

    Words of Caution

    -

    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.

    -

    Ports

    +

    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.

    +

    Ports

    • Objective-C (iOS) @@ -319,7 +327,7 @@
    • The Siren Swift library inspired the React Native library.
    -

    Created and maintained by

    +

    Created and maintained by

    Arthur Ariel Sabintsev & Aaron Brager

    @@ -327,7 +335,7 @@
    diff --git a/docs/search.json b/docs/search.json index 7459b68f..f5e628ab 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_":{"name":"sirenDidShowUpdateDialog(alertType:)","abstract":"

    User presented with update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_":{"name":"sirenUserDidLaunchAppStore()","abstract":"

    User did click on button that launched App Store.app.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_":{"name":"sirenUserDidSkipVersion()","abstract":"

    User did click on button that skips version update.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_":{"name":"sirenUserDidCancel()","abstract":"

    User did click on button that cancels update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_":{"name":"sirenDidFailVersionCheck(error:)","abstract":"

    Siren failed to perform version check (may return system-level error).

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_":{"name":"sirenDidDetectNewVersionWithoutAlert(message:)","abstract":"

    Siren performed version check and did not display alert.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_":{"name":"sirenLatestVersionInstalled()","abstract":"

    Siren performed version check and latest version is installed.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html":{"name":"SirenDelegate","abstract":"

    Delegate that handles all codepaths for Siren upon version check completion.

    "},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6ArabicFMS1_S1_":{"name":"Arabic","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8ArmenianFMS1_S1_":{"name":"Armenian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6BasqueFMS1_S1_":{"name":"Basque","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType17ChineseSimplifiedFMS1_S1_":{"name":"ChineseSimplified","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18ChineseTraditionalFMS1_S1_":{"name":"ChineseTraditional","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8CroatianFMS1_S1_":{"name":"Croatian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6DanishFMS1_S1_":{"name":"Danish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5DutchFMS1_S1_":{"name":"Dutch","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7EnglishFMS1_S1_":{"name":"English","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8EstonianFMS1_S1_":{"name":"Estonian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7FinnishFMS1_S1_":{"name":"Finnish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6FrenchFMS1_S1_":{"name":"French","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6GermanFMS1_S1_":{"name":"German","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5GreekFMS1_S1_":{"name":"Greek","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6HebrewFMS1_S1_":{"name":"Hebrew","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9HungarianFMS1_S1_":{"name":"Hungarian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10IndonesianFMS1_S1_":{"name":"Indonesian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7ItalianFMS1_S1_":{"name":"Italian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8JapaneseFMS1_S1_":{"name":"Japanese","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6KoreanFMS1_S1_":{"name":"Korean","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7LatvianFMS1_S1_":{"name":"Latvian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10LithuanianFMS1_S1_":{"name":"Lithuanian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5MalayFMS1_S1_":{"name":"Malay","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9NorwegianFMS1_S1_":{"name":"Norwegian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6PolishFMS1_S1_":{"name":"Polish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType16PortugueseBrazilFMS1_S1_":{"name":"PortugueseBrazil","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18PortuguesePortugalFMS1_S1_":{"name":"PortuguesePortugal","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7RussianFMS1_S1_":{"name":"Russian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType15SerbianCyrillicFMS1_S1_":{"name":"SerbianCyrillic","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType12SerbianLatinFMS1_S1_":{"name":"SerbianLatin","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9SlovenianFMS1_S1_":{"name":"Slovenian","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SpanishFMS1_S1_":{"name":"Spanish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SwedishFMS1_S1_":{"name":"Swedish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType4ThaiFMS1_S1_":{"name":"Thai","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7TurkishFMS1_S1_":{"name":"Turkish","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10VietnameseFMS1_S1_":{"name":"Vietnamese","abstract":"Undocumented","parent_name":"LanguageType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_":{"name":"immediately","abstract":"

    Version check performed every time the app is launched.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_":{"name":"daily","abstract":"

    Version check performed once a day.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_":{"name":"weekly","abstract":"

    Version check performed once a week.

    ","parent_name":"VersionCheckType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_":{"name":"force","abstract":"

    Forces user to update your app (1 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType6optionFMS1_S1_":{"name":"option","abstract":"

    (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4skipFMS1_S1_":{"name":"skip","abstract":"

    Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4noneFMS1_S1_":{"name":"none","abstract":"

    Doesn’t show the alert, but instead returns a localized message","parent_name":"AlertType"},"Classes/Siren.html#/s:vC5Siren5Siren16SirenErrorDomainSS":{"name":"SirenErrorDomain","abstract":"

    The error domain for all errors created by Siren.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__":{"name":"delegate","abstract":"

    The SirenDelegate variable, which should be set if you’d like to be notified:

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren12debugEnabledSb":{"name":"debugEnabled","abstract":"

    The debug flag, which is disabled by default.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren9alertTypeOS0_9AlertType":{"name":"alertType","abstract":"

    Determines the type of alert that should be shown.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType":{"name":"majorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for major version updates: A.b.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType":{"name":"minorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor version updates: a.B.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType":{"name":"patchUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor patch updates: a.b.C","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType":{"name":"revisionUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for revision updates: a.b.c.D","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren7appNameSS":{"name":"appName","abstract":"

    The name of your app.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren11countryCodeGSqSS_":{"name":"countryCode","abstract":"

    The region or country of an App Store in which your app is available.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_":{"name":"forceLanguageLocalization","abstract":"

    Overrides the default localization of a user’s device when presenting the update message and button titles in the alert.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_":{"name":"alertControllerTintColor","abstract":"

    Overrides the tint color for UIAlertController.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi":{"name":"showAlertAfterCurrentVersionHasBeenReleasedForDays","abstract":"

    When this is set, the alert will only show up if the current version has already been released for X days","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_":{"name":"currentAppStoreVersion","abstract":"

    The current version of your app that is available for download on the App Store

    ","parent_name":"Siren"},"Classes/Siren.html#/s:ZvC5Siren5Siren6sharedS0_":{"name":"shared","abstract":"

    The App’s Singleton

    ","parent_name":"Siren"},"Classes/Siren.html#/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_":{"name":"checkVersion(checkType:)","abstract":"

    Checks the currently installed version of your app against the App Store.","parent_name":"Siren"},"Classes/Siren/AlertType.html":{"name":"AlertType","abstract":"

    Determines the type of alert to present after a successful version check has been performed.

    ","parent_name":"Siren"},"Classes/Siren/VersionCheckType.html":{"name":"VersionCheckType","abstract":"

    Determines the frequency in which the the version check is performed and the user is prompted to update the app.

    ","parent_name":"Siren"},"Classes/Siren/LanguageType.html":{"name":"LanguageType","abstract":"

    Determines the available languages in which the update message and alert button titles should appear.

    ","parent_name":"Siren"},"Classes/Siren.html":{"name":"Siren","abstract":"

    The Siren Class. A singleton that is initialized using the shared() method.

    "},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."}} \ No newline at end of file +{"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidShowUpdateDialogFT9alertTypeOCS_5Siren9AlertType_T_":{"name":"sirenDidShowUpdateDialog(alertType:)","abstract":"

    User presented with update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate26sirenUserDidLaunchAppStoreFT_T_":{"name":"sirenUserDidLaunchAppStore()","abstract":"

    User did click on button that launched App Store.app.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate23sirenUserDidSkipVersionFT_T_":{"name":"sirenUserDidSkipVersion()","abstract":"

    User did click on button that skips version update.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate18sirenUserDidCancelFT_T_":{"name":"sirenUserDidCancel()","abstract":"

    User did click on button that cancels update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate24sirenDidFailVersionCheckFT5errorCSo7NSError_T_":{"name":"sirenDidFailVersionCheck(error:)","abstract":"

    Siren failed to perform version check (may return system-level error).

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate36sirenDidDetectNewVersionWithoutAlertFT7messageSS_T_":{"name":"sirenDidDetectNewVersionWithoutAlert(message:)","abstract":"

    Siren performed version check and did not display alert.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:FP5Siren13SirenDelegate27sirenLatestVersionInstalledFT_T_":{"name":"sirenLatestVersionInstalled()","abstract":"

    Siren performed version check and latest version is installed.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html":{"name":"SirenDelegate","abstract":"

    Delegate that handles all codepaths for Siren upon version check completion.

    "},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6ArabicFMS1_S1_":{"name":"Arabic","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8ArmenianFMS1_S1_":{"name":"Armenian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6BasqueFMS1_S1_":{"name":"Basque","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType17ChineseSimplifiedFMS1_S1_":{"name":"ChineseSimplified","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18ChineseTraditionalFMS1_S1_":{"name":"ChineseTraditional","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8CroatianFMS1_S1_":{"name":"Croatian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5CzechFMS1_S1_":{"name":"Czech","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6DanishFMS1_S1_":{"name":"Danish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5DutchFMS1_S1_":{"name":"Dutch","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7EnglishFMS1_S1_":{"name":"English","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8EstonianFMS1_S1_":{"name":"Estonian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7FinnishFMS1_S1_":{"name":"Finnish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6FrenchFMS1_S1_":{"name":"French","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6GermanFMS1_S1_":{"name":"German","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5GreekFMS1_S1_":{"name":"Greek","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6HebrewFMS1_S1_":{"name":"Hebrew","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9HungarianFMS1_S1_":{"name":"Hungarian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10IndonesianFMS1_S1_":{"name":"Indonesian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7ItalianFMS1_S1_":{"name":"Italian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType8JapaneseFMS1_S1_":{"name":"Japanese","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6KoreanFMS1_S1_":{"name":"Korean","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7LatvianFMS1_S1_":{"name":"Latvian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10LithuanianFMS1_S1_":{"name":"Lithuanian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType5MalayFMS1_S1_":{"name":"Malay","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9NorwegianFMS1_S1_":{"name":"Norwegian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7PersianFMS1_S1_":{"name":"Persian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18PersianAfghanistanFMS1_S1_":{"name":"PersianAfghanistan","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType11PersianIranFMS1_S1_":{"name":"PersianIran","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType6PolishFMS1_S1_":{"name":"Polish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType16PortugueseBrazilFMS1_S1_":{"name":"PortugueseBrazil","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType18PortuguesePortugalFMS1_S1_":{"name":"PortuguesePortugal","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7RussianFMS1_S1_":{"name":"Russian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType15SerbianCyrillicFMS1_S1_":{"name":"SerbianCyrillic","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType12SerbianLatinFMS1_S1_":{"name":"SerbianLatin","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType9SlovenianFMS1_S1_":{"name":"Slovenian","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SpanishFMS1_S1_":{"name":"Spanish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7SwedishFMS1_S1_":{"name":"Swedish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType4ThaiFMS1_S1_":{"name":"Thai","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType7TurkishFMS1_S1_":{"name":"Turkish","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType4UrduFMS1_S1_":{"name":"Urdu","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:FOC5Siren5Siren12LanguageType10VietnameseFMS1_S1_":{"name":"Vietnamese","abstract":"

    Undocumented

    ","parent_name":"LanguageType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType11immediatelyFMS1_S1_":{"name":"immediately","abstract":"

    Version check performed every time the app is launched.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType5dailyFMS1_S1_":{"name":"daily","abstract":"

    Version check performed once a day.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:FOC5Siren5Siren16VersionCheckType6weeklyFMS1_S1_":{"name":"weekly","abstract":"

    Version check performed once a week.

    ","parent_name":"VersionCheckType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType5forceFMS1_S1_":{"name":"force","abstract":"

    Forces user to update your app (1 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType6optionFMS1_S1_":{"name":"option","abstract":"

    (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4skipFMS1_S1_":{"name":"skip","abstract":"

    Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:FOC5Siren5Siren9AlertType4noneFMS1_S1_":{"name":"none","abstract":"

    Doesn’t show the alert, but instead returns a localized message","parent_name":"AlertType"},"Classes/Siren.html#/s:vC5Siren5Siren16SirenErrorDomainSS":{"name":"SirenErrorDomain","abstract":"

    The error domain for all errors created by Siren.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren8delegateXwGSqPS_13SirenDelegate__":{"name":"delegate","abstract":"

    The SirenDelegate variable, which should be set if you’d like to be notified:

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren12debugEnabledSb":{"name":"debugEnabled","abstract":"

    The debug flag, which is disabled by default.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren9alertTypeOS0_9AlertType":{"name":"alertType","abstract":"

    Determines the type of alert that should be shown.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20majorUpdateAlertTypeOS0_9AlertType":{"name":"majorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for major version updates: A.b.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20minorUpdateAlertTypeOS0_9AlertType":{"name":"minorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor version updates: a.B.c","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren20patchUpdateAlertTypeOS0_9AlertType":{"name":"patchUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor patch updates: a.b.C","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren23revisionUpdateAlertTypeOS0_9AlertType":{"name":"revisionUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for revision updates: a.b.c.D","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren7appNameSS":{"name":"appName","abstract":"

    The name of your app.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren11countryCodeGSqSS_":{"name":"countryCode","abstract":"

    The region or country of an App Store in which your app is available.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren25forceLanguageLocalizationGSqOS0_12LanguageType_":{"name":"forceLanguageLocalization","abstract":"

    Overrides the default localization of a user’s device when presenting the update message and button titles in the alert.","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren24alertControllerTintColorGSqCSo7UIColor_":{"name":"alertControllerTintColor","abstract":"

    Overrides the tint color for UIAlertController.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren50showAlertAfterCurrentVersionHasBeenReleasedForDaysSi":{"name":"showAlertAfterCurrentVersionHasBeenReleasedForDays","abstract":"

    When this is set, the alert will only show up if the current version has already been released for X days","parent_name":"Siren"},"Classes/Siren.html#/s:vC5Siren5Siren22currentAppStoreVersionGSqSS_":{"name":"currentAppStoreVersion","abstract":"

    The current version of your app that is available for download on the App Store

    ","parent_name":"Siren"},"Classes/Siren.html#/s:ZvC5Siren5Siren6sharedS0_":{"name":"shared","abstract":"

    The App’s Singleton

    ","parent_name":"Siren"},"Classes/Siren.html#/s:FC5Siren5Siren12checkVersionFT9checkTypeOS0_16VersionCheckType_T_":{"name":"checkVersion(checkType:)","abstract":"

    Checks the currently installed version of your app against the App Store.","parent_name":"Siren"},"Classes/Siren/AlertType.html":{"name":"AlertType","abstract":"

    Determines the type of alert to present after a successful version check has been performed.

    ","parent_name":"Siren"},"Classes/Siren/VersionCheckType.html":{"name":"VersionCheckType","abstract":"

    Determines the frequency in which the the version check is performed and the user is prompted to update the app.

    ","parent_name":"Siren"},"Classes/Siren/LanguageType.html":{"name":"LanguageType","abstract":"

    Determines the available languages in which the update message and alert button titles should appear.

    ","parent_name":"Siren"},"Classes/Siren.html":{"name":"Siren","abstract":"

    The Siren Class. A singleton that is initialized using the shared() method.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 9fb26c89..e455e6c6 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -45,209 +45,244 @@ { "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", "line": 520, - "symbol": "Siren.LanguageType.Danish", + "symbol": "Siren.LanguageType.Czech", "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": "Siren.LanguageType.Danish", "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": "Siren.LanguageType.Dutch", "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": "Siren.LanguageType.English", "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": "Siren.LanguageType.Estonian", "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": "Siren.LanguageType.Finnish", "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": "Siren.LanguageType.French", "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": "Siren.LanguageType.German", "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": "Siren.LanguageType.Greek", "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": "Siren.LanguageType.Hebrew", "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": "Siren.LanguageType.Hungarian", "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": "Siren.LanguageType.Indonesian", "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": "Siren.LanguageType.Italian", "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": "Siren.LanguageType.Japanese", "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": "Siren.LanguageType.Korean", "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": "Siren.LanguageType.Latvian", "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": "Siren.LanguageType.Lithuanian", "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": "Siren.LanguageType.Malay", "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": "Siren.LanguageType.Norwegian", "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": "Siren.LanguageType.Persian", "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": "Siren.LanguageType.PersianAfghanistan", "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": "Siren.LanguageType.PersianIran", "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": "Siren.LanguageType.Polish", "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": "Siren.LanguageType.PortugueseBrazil", "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": "Siren.LanguageType.PortuguesePortugal", "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": "Siren.LanguageType.Russian", "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": "Siren.LanguageType.SerbianCyrillic", "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": "Siren.LanguageType.SerbianLatin", "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": "Siren.LanguageType.Slovenian", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", "line": 549, + "symbol": "Siren.LanguageType.Spanish", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", + "line": 550, + "symbol": "Siren.LanguageType.Swedish", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", + "line": 551, + "symbol": "Siren.LanguageType.Thai", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", + "line": 552, + "symbol": "Siren.LanguageType.Turkish", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", + "line": 553, + "symbol": "Siren.LanguageType.Urdu", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/Arthur/Documents/oss/siren/Sources/Siren.swift", + "line": 554, "symbol": "Siren.LanguageType.Vietnamese", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented"