Compare commits

...

161 Commits

Author SHA1 Message Date
Arthur Ariel Sabintsev 6139af3394 Updated podspec 2024-05-04 20:22:58 -04:00
Steve Spigarelli b034739065 Add PrivacyInfo (#422)
Close #420 in favor of #422.
2024-05-04 20:21:14 -04:00
Arthur Ariel Sabintsev e410ed0cbc Update README.md 2023-12-29 20:22:58 -05:00
Arthur Sabintsev dfee0e0e29 Upped podspec 2023-05-17 14:38:53 -04:00
Arthur Sabintsev 6129b57d39 Upped version 2023-05-17 14:31:31 -04:00
blerdfoniqi 0ac904cd51 Adds support for iOS 13 (#411) 2023-05-17 14:20:23 -04:00
Arthur Sabintsev 9b675a8f92 Updated API manager comments and version in Siren 2022-09-20 22:40:00 -04:00
wwwbbat 399e1bfec2 Modify APIManager to make it possible to customize a bundleID. (#404) 2022-09-20 22:34:25 -04:00
Alex Burgel ec892ae746 Ignore skipped versions when using AlertType.force (#405)
fixes #402
2022-09-20 22:29:15 -04:00
Sandro 3bd7b595fb Fixed 'try' must precede 'await' (#400) 2022-06-25 21:35:36 -04:00
Arthur Sabintsev 3d8c83c720 Updated readme 2022-06-02 00:14:12 -04:00
Arthur Sabintsev 466e70236c Removed Gemfiles as cocoapods is now installed via homebrew 2022-06-02 00:13:42 -04:00
Arthur Sabintsev 0fba2a6954 Updated gems 2022-06-02 00:03:39 -04:00
Arthur Sabintsev 8afe1fe943 Updated podspec 2022-06-02 00:02:26 -04:00
Arthur Sabintsev fa7308fdd9 Fixed swiftlint issues 2022-06-02 00:01:53 -04:00
Arthur Sabintsev f7568b6c16 updated vars 2022-06-01 23:48:56 -04:00
Arthur Sabintsev 12d7ba2960 Fixed async compilation issue 2022-06-01 23:45:05 -04:00
Arthur Sabintsev 0325de208a Updated pods 2022-06-01 23:41:49 -04:00
Seokmin bb1fa6fa5c Update dialog can't appear bug (#397)
* Update dialog can't appear bug

Problem
1. Check update as .onForeground (Siren.shared.wail(performCheck: .onForeground))
2. If user swipe down the notification center screen to the bottom of screen (by swiping downward from the very top of the device's screen)
3. And back to app can't appear update dialog

Reason
If swipe down the notification center screen to the bottom of screen
iOS call observer like this
1. starting to swipe down : willResignActiveNotification
2. reached to bottom : didBecomeActiveNotification, willResignActiveNotification

* Update Siren.swift

* Null safety and don't hardcode

The delay time what to consider is it called by notification center screen to bottom become constant
And appDidBecomeActiveWorkItem is used null safety

Co-authored-by: seokmin <jsm@dio.co.kr>
2022-06-01 23:35:22 -04:00
Arthur Sabintsev e3bb33873d Updated podspec 2022-05-19 20:59:19 -04:00
Arthur Sabintsev 4eb08279ac Fixed croation localization. Fixed testing target 2022-05-19 20:55:28 -04:00
dependabot[bot] eb70823f96 Bump cocoapods-downloader from 1.4.0 to 1.6.3 (#392) 2022-04-12 12:35:18 -04:00
Arthur Sabintsev e92ab66220 Updated sample project to facebook 2022-03-23 20:41:28 -04:00
Arthur Sabintsev c265763d25 Updated Siren.podspec 2022-03-23 20:16:35 -04:00
Arthur Sabintsev 3f31c97fc9 Updated comments 2022-03-23 20:14:31 -04:00
Kien Nguyen 609f1653a4 Add lang parameter to APIManager (#391)
Co-authored-by: kientux <kiennt@sapo.vn>
2022-03-23 19:43:49 -04:00
Arthur Sabintsev 07babd6e36 Minor changes to APIManager 2021-09-17 01:00:05 -04:00
Arthur Ariel Sabintsev 8ed72c71c4 iOS 15 Support (#375)
* Updated to latest version of Swift compatible with iOS 15

* Updated docs

* Updated package manager meta files

* Update README.md

* Minor changes

* Minor changes with Xcode 13 RC

* Re ran pod install on sample proj

* Updated readme
2021-09-17 00:50:06 -04:00
dependabot[bot] 05cd85c479 Bump addressable from 2.7.0 to 2.8.0 (#372)
Bumps [addressable](https://github.com/sporkmonger/addressable) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/sporkmonger/addressable/releases)
- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sporkmonger/addressable/compare/addressable-2.7.0...addressable-2.8.0)

---
updated-dependencies:
- dependency-name: addressable
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-22 15:02:46 -04:00
Arthur Sabintsev d8009d69dd Updated meta 2021-05-30 17:52:09 -04:00
Arthur Sabintsev 9173fc5297 Bumped to 5.8.1 2021-01-18 23:43:09 -05:00
Arthur Sabintsev bc4d6aa47a Fixed test target 2021-01-18 23:42:42 -05:00
Hamza Öztürk 64e0b73c3a Update SirenLocalizable.strings (#361) 2021-01-18 23:41:12 -05:00
Arthur Sabintsev a35be9ee2d Updated readme 2021-01-16 20:45:46 -05:00
Arthur Sabintsev f10f6928a3 Updated min version to 13. Added tvos support 2021-01-16 20:44:37 -05:00
Matt Freiburg 380f79053e Add tvOS 13 to if available checks in Presentation Manager (#360)
* Add tvOS 13 to if available checks

* Add queryItem for tvOS App Store

* Move inline tvOS Query parameter strings to Constants struct
2021-01-16 20:37:03 -05:00
Arthur Sabintsev 3197a6dc30 Ypdated swiftlint.yml 2020-12-29 15:34:09 -05:00
Arthur Sabintsev a5f51af7eb Update pod settings 2020-12-29 15:33:33 -05:00
Arthur Sabintsev 3a5a357834 Updated gemfile 2020-12-23 09:37:57 -05:00
Arthur Sabintsev 2f80f8dce2 Updated Bundle extension to be simpler 2020-12-21 11:16:11 -05:00
Arthur Sabintsev 2fa31da639 Updated project 2020-12-21 08:52:25 -05:00
Arthur Sabintsev d137dabe69 Update lockfile 2020-12-21 08:45:59 -05:00
Arthur Sabintsev c563cf5a61 Update Podspec 2020-12-21 08:44:03 -05:00
Arthur Sabintsev 308e1061c8 Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2020-12-21 08:38:03 -05:00
Arthur Ariel Sabintsev 2cffe34e2c Fix Swift PM 5.3 Resource Bundle Migration (#358)
* Updated lockfile

* Updated package.swift

* Updated package.swift

* Updated BundleExtension

* Minified Package.swift file
2020-12-21 08:37:55 -05:00
Arthur Sabintsev 60968544ab Updated lockfile 2020-11-23 14:25:42 -05:00
Arthur Sabintsev 51b08a20c3 Updated podspec 2020-11-22 20:27:12 -05:00
Harlan Kellaway 6eb57bcdee Add missing AppStoreCountry values (#355)
Co-authored-by: Harlan Kellaway <hkellaway@users.noreply.github.com>
2020-11-22 18:36:09 -05:00
Arthur Ariel Sabintsev 6d40521756 Update README.md 2020-11-22 14:40:54 -05:00
Arthur Sabintsev 20a4a58b37 Updated to modern gitignore 2020-11-22 13:31:24 -05:00
Arthur Sabintsev 2490dc04db Modifications to .travis.yml 2020-11-22 08:09:41 -05:00
Arthur Ariel Sabintsev 9275cc2794 Update README.md 2020-11-22 07:59:51 -05:00
Arthur Sabintsev 336413447b Adjusted travis.yml file 2020-11-22 00:08:49 -05:00
Arthur Sabintsev d8d4bd8f1c Updated README 2020-11-22 00:07:23 -05:00
Arthur Sabintsev b5cc26d007 Fixed schemes 2020-11-22 00:01:34 -05:00
Arthur Sabintsev 5816cf245a Version bump 2020-11-21 23:40:27 -05:00
Arthur Sabintsev d546163f54 Removed FUNDING.yml 2020-11-21 22:10:05 -05:00
Arthur Sabintsev a165a13abd remove docs 2020-11-21 22:08:49 -05:00
Arthur Sabintsev bf49eeb464 Docs are now in html 2020-11-21 22:07:08 -05:00
Arthur Sabintsev 42ab71be3c Removed bundle/config 2020-11-21 22:02:30 -05:00
Arthur Sabintsev dc1bb6b058 Updated travis yml 2020-11-21 21:35:52 -05:00
Arthur Sabintsev 9bb7a43b72 Renamed again to revert github issue 2020-11-21 21:12:28 -05:00
Arthur Sabintsev ef8272aa0e Renamed to fix a github cache issue 2020-11-21 21:12:19 -05:00
Arthur Sabintsev d8b9283143 Updated docs 2020-11-21 21:11:48 -05:00
Arthur Sabintsev a8ffb6b410 Re-added how gems are installed 2020-11-21 21:11:02 -05:00
Arthur Sabintsev 4dc392f964 Added docs 2020-11-21 20:56:05 -05:00
Arthur Sabintsev 36fb52a574 Minor changes to structure of repo 2020-11-21 20:55:19 -05:00
Arthur Sabintsev 994e44b4fd Deleted out of date docs. Updated other metadata 2020-11-21 20:53:15 -05:00
Arthur Sabintsev 3340418fba Updated Gems 2020-11-21 20:38:06 -05:00
Arthur Sabintsev d655412b7c Fixed Example project 2020-11-21 20:28:24 -05:00
Arthur Sabintsev 90a052c920 Fixed Example project 2020-11-21 20:27:34 -05:00
Arthur Sabintsev 723f73f371 Fixed Example project 2020-11-21 20:27:16 -05:00
Arthur Sabintsev 784ef62967 Updated sample project. Removed Carthage support. Updated Readme 2020-11-21 14:36:44 -05:00
Arthur Ariel Sabintsev 5680814481 Minor spacing change 2020-11-21 13:30:00 -05:00
Arthur Ariel Sabintsev 4b96af4cfc Project-level updates + AppStoreCountry updates 2020-11-21 13:22:30 -05:00
Harlan Kellaway 48cc0e53d8 Type for App Store country (#352)
* Structured type for AppStore country

* Example usage of AppStoreCountry

* Add all App Store country codes

Co-authored-by: Harlan Kellaway <hkellaway@users.noreply.github.com>
2020-11-20 23:11:31 -05:00
Arthur Ariel Sabintsev 1f6ae4635d Removed iOS 13-specific code that's no longer needed or was never working in SirenVC 2020-10-31 08:40:54 -04:00
Arthur Ariel Sabintsev eeb186481e Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2020-09-20 23:37:10 -04:00
Arthur Ariel Sabintsev aade02d4f6 Update README.md 2020-09-20 23:35:30 -04:00
Arthur Ariel Sabintsev 8a0dd7378a Updated podspec 2020-09-20 23:34:31 -04:00
Arthur Ariel Sabintsev 94d8ffb70f Adds missing state to scene management (#348) 2020-09-20 23:33:24 -04:00
Arthur Ariel Sabintsev a24b0ba657 Updated podspec 2020-07-20 20:15:30 -04:00
Danil Shkarupin 9ec4235c67 Fixed case when system notification is shown when trying to show Siren alert (#342)
* Fixed for case when system notification is shown when trying to show Siren alert

* Made Siren alert window optional for cases when app does not have a foreground scene

Co-authored-by: Danil Shkarupin <shkarupinde@spb.psbank.ru>
2020-07-20 20:14:39 -04:00
Arthur Ariel Sabintsev 918dac71d3 Update README.md 2020-06-14 23:35:54 -04:00
Arthur Ariel Sabintsev e99df968fb Update README.md 2020-06-14 23:32:33 -04:00
Arthur Ariel Sabintsev ce5312f8c8 Updated Package.swift 2020-06-14 23:31:19 -04:00
Arthur Ariel Sabintsev 4430cdd272 Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2020-06-14 23:31:03 -04:00
Arthur Ariel Sabintsev b96dfe3790 Update README.md 2020-06-14 23:30:34 -04:00
Arthur Ariel Sabintsev 1a37f10ef2 Update manifest file 2020-06-13 15:58:39 -04:00
Arthur Ariel Sabintsev c0f7d2375c Updated manifest 2020-06-13 15:29:17 -04:00
Arthur Ariel Sabintsev bb8a8c91cf Updated package.swift 2020-06-12 14:29:51 -04:00
Arthur Ariel Sabintsev 323887c21b Updated Package.swift and manifest 2020-06-12 13:44:31 -04:00
Arthur Ariel Sabintsev d828943e4d Updated package.swift 2020-06-12 12:34:36 -04:00
Arthur Ariel Sabintsev c3eb837d8f Updated manifest...again 2020-06-12 12:20:36 -04:00
Arthur Ariel Sabintsev 4198ad9e89 Updated podspec 2020-06-12 12:17:12 -04:00
Arthur Ariel Sabintsev 69092ff70c Update Package.swift 2020-06-12 12:15:20 -04:00
Arthur Ariel Sabintsev df8f8338b3 Updated Package.swift 2020-06-12 10:57:42 -04:00
Arthur Ariel Sabintsev f44a06cd32 Reverted swift-tools-version 2020-06-12 10:54:01 -04:00
Arthur Ariel Sabintsev 68e60f490b Updated manifest 2020-06-12 10:53:03 -04:00
Arthur Ariel Sabintsev 84ece2335f e-updated Package.swift 2020-06-12 10:50:23 -04:00
Arthur Ariel Sabintsev c607fa72f3 Addressed default swift version issue on clone 2020-06-12 10:46:53 -04:00
Arthur Ariel Sabintsev 2f3ed12e00 Addressed default swift version issue on clone 2020-06-12 10:46:41 -04:00
Arthur Ariel Sabintsev dc9b8bbba4 updated podspec 2020-06-12 10:39:46 -04:00
Arthur Ariel Sabintsev 1b95580ad8 Updated plist 2020-06-12 10:29:12 -04:00
Arthur Ariel Sabintsev d9322bdb4f Updated manifest 2020-06-12 10:26:00 -04:00
Arthur Ariel Sabintsev 434e0cd2a0 Updated manifest 2020-06-12 10:22:35 -04:00
Arthur Ariel Sabintsev 2140c28398 Updated manifest 2020-06-12 10:22:29 -04:00
Arthur Ariel Sabintsev b901930ce5 Minor fixes with respect to Xcode 11.5 2020-06-05 08:37:36 -04:00
Arthur Ariel Sabintsev 90fcde1221 Formatting fixes 2020-04-25 15:54:59 -04:00
Arthur Ariel Sabintsev 357afb22ab Removed unnecessary self. references 2020-03-16 21:59:22 -04:00
Arthur Ariel Sabintsev 93e0f66020 Update README.md 2020-03-05 23:30:11 -05:00
Arthur Ariel Sabintsev 7c952267e8 Create FUNDING.yml 2020-02-21 19:22:06 -05:00
Arthur Ariel Sabintsev 7fc6777d3d Bumped podspec to 5.4.0 2020-02-19 23:28:10 -05:00
Giorgio Fiderio ca3559cd93 Delay updaterWindow creation in the PresentationManager (#327) 2020-02-19 23:26:23 -05:00
Arthur Ariel Sabintsev 3c7d06eac0 Revert "Updated README and sample project to support changes found in 5.3.0. Closes #326"
This reverts commit c62c16f1b9.
2020-02-18 09:40:34 -05:00
Arthur Ariel Sabintsev c62c16f1b9 Updated README and sample project to support changes found in 5.3.0. Closes #326 2020-02-15 20:19:53 -05:00
Arthur Ariel Sabintsev 32de6efe8b Updated podspec 2020-02-10 21:02:09 -05:00
Arthur Ariel Sabintsev acfbf2a2d5 Enabled scenes and fixes warning 2020-02-10 21:01:45 -05:00
kisaha00 ad967116cb Fix Create UIWindow (#325) 2020-02-10 21:00:05 -05:00
Arthur Ariel Sabintsev c114526eb8 Cleaning up project hierarchy 2019-12-04 21:30:42 -05:00
Arthur Ariel Sabintsev 70ad233b78 Updated podspec 2019-10-12 09:55:34 -04:00
Arthur Ariel Sabintsev 2b3c9c067d Potential fix for unblocking the UI in iOS 13 (#314)
* Potential fix for unblocking the UI in iOS 13

* Potential fix for layered alert/window issue
2019-10-12 09:52:47 -04:00
Arthur Ariel Sabintsev 6bd43afc0c Updated podspec 2019-10-06 21:19:06 -04:00
Arthur Ariel Sabintsev be49cd82ff Moved alertAction logic to happen after cleanup, which hopefully solves the iOS 13 multiple alert layering issue 2019-10-06 21:18:45 -04:00
Arthur Ariel Sabintsev 06994a9408 Update README.md 2019-10-03 09:29:13 -04:00
Arthur Ariel Sabintsev dc787a23d7 Update ISSUE_TEMPLATE.md 2019-09-18 16:15:00 -04:00
Arthur Ariel Sabintsev a1d30353df Removed misplaced generic call 2019-09-15 07:51:46 -04:00
Arthur Ariel Sabintsev b19712d8da Update README.md 2019-09-15 00:48:11 -04:00
Arthur Ariel Sabintsev 245fec5abc Merge branch 'master' of https://github.com/ArtSabintsev/Siren 2019-09-15 00:37:28 -04:00
Arthur Ariel Sabintsev 34683f71fb Updated docs 2019-09-15 00:37:23 -04:00
Arthur Ariel Sabintsev 251c186ff3 Update README.md 2019-09-15 00:17:35 -04:00
Arthur Ariel Sabintsev 5b18c1606c Update README.md 2019-09-15 00:11:50 -04:00
Arthur Ariel Sabintsev e1257d9eb6 Updated gem lockfile 2019-09-15 00:02:20 -04:00
Arthur Ariel Sabintsev 516e368e82 Updated docs 2019-09-14 23:51:28 -04:00
Arthur Ariel Sabintsev de01c00d2e Update README.md 2019-09-14 23:48:01 -04:00
Arthur Ariel Sabintsev eb278bc030 Update README.md 2019-09-14 23:47:31 -04:00
Arthur Ariel Sabintsev 367092af09 Xcode 11 / iOS 13 / Swift 5.1 Support (#306)
* Updated package.swift

* Added support for UIScene notifications

* Updated Package.swift

* Updated travis yml for forthcoming xcode11

* Fixed up notifications

* More consolidation of methods

* Updated podspec
2019-09-14 23:43:19 -04:00
Arthur Ariel Sabintsev ef6d9ffa42 Updated package.swift 2019-09-08 10:20:14 -04:00
Arthur Ariel Sabintsev 3375ae2552 Updated podspec 2019-09-02 21:18:03 -04:00
Arthur Ariel Sabintsev 234d558b31 Fixed romanian localization 2019-09-02 21:17:48 -04:00
Arthur Ariel Sabintsev 3ff9fff4c4 Changed smaple project 2019-08-29 08:27:01 -04:00
Arthur Ariel Sabintsev 7b2f451643 Added Romanian language localization. Closes #302. 2019-08-29 08:26:28 -04:00
Arthur Ariel Sabintsev eee3edc923 Update README.md 2019-08-20 20:46:19 -04:00
Arthur Ariel Sabintsev d59fbf6e5f Updated Jazzy Docs 2019-08-17 20:19:18 -04:00
Stavros Schizas f042d70762 Fix misspell words (#301) 2019-08-17 20:18:00 -04:00
Arthur Ariel Sabintsev a034d842de Updated podspec 2019-08-07 21:45:37 -04:00
Arthur Ariel Sabintsev 7470bcd720 Updated Gemfiles 2019-08-07 21:22:00 -04:00
Arthur Ariel Sabintsev 47b0b5381e Updated Package.swift 2019-08-07 21:20:29 -04:00
Arthur Ariel Sabintsev 5ef05950ed Update README.md 2019-07-02 21:32:39 -04:00
Arthur Ariel Sabintsev 84e728d65c Simplified docs to only show public API 2019-07-02 21:24:42 -04:00
Arthur Ariel Sabintsev dcfe7df5ea Removed @objcMembers. 2019-06-26 07:18:11 -04:00
Arthur Ariel Sabintsev a759b4b947 Siren.swift is now visible to Objective-C 2019-06-04 22:04:43 -04:00
Arthur Ariel Sabintsev 5f70d96b2c Updated Gemfile 2019-05-29 21:44:47 -04:00
Arthur Ariel Sabintsev f9bc4dfb4f Update Gemfile 2019-05-14 22:13:52 -04:00
Arthur Ariel Sabintsev 6947b485a5 Updated posepc 2019-05-14 21:29:11 -04:00
Arthur Ariel Sabintsev cb1febdaf3 Fixed same version bug found in #288 (#289)
* Fixed bug found in #288

* Adds throwable function to handle same version error

* Updates docs
2019-05-14 21:28:44 -04:00
Arthur Ariel Sabintsev 2284e63c36 Updated docs 2019-04-24 16:25:18 -04:00
Arthur Ariel Sabintsev af16cbbe20 Update .travis.yml 2019-04-22 16:34:48 -04:00
Arthur Ariel Sabintsev 38f6d9d1b5 Update .travis.yml 2019-04-22 16:10:50 -04:00
Arthur Ariel Sabintsev f9abb391d0 Update README.md 2019-04-19 08:22:51 -04:00
Arthur Ariel Sabintsev a22230707a Update travis.yml file 2019-04-16 21:32:52 -04:00
284 changed files with 2844 additions and 60435 deletions
+1 -1
View File
@@ -1 +1 @@
docs/* linguist-vendored
Docs/* linguist-vendored
+5 -5
View File
@@ -1,4 +1,4 @@
# If you're experiencing a problem integrating Siren into your app, please provide the following information when posting a new issue:
## If you're experiencing a problem integrating Siren into your app, please provide the following information when posting a new issue:
- **Are you using the [latest version](https://github.com/ArtSabintsev/Siren/releases) of Siren?**:
- **What is your app's Bundle ID?**:
@@ -8,19 +8,19 @@
---
# Before posting an issue, please make sure your issue has not already been resolved or answered elsewhere.
## Before posting an issue, please make sure your issue has not already been resolved or answered elsewhere.
## Common Issue #1:
### Common Issue #1:
>"Error retrieving iOS version number as there was no data returned."
Check if your app is available in the US App Store, otherwise add the corresponding country code when setting up Siren.
## Common Issue #2:
### Common Issue #2:
> "Support for macOS App Store."
Siren does not and will not support the macOS App Store.
## Common Issue #3:
### Common Issue #3:
> "Support for prompting TestFlight users to update to the newest beta build."
Siren does not support this functionality. There is no publicly accessible TestFlight API akin to that of the public App Store API that Siren can utilize to provide this functionality.
+52 -5
View File
@@ -1,6 +1,12 @@
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
@@ -9,11 +15,52 @@ build/
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
xcuserdata/
## Other
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
.DS_Store
## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
## Playgrounds
timeline.xctimeline
playground.xcworkspace
# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
.build/
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
-1
View File
@@ -1 +0,0 @@
ruby-2.6.0
+3 -5
View File
@@ -2,14 +2,12 @@ reporter: "xcode"
included:
- ../Sources/
- Example/Tests/
disabled_rules:
- cyclomatic_complexity
- identifier_name
- file_length
- line_length
- nesting
- unused_optional_binding
- variable_name
# Specialized Rules
file_length:
- 500
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
+9 -3
View File
@@ -1,10 +1,16 @@
language: swift
osx_image: xcode10.2
osx_image: xcode11
notifications:
email: false
before_install:
- brew update
- gem install bundler
- bundle
- cd Example/
- pod install
env:
- LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8
script:
- set -o pipefail
- xcodebuild -project Example/Example.xcodeproj -scheme Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty -c
- xcodebuild -workspace Example.xcworkspace -scheme Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO
+132 -310
View File
@@ -7,34 +7,14 @@
objects = {
/* Begin PBXBuildFile section */
5913ECF89C0DE3BEB22031BE /* Pods_Example_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3207656F9030B2912198AF2E /* Pods_Example_Tests.framework */; };
8E1635A91E6A0B9C0060CE27 /* SirenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EE6C74C1E6A0AE100DBE454 /* SirenTests.swift */; };
8EACA9711F380294003134CA /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8EACA9671F37F2D3003134CA /* LaunchScreen.xib */; };
8EACA9721F380294003134CA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8EACA9691F37F2D3003134CA /* Main.storyboard */; };
8EACA9731F380294003134CA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EACA96B1F37F2D3003134CA /* Images.xcassets */; };
8EACA9741F38029B003134CA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EACA9661F37F2D3003134CA /* AppDelegate.swift */; };
8EACA9751F38029B003134CA /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EACA96D1F37F2D3003134CA /* ViewController.swift */; };
8EF9F879224EACB200B20545 /* APIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F861224EACB100B20545 /* APIManager.swift */; };
8EF9F87A224EACB200B20545 /* RulesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F862224EACB100B20545 /* RulesManager.swift */; };
8EF9F87B224EACB200B20545 /* PresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F863224EACB100B20545 /* PresentationManager.swift */; };
8EF9F87C224EACB200B20545 /* AlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F865224EACB100B20545 /* AlertAction.swift */; };
8EF9F87D224EACB200B20545 /* AlertConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F866224EACB100B20545 /* AlertConstants.swift */; };
8EF9F87E224EACB200B20545 /* Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F867224EACB100B20545 /* Localization.swift */; };
8EF9F87F224EACB200B20545 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F868224EACB100B20545 /* Model.swift */; };
8EF9F880224EACB200B20545 /* APIModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F869224EACB100B20545 /* APIModel.swift */; };
8EF9F881224EACB200B20545 /* Rules.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F86A224EACB100B20545 /* Rules.swift */; };
8EF9F882224EACB200B20545 /* PerformCheck.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F86B224EACB100B20545 /* PerformCheck.swift */; };
8EF9F883224EACB200B20545 /* UpdateResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F86C224EACB100B20545 /* UpdateResults.swift */; };
8EF9F884224EACB200B20545 /* Siren.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F86D224EACB100B20545 /* Siren.swift */; };
8EF9F885224EACB200B20545 /* UIAlertControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F86F224EACB100B20545 /* UIAlertControllerExtension.swift */; };
8EF9F886224EACB200B20545 /* BundleExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F870224EACB100B20545 /* BundleExtension.swift */; };
8EF9F887224EACB200B20545 /* UserDefaultsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F871224EACB100B20545 /* UserDefaultsExtension.swift */; };
8EF9F888224EACB200B20545 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F872224EACB100B20545 /* DateExtension.swift */; };
8EF9F889224EACB200B20545 /* DataParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F874224EACB200B20545 /* DataParser.swift */; };
8EF9F88A224EACB200B20545 /* KnownError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F875224EACB200B20545 /* KnownError.swift */; };
8EF9F88B224EACB200B20545 /* Siren.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8EF9F876224EACB200B20545 /* Siren.bundle */; };
8EF9F88C224EACB200B20545 /* SirenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF9F878224EACB200B20545 /* SirenViewController.swift */; };
8EF9F88E224EB00100B20545 /* Siren.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EF9F853224EACA500B20545 /* Siren.framework */; };
8EF9F88F224EB00100B20545 /* Siren.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8EF9F853224EACA500B20545 /* Siren.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
E7269D91A22F64E1A0C661C5 /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37940350BF612EEBD59D5DF4 /* Pods_Example.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -45,13 +25,6 @@
remoteGlobalIDString = 8EC391801A58B465001C121E;
remoteInfo = "Sample App";
};
8EF9F890224EB00100B20545 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8EC391791A58B465001C121E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 8EF9F852224EACA500B20545;
remoteInfo = Siren;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -61,7 +34,6 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
8EF9F88F224EB00100B20545 /* Siren.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -69,7 +41,12 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
55EC364A1E6BB98A00726F13 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../../Siren/Info.plist; sourceTree = "<group>"; };
3008B0CC506A71223653ED92 /* Pods-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.release.xcconfig"; path = "Target Support Files/Pods-Tests/Pods-Tests.release.xcconfig"; sourceTree = "<group>"; };
31A1A1D27EA05F1E28033516 /* Pods-Example-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-Tests.release.xcconfig"; path = "Target Support Files/Pods-Example-Tests/Pods-Example-Tests.release.xcconfig"; sourceTree = "<group>"; };
3207656F9030B2912198AF2E /* Pods_Example_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
37940350BF612EEBD59D5DF4 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5A65216266BE44478A3B3AEB /* Pods-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.debug.xcconfig"; path = "Target Support Files/Pods-Tests/Pods-Tests.debug.xcconfig"; sourceTree = "<group>"; };
740DAA3321466F1ABE6CC37D /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
8E3A6C041D07CB6F00A8B7CF /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
8EACA9661F37F2D3003134CA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
8EACA9681F37F2D3003134CA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
@@ -80,29 +57,8 @@
8EC391811A58B465001C121E /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
8EE6C74B1E6A0AE100DBE454 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8EE6C74C1E6A0AE100DBE454 /* SirenTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenTests.swift; sourceTree = "<group>"; };
8EF9F853224EACA500B20545 /* Siren.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Siren.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8EF9F856224EACA500B20545 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8EF9F861224EACB100B20545 /* APIManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIManager.swift; sourceTree = "<group>"; };
8EF9F862224EACB100B20545 /* RulesManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RulesManager.swift; sourceTree = "<group>"; };
8EF9F863224EACB100B20545 /* PresentationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationManager.swift; sourceTree = "<group>"; };
8EF9F865224EACB100B20545 /* AlertAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertAction.swift; sourceTree = "<group>"; };
8EF9F866224EACB100B20545 /* AlertConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertConstants.swift; sourceTree = "<group>"; };
8EF9F867224EACB100B20545 /* Localization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Localization.swift; sourceTree = "<group>"; };
8EF9F868224EACB100B20545 /* Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = "<group>"; };
8EF9F869224EACB100B20545 /* APIModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIModel.swift; sourceTree = "<group>"; };
8EF9F86A224EACB100B20545 /* Rules.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rules.swift; sourceTree = "<group>"; };
8EF9F86B224EACB100B20545 /* PerformCheck.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformCheck.swift; sourceTree = "<group>"; };
8EF9F86C224EACB100B20545 /* UpdateResults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateResults.swift; sourceTree = "<group>"; };
8EF9F86D224EACB100B20545 /* Siren.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Siren.swift; path = ../../Sources/Siren.swift; sourceTree = "<group>"; };
8EF9F86F224EACB100B20545 /* UIAlertControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIAlertControllerExtension.swift; sourceTree = "<group>"; };
8EF9F870224EACB100B20545 /* BundleExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BundleExtension.swift; sourceTree = "<group>"; };
8EF9F871224EACB100B20545 /* UserDefaultsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtension.swift; sourceTree = "<group>"; };
8EF9F872224EACB100B20545 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = "<group>"; };
8EF9F874224EACB200B20545 /* DataParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataParser.swift; sourceTree = "<group>"; };
8EF9F875224EACB200B20545 /* KnownError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KnownError.swift; sourceTree = "<group>"; };
8EF9F876224EACB200B20545 /* Siren.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Siren.bundle; path = ../../Sources/Siren.bundle; sourceTree = "<group>"; };
8EF9F878224EACB200B20545 /* SirenViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SirenViewController.swift; sourceTree = "<group>"; };
8EF9F88D224EACBF00B20545 /* Siren.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Siren.h; sourceTree = "<group>"; };
E83E47CD9052083916E39F84 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
EA761E9782C2024D152342D4 /* Pods-Example-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-Tests.debug.xcconfig"; path = "Target Support Files/Pods-Example-Tests/Pods-Example-Tests.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -110,6 +66,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5913ECF89C0DE3BEB22031BE /* Pods_Example_Tests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -117,23 +74,31 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8EF9F88E224EB00100B20545 /* Siren.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8EF9F850224EACA500B20545 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E7269D91A22F64E1A0C661C5 /* Pods_Example.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
781697C27F2F128F70738C30 /* Pods */ = {
isa = PBXGroup;
children = (
740DAA3321466F1ABE6CC37D /* Pods-Example.debug.xcconfig */,
E83E47CD9052083916E39F84 /* Pods-Example.release.xcconfig */,
5A65216266BE44478A3B3AEB /* Pods-Tests.debug.xcconfig */,
3008B0CC506A71223653ED92 /* Pods-Tests.release.xcconfig */,
EA761E9782C2024D152342D4 /* Pods-Example-Tests.debug.xcconfig */,
31A1A1D27EA05F1E28033516 /* Pods-Example-Tests.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
8E641D2420C8B44B00908555 /* Frameworks */ = {
isa = PBXGroup;
children = (
37940350BF612EEBD59D5DF4 /* Pods_Example.framework */,
3207656F9030B2912198AF2E /* Pods_Example_Tests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -155,7 +120,6 @@
8EACA96B1F37F2D3003134CA /* Images.xcassets */,
8EACA96C1F37F2D3003134CA /* Info.plist */,
8EACA96D1F37F2D3003134CA /* ViewController.swift */,
55EC364A1E6BB98A00726F13 /* Info.plist */,
);
path = "Supporting Files";
sourceTree = "<group>";
@@ -165,9 +129,9 @@
children = (
8EACA9651F37F2D3003134CA /* Example */,
8EE6C74A1E6A0AE100DBE454 /* Tests */,
8EF9F854224EACA500B20545 /* Siren */,
8EC391821A58B465001C121E /* Products */,
8E641D2420C8B44B00908555 /* Frameworks */,
781697C27F2F128F70738C30 /* Pods */,
);
sourceTree = "<group>";
};
@@ -176,7 +140,6 @@
children = (
8EC391811A58B465001C121E /* Example.app */,
8E3A6C041D07CB6F00A8B7CF /* Tests.xctest */,
8EF9F853224EACA500B20545 /* Siren.framework */,
);
name = Products;
sourceTree = "<group>";
@@ -190,100 +153,18 @@
path = Tests;
sourceTree = "<group>";
};
8EF9F854224EACA500B20545 /* Siren */ = {
isa = PBXGroup;
children = (
8EF9F86D224EACB100B20545 /* Siren.swift */,
8EF9F876224EACB200B20545 /* Siren.bundle */,
8EF9F86E224EACB100B20545 /* Extensions */,
8EF9F860224EACB100B20545 /* Managers */,
8EF9F864224EACB100B20545 /* Models */,
8EF9F873224EACB200B20545 /* Utilities */,
8EF9F877224EACB200B20545 /* View Controllers */,
8EF9F88D224EACBF00B20545 /* Siren.h */,
8EF9F856224EACA500B20545 /* Info.plist */,
);
path = Siren;
sourceTree = "<group>";
};
8EF9F860224EACB100B20545 /* Managers */ = {
isa = PBXGroup;
children = (
8EF9F861224EACB100B20545 /* APIManager.swift */,
8EF9F862224EACB100B20545 /* RulesManager.swift */,
8EF9F863224EACB100B20545 /* PresentationManager.swift */,
);
name = Managers;
path = ../../Sources/Managers;
sourceTree = "<group>";
};
8EF9F864224EACB100B20545 /* Models */ = {
isa = PBXGroup;
children = (
8EF9F865224EACB100B20545 /* AlertAction.swift */,
8EF9F866224EACB100B20545 /* AlertConstants.swift */,
8EF9F867224EACB100B20545 /* Localization.swift */,
8EF9F868224EACB100B20545 /* Model.swift */,
8EF9F869224EACB100B20545 /* APIModel.swift */,
8EF9F86A224EACB100B20545 /* Rules.swift */,
8EF9F86B224EACB100B20545 /* PerformCheck.swift */,
8EF9F86C224EACB100B20545 /* UpdateResults.swift */,
);
name = Models;
path = ../../Sources/Models;
sourceTree = "<group>";
};
8EF9F86E224EACB100B20545 /* Extensions */ = {
isa = PBXGroup;
children = (
8EF9F86F224EACB100B20545 /* UIAlertControllerExtension.swift */,
8EF9F870224EACB100B20545 /* BundleExtension.swift */,
8EF9F871224EACB100B20545 /* UserDefaultsExtension.swift */,
8EF9F872224EACB100B20545 /* DateExtension.swift */,
);
name = Extensions;
path = ../../Sources/Extensions;
sourceTree = "<group>";
};
8EF9F873224EACB200B20545 /* Utilities */ = {
isa = PBXGroup;
children = (
8EF9F874224EACB200B20545 /* DataParser.swift */,
8EF9F875224EACB200B20545 /* KnownError.swift */,
);
name = Utilities;
path = ../../Sources/Utilities;
sourceTree = "<group>";
};
8EF9F877224EACB200B20545 /* View Controllers */ = {
isa = PBXGroup;
children = (
8EF9F878224EACB200B20545 /* SirenViewController.swift */,
);
name = "View Controllers";
path = "../../Sources/View Controllers";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8EF9F84E224EACA500B20545 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8E3A6C031D07CB6F00A8B7CF /* Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8E3A6C0D1D07CB6F00A8B7CF /* Build configuration list for PBXNativeTarget "Tests" */;
buildPhases = (
F0D788DF78612C5704C442B8 /* [CP] Check Pods Manifest.lock */,
8E3A6C001D07CB6F00A8B7CF /* Sources */,
8E3A6C011D07CB6F00A8B7CF /* Frameworks */,
8E3A6C021D07CB6F00A8B7CF /* Resources */,
F4829FA85904971576C7920A /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -299,40 +180,23 @@
isa = PBXNativeTarget;
buildConfigurationList = 8EC391A01A58B466001C121E /* Build configuration list for PBXNativeTarget "Example" */;
buildPhases = (
007D5BEF60AE64704A038FBF /* [CP] Check Pods Manifest.lock */,
8EC3917D1A58B465001C121E /* Sources */,
8EC3917E1A58B465001C121E /* Frameworks */,
8EE3A3F81E6A0E470010BDCE /* SwiftLint */,
8EC3917F1A58B465001C121E /* Resources */,
8EF9F892224EB00200B20545 /* Embed Frameworks */,
E31482FEAF1E4460E554FDD1 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
8EF9F891224EB00100B20545 /* PBXTargetDependency */,
);
name = Example;
productName = Siren;
productReference = 8EC391811A58B465001C121E /* Example.app */;
productType = "com.apple.product-type.application";
};
8EF9F852224EACA500B20545 /* Siren */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8EF9F85C224EACA500B20545 /* Build configuration list for PBXNativeTarget "Siren" */;
buildPhases = (
8EF9F84E224EACA500B20545 /* Headers */,
8EF9F84F224EACA500B20545 /* Sources */,
8EF9F850224EACA500B20545 /* Frameworks */,
8EF9F851224EACA500B20545 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Siren;
productName = Siren;
productReference = 8EF9F853224EACA500B20545 /* Siren.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -341,7 +205,7 @@
attributes = {
LastSwiftMigration = 0700;
LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 1020;
LastUpgradeCheck = 1220;
ORGANIZATIONNAME = "Sabintsev iOS Projects";
TargetAttributes = {
8E3A6C031D07CB6F00A8B7CF = {
@@ -366,12 +230,6 @@
};
};
};
8EF9F852224EACA500B20545 = {
CreatedOnToolsVersion = 10.2;
DevelopmentTeam = HT94948NDD;
LastSwiftMigration = 1020;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 8EC3917C1A58B465001C121E /* Build configuration list for PBXProject "Example" */;
@@ -389,7 +247,6 @@
targets = (
8EC391801A58B465001C121E /* Example */,
8E3A6C031D07CB6F00A8B7CF /* Tests */,
8EF9F852224EACA500B20545 /* Siren */,
);
};
/* End PBXProject section */
@@ -412,17 +269,31 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
8EF9F851224EACA500B20545 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8EF9F88B224EACB200B20545 /* Siren.bundle in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
007D5BEF60AE64704A038FBF /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Example-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
8EE3A3F81E6A0E470010BDCE /* SwiftLint */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -437,6 +308,64 @@
shellPath = /bin/sh;
shellScript = "if which swiftlint >/dev/null; then\nswiftlint lint --config ../.swiftlint.yml\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi";
};
E31482FEAF1E4460E554FDD1 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/Siren/Siren.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Siren.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
F0D788DF78612C5704C442B8 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Example-Tests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
F4829FA85904971576C7920A /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Example-Tests/Pods-Example-Tests-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/Siren/Siren.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Siren.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example-Tests/Pods-Example-Tests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -457,32 +386,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
8EF9F84F224EACA500B20545 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8EF9F882224EACB200B20545 /* PerformCheck.swift in Sources */,
8EF9F87F224EACB200B20545 /* Model.swift in Sources */,
8EF9F885224EACB200B20545 /* UIAlertControllerExtension.swift in Sources */,
8EF9F88C224EACB200B20545 /* SirenViewController.swift in Sources */,
8EF9F886224EACB200B20545 /* BundleExtension.swift in Sources */,
8EF9F87D224EACB200B20545 /* AlertConstants.swift in Sources */,
8EF9F881224EACB200B20545 /* Rules.swift in Sources */,
8EF9F889224EACB200B20545 /* DataParser.swift in Sources */,
8EF9F879224EACB200B20545 /* APIManager.swift in Sources */,
8EF9F87E224EACB200B20545 /* Localization.swift in Sources */,
8EF9F880224EACB200B20545 /* APIModel.swift in Sources */,
8EF9F888224EACB200B20545 /* DateExtension.swift in Sources */,
8EF9F884224EACB200B20545 /* Siren.swift in Sources */,
8EF9F887224EACB200B20545 /* UserDefaultsExtension.swift in Sources */,
8EF9F87B224EACB200B20545 /* PresentationManager.swift in Sources */,
8EF9F883224EACB200B20545 /* UpdateResults.swift in Sources */,
8EF9F87C224EACB200B20545 /* AlertAction.swift in Sources */,
8EF9F88A224EACB200B20545 /* KnownError.swift in Sources */,
8EF9F87A224EACB200B20545 /* RulesManager.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -491,11 +394,6 @@
target = 8EC391801A58B465001C121E /* Example */;
targetProxy = 8E3A6C091D07CB6F00A8B7CF /* PBXContainerItemProxy */;
};
8EF9F891224EB00100B20545 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8EF9F852224EACA500B20545 /* Siren */;
targetProxy = 8EF9F890224EB00100B20545 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
@@ -520,6 +418,7 @@
/* Begin XCBuildConfiguration section */
8E3A6C0B1D07CB6F00A8B7CF /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = EA761E9782C2024D152342D4 /* Pods-Example-Tests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
@@ -527,7 +426,7 @@
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = Tests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.sabintsev.SirenTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -538,6 +437,7 @@
};
8E3A6C0C1D07CB6F00A8B7CF /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 31A1A1D27EA05F1E28033516 /* Pods-Example-Tests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
@@ -546,7 +446,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = Tests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.sabintsev.SirenTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -578,6 +478,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -602,7 +503,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -633,6 +534,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -650,7 +552,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_VERSION = 4.2;
@@ -660,109 +562,38 @@
};
8EC391A11A58B466001C121E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 740DAA3321466F1ABE6CC37D /* Pods-Example.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = HT94948NDD;
INFOPLIST_FILE = "$(SRCROOT)/Siren/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
INFOPLIST_FILE = "$(SRCROOT)/Example/Supporting Files/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.apple.AppStoreConnect;
MARKETING_VERSION = 2.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.facebook.Facebook;
PRODUCT_NAME = Example;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
8EC391A21A58B466001C121E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E83E47CD9052083916E39F84 /* Pods-Example.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = HT94948NDD;
INFOPLIST_FILE = "$(SRCROOT)/Siren/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
INFOPLIST_FILE = "$(SRCROOT)/Example/Supporting Files/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.apple.AppStoreConnect;
MARKETING_VERSION = 2.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.facebook.Facebook;
PRODUCT_NAME = Example;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 5.0;
};
name = Release;
};
8EF9F85D224EACA500B20545 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = HT94948NDD;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = Siren/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.Sabintsev.Siren;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
8EF9F85E224EACA500B20545 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = HT94948NDD;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = Siren/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.Sabintsev.Siren;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
@@ -796,15 +627,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8EF9F85C224EACA500B20545 /* Build configuration list for PBXNativeTarget "Siren" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8EF9F85D224EACA500B20545 /* Debug */,
8EF9F85E224EACA500B20545 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 8EC391791A58B465001C121E /* Project object */;
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Example.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
+7 -6
View File
@@ -21,13 +21,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
/// Siren initializes a listener on `didBecomeActiveNotification` to perform version checks.
// defaultExample()
defaultExampleUsingCompletionHandler()
// defaultExampleUsingCompletionHandler()
// manualExampleWithCompletionHandler()
// minimalCustomizationPresentationExample()
// forceLocalizationCustomizationPresentationExample()
// customMessagingPresentationExample()
// annoyingRuleExample()
// hyperCriticalRulesExample()
hyperCriticalRulesExample()
// updateSpecificRulesExample()
// customAlertRulesExample()
// appStoreCountryChangeExample()
@@ -84,6 +84,7 @@ private extension AppDelegate {
/// Minor customization to Siren's update alert presentation.
func minimalCustomizationPresentationExample() {
let siren = Siren.shared
siren.rulesManager = RulesManager(globalRules: .annoying)
siren.presentationManager = PresentationManager(alertTintColor: .purple,
appName: "Siren Example App Override!")
siren.wail { results in
@@ -99,7 +100,7 @@ private extension AppDelegate {
}
}
/// Forcing the language of the update alert to a specific localization (e.g., Russian is force in this function.
/// Forcing the language of the update alert to a specific localization (e.g., Russian is forced in this function)
func forceLocalizationCustomizationPresentationExample() {
let siren = Siren.shared
siren.presentationManager = PresentationManager(forceLanguageLocalization: .russian)
@@ -221,11 +222,11 @@ private extension AppDelegate {
}
/// An example on how to change the App Store region that your app in which your app is available.
// This should only be used if your app is not available in the US App Store.
// This example function illustrates how this can be done by checking against the Russian App Store.
/// This should only be used if your app is not available in the US App Store.
/// This example function illustrates how this can be done by checking against the Russian App Store.
func appStoreCountryChangeExample() {
let siren = Siren.shared
siren.apiManager = APIManager(countryCode: "RU")
siren.apiManager = APIManager(country: .russia)
siren.wail { results in
switch results {
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+1 -1
View File
@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
@@ -21,4 +21,3 @@ class ViewController: UIViewController {
}
}
+10
View File
@@ -0,0 +1,10 @@
platform :ios, '15.0'
inhibit_all_warnings!
use_frameworks!
target 'Example' do
pod 'Siren', :path => '../'
target 'Tests' do
end
end
+16
View File
@@ -0,0 +1,16 @@
PODS:
- Siren (6.0.2)
DEPENDENCIES:
- Siren (from `../`)
EXTERNAL SOURCES:
Siren:
:path: "../"
SPEC CHECKSUMS:
Siren: 1be92ef5775f9b61ebb294c79c59268ab0afcf5d
PODFILE CHECKSUM: 5800641824958ea506d6ae52e89b594fe8270c18
COCOAPODS: 1.11.2
+24
View File
@@ -0,0 +1,24 @@
{
"name": "Siren",
"version": "6.0.2",
"swift_versions": "5.5",
"summary": "Notify users that a new version of your iOS app is available, and prompt them with the App Store link.",
"homepage": "https://github.com/ArtSabintsev/Siren",
"license": "MIT",
"authors": {
"Arthur Ariel Sabintsev": "arthur@sabintsev.com"
},
"description": "Notify your users when a new version of your iOS app is available, and prompt them with the App Store link.",
"platforms": {
"ios": "15.0",
"tvos": "15.0"
},
"source": {
"git": "https://github.com/ArtSabintsev/Siren.git",
"tag": "6.0.2"
},
"source_files": "Sources/**/*.swift",
"resources": "Sources/Siren.bundle",
"requires_arc": true,
"swift_version": "5.5"
}
+16
View File
@@ -0,0 +1,16 @@
PODS:
- Siren (6.0.2)
DEPENDENCIES:
- Siren (from `../`)
EXTERNAL SOURCES:
Siren:
:path: "../"
SPEC CHECKSUMS:
Siren: 1be92ef5775f9b61ebb294c79c59268ab0afcf5d
PODFILE CHECKSUM: 5800641824958ea506d6ae52e89b594fe8270c18
COCOAPODS: 1.11.2
+902
View File
@@ -0,0 +1,902 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
151BA7773369BE5FC2A1A56A0ADB1E11 /* PerformCheck.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7637C46E7C27C83B4C31CECE3D6064B4 /* PerformCheck.swift */; };
158B5EA21F24D8A42B2C0DA33D6911D2 /* UIAlertControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F20FBAD7ADBFD07AF8183236B4ECE297 /* UIAlertControllerExtension.swift */; };
18AAE788DE1B28510F53F35A0E68214F /* AppStoreCountry.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCAD38316B970AACF9940545155FFAF8 /* AppStoreCountry.swift */; };
1D79DF28DA9C6AA8026CBFF47184B6AF /* AlertConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D5FEFBCEC302A522182EEE37AD81B3 /* AlertConstants.swift */; };
268E0E6589DE799396C3FBF264AD3996 /* RulesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E841994E6AE2DF727221123E0ED744A /* RulesManager.swift */; };
300E952C78F6EA5BEBF5B5E31F3706E0 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9220E906478C87C685A81A5177136643 /* DateExtension.swift */; };
32AEE3D9A55EC66EBCE39C3A38D01126 /* Pods-Example-Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F92A716E93EDF48D0C9EF3C5062B558 /* Pods-Example-Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
425B752B150AAEF5221916E9FC670153 /* KnownError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4681015D4D44EB9A4302B2A179FD809F /* KnownError.swift */; };
428DE866FE6650BC83086E281DAD66F2 /* BundleExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11BFB38B8D147BDF94B9415C0F2DE13A /* BundleExtension.swift */; };
45303C99CEDE9EBA4990949652F4B28D /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62176AC744B2DC815BA7CD121F4EA473 /* Model.swift */; };
487B8148F836C8A64C6ECBBE67126ECA /* Pods-Example-Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AEAE97BBEB3D5E4F45CEC2708FAFB72C /* Pods-Example-Tests-dummy.m */; };
4B4BB6D6D4B49D976A961CEBCA97BC05 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
4ECA4FF1C7B4AC6DF846045C5B720A0B /* AlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF347B3A55392D1407E1A4ABC8114173 /* AlertAction.swift */; };
56AC6974308EB4B394AAF9B703DC7A47 /* Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB4D2B7323F8C610677B540FEEC7673C /* Localization.swift */; };
5B9E7420A0284E837C04012B528EAE4A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
6522773E85791CCB1A7256E5C3201E75 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 850060B744F1FDFB6ADCAFD76D4D34EB /* Pods-Example-dummy.m */; };
66D1B530F0822D462D840C6E2428F9C0 /* Siren.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7B3EAF82CFAB96C6721BA02F97FC71B /* Siren.swift */; };
9952BF0ED5F6B7F18A07976BDD134D41 /* DataParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97602092A124F5A205482E90225B67EA /* DataParser.swift */; };
A1E89EF77BDD0C8D1EE8AAE743D82ED4 /* Siren-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 94DA749EC12B6582F7B5F8C0E50736F1 /* Siren-dummy.m */; };
A1EA2053268A5D5D9AC11C3D74D5BD4F /* Siren-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2506E5646D43BCE53FBEE1AB44BF4871 /* Siren-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
A73E39544FF12C5E5E54F07B0A2F7F78 /* PresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B26CBDBDDF69163D512AED074B4549D /* PresentationManager.swift */; };
AE1B34BAF1974C7DDAF628092F663F7A /* UpdateResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 567D8AAC664C44A23EBB5EC6B0AA4049 /* UpdateResults.swift */; };
C21F6BE2015F6B8C8540667C5C4EDCF0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
C609EB036330DECF2976CE62912E9745 /* SirenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786A05732FE78B252DC56C9F78F693C0 /* SirenViewController.swift */; };
C988AA88E47FFA79D317BF4291B2A04D /* UserDefaultsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8349F11EDA01F629C4C61E99CCFD91 /* UserDefaultsExtension.swift */; };
D95522B7A00F56B9510A8E58BB5AE8ED /* APIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A780E0CDE0D69B789468679AB277EA /* APIManager.swift */; };
E5F659EBC88C14C084176F93C9F0156D /* Rules.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1EABF799D1E792CA3E9194926E78605 /* Rules.swift */; };
F235A549B294F2E848529A1A93F852EB /* Pods-Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BF25316BE6972758B31C52602CE12C /* Pods-Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
FB731D70855188EDE196CEA745D6940A /* APIModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06B1A9453346F0CDCD7A4DC41A4F92C /* APIModel.swift */; };
FF40E81B2B174F3584493809B90C6668 /* Siren.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 3CDA2F82B5CE0BD747E1FE8BA63539AD /* Siren.bundle */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
B52DE15DFA6D788DDC41A589FA9AD9E8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = A0E2640B83527AE54205D7FDE9C5D930;
remoteInfo = Siren;
};
BF9CC9039B7878DA61A42FFBD3A22E9F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = A0E2640B83527AE54205D7FDE9C5D930;
remoteInfo = Siren;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
033A17C59E0896996DE69A71A44F74D3 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
07692E025EFBB5F5C9DD63817289A7F2 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
08A780E0CDE0D69B789468679AB277EA /* APIManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = APIManager.swift; sourceTree = "<group>"; };
11BFB38B8D147BDF94B9415C0F2DE13A /* BundleExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BundleExtension.swift; sourceTree = "<group>"; };
17E70395B3CDD0B7EDA622612E2C3144 /* Siren.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Siren.framework; sourceTree = BUILT_PRODUCTS_DIR; };
19D5FEFBCEC302A522182EEE37AD81B3 /* AlertConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AlertConstants.swift; sourceTree = "<group>"; };
1BA24BC1E607E24F1C9AED046EE27110 /* Pods-Example-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example-Tests.release.xcconfig"; sourceTree = "<group>"; };
1C22073E7207FFF335D3A9EADE0DA51B /* Siren.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Siren.debug.xcconfig; sourceTree = "<group>"; };
1F667CC0E19EAF34E5A4119E2121F585 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
2506E5646D43BCE53FBEE1AB44BF4871 /* Siren-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Siren-umbrella.h"; sourceTree = "<group>"; };
27809964D647C11D4B07299C7B264724 /* Pods-Example-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example-Tests.debug.xcconfig"; sourceTree = "<group>"; };
2C0257A9A3D8C5B62771A4DDEB17A0ED /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
2F92A716E93EDF48D0C9EF3C5062B558 /* Pods-Example-Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Example-Tests-umbrella.h"; sourceTree = "<group>"; };
3CDA2F82B5CE0BD747E1FE8BA63539AD /* Siren.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = Siren.bundle; path = Sources/Siren.bundle; sourceTree = "<group>"; };
3F4E87B2E26A88328CDC6588E37F2AD2 /* Siren-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Siren-prefix.pch"; sourceTree = "<group>"; };
4681015D4D44EB9A4302B2A179FD809F /* KnownError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KnownError.swift; sourceTree = "<group>"; };
4E841994E6AE2DF727221123E0ED744A /* RulesManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RulesManager.swift; sourceTree = "<group>"; };
5281882E9C6A7A11616D41DF41B0CC7A /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = "<group>"; };
567D8AAC664C44A23EBB5EC6B0AA4049 /* UpdateResults.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UpdateResults.swift; sourceTree = "<group>"; };
62176AC744B2DC815BA7CD121F4EA473 /* Model.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = "<group>"; };
688C1754B2F8DFC0710F4772C4A75C32 /* Pods-Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-Info.plist"; sourceTree = "<group>"; };
6D859521A91F233E653F06300C561D0A /* Pods-Example-Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-Tests-acknowledgements.markdown"; sourceTree = "<group>"; };
6FE61F66C83C50497BB430E4C3C49CD6 /* Pods-Example-Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-Tests-Info.plist"; sourceTree = "<group>"; };
70689754D9C1D7660D29312893615F94 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
7637C46E7C27C83B4C31CECE3D6064B4 /* PerformCheck.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PerformCheck.swift; sourceTree = "<group>"; };
786A05732FE78B252DC56C9F78F693C0 /* SirenViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SirenViewController.swift; sourceTree = "<group>"; };
850060B744F1FDFB6ADCAFD76D4D34EB /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = "<group>"; };
89F8A185DF29707E4DC9BB13872AF702 /* Siren.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = Siren.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
8B26CBDBDDF69163D512AED074B4549D /* PresentationManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PresentationManager.swift; sourceTree = "<group>"; };
8B636D1CA58AC29F35305FCC180DDAD8 /* Siren-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Siren-Info.plist"; sourceTree = "<group>"; };
90BF25316BE6972758B31C52602CE12C /* Pods-Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Example-umbrella.h"; sourceTree = "<group>"; };
9220E906478C87C685A81A5177136643 /* DateExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = "<group>"; };
94DA749EC12B6582F7B5F8C0E50736F1 /* Siren-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Siren-dummy.m"; sourceTree = "<group>"; };
97602092A124F5A205482E90225B67EA /* DataParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataParser.swift; sourceTree = "<group>"; };
9A8349F11EDA01F629C4C61E99CCFD91 /* UserDefaultsExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtension.swift; sourceTree = "<group>"; };
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
A2D5633C9DFACF001D250AC90A2EAD23 /* Pods_Example_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
AB37C628ACFCAD98A383C821813EFBBF /* Pods-Example-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-Tests-frameworks.sh"; sourceTree = "<group>"; };
AB4D2B7323F8C610677B540FEEC7673C /* Localization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Localization.swift; sourceTree = "<group>"; };
AEAE97BBEB3D5E4F45CEC2708FAFB72C /* Pods-Example-Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-Tests-dummy.m"; sourceTree = "<group>"; };
AEB39A55C28B48D98B02090079C5C084 /* Pods-Example-Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-Tests-acknowledgements.plist"; sourceTree = "<group>"; };
B297160149C4B307A3DD5A8DDFC7EEF9 /* Siren.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Siren.modulemap; sourceTree = "<group>"; };
CCAD38316B970AACF9940545155FFAF8 /* AppStoreCountry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AppStoreCountry.swift; sourceTree = "<group>"; };
D06B1A9453346F0CDCD7A4DC41A4F92C /* APIModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = APIModel.swift; sourceTree = "<group>"; };
D991827462FB11E20C03858A8A0EF766 /* Pods-Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Example.modulemap"; sourceTree = "<group>"; };
DDB351CF336FC775897FB3DEFC1AECE1 /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = "<group>"; };
EEF458E38855C5A2A0F70C968763EEAD /* Pods-Example-Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Example-Tests.modulemap"; sourceTree = "<group>"; };
F1EABF799D1E792CA3E9194926E78605 /* Rules.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Rules.swift; sourceTree = "<group>"; };
F20FBAD7ADBFD07AF8183236B4ECE297 /* UIAlertControllerExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIAlertControllerExtension.swift; sourceTree = "<group>"; };
F5743486693D7F303412A3018B0941CF /* Siren.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Siren.release.xcconfig; sourceTree = "<group>"; };
F7B3EAF82CFAB96C6721BA02F97FC71B /* Siren.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Siren.swift; path = Sources/Siren.swift; sourceTree = "<group>"; };
F924C881D2735430B1A17EDFF024E317 /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = "<group>"; };
FF347B3A55392D1407E1A4ABC8114173 /* AlertAction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AlertAction.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
19C68C00E0D92CD65F2917255ED5A50B /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
4B4BB6D6D4B49D976A961CEBCA97BC05 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
5E2E02FD05446E0D72F1A5C4F34A57DB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
C21F6BE2015F6B8C8540667C5C4EDCF0 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D01825EFADF2015C2D6F895EE2B5C81A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5B9E7420A0284E837C04012B528EAE4A /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
108F8CE4A8FCBCCB97F2FAD6A5B6D6D2 /* Extensions */ = {
isa = PBXGroup;
children = (
11BFB38B8D147BDF94B9415C0F2DE13A /* BundleExtension.swift */,
9220E906478C87C685A81A5177136643 /* DateExtension.swift */,
F20FBAD7ADBFD07AF8183236B4ECE297 /* UIAlertControllerExtension.swift */,
9A8349F11EDA01F629C4C61E99CCFD91 /* UserDefaultsExtension.swift */,
);
name = Extensions;
path = Sources/Extensions;
sourceTree = "<group>";
};
1CB4D55DAEB98D0046DA84E18479FED9 /* View Controllers */ = {
isa = PBXGroup;
children = (
786A05732FE78B252DC56C9F78F693C0 /* SirenViewController.swift */,
);
name = "View Controllers";
path = "Sources/View Controllers";
sourceTree = "<group>";
};
578452D2E740E91742655AC8F1636D1F /* iOS */ = {
isa = PBXGroup;
children = (
73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
62A567EC72AC1F16179364897645F180 /* Utilities */ = {
isa = PBXGroup;
children = (
97602092A124F5A205482E90225B67EA /* DataParser.swift */,
4681015D4D44EB9A4302B2A179FD809F /* KnownError.swift */,
);
name = Utilities;
path = Sources/Utilities;
sourceTree = "<group>";
};
79BF3B1D578C929414C256003C35CDDA /* Pods-Example-Tests */ = {
isa = PBXGroup;
children = (
EEF458E38855C5A2A0F70C968763EEAD /* Pods-Example-Tests.modulemap */,
6D859521A91F233E653F06300C561D0A /* Pods-Example-Tests-acknowledgements.markdown */,
AEB39A55C28B48D98B02090079C5C084 /* Pods-Example-Tests-acknowledgements.plist */,
AEAE97BBEB3D5E4F45CEC2708FAFB72C /* Pods-Example-Tests-dummy.m */,
AB37C628ACFCAD98A383C821813EFBBF /* Pods-Example-Tests-frameworks.sh */,
6FE61F66C83C50497BB430E4C3C49CD6 /* Pods-Example-Tests-Info.plist */,
2F92A716E93EDF48D0C9EF3C5062B558 /* Pods-Example-Tests-umbrella.h */,
27809964D647C11D4B07299C7B264724 /* Pods-Example-Tests.debug.xcconfig */,
1BA24BC1E607E24F1C9AED046EE27110 /* Pods-Example-Tests.release.xcconfig */,
);
name = "Pods-Example-Tests";
path = "Target Support Files/Pods-Example-Tests";
sourceTree = "<group>";
};
85FAA2FE23142B2837AABDED1ABBE431 /* Siren */ = {
isa = PBXGroup;
children = (
3CDA2F82B5CE0BD747E1FE8BA63539AD /* Siren.bundle */,
F7B3EAF82CFAB96C6721BA02F97FC71B /* Siren.swift */,
108F8CE4A8FCBCCB97F2FAD6A5B6D6D2 /* Extensions */,
96395B3494838F55CD3B289AE14E3EBC /* Managers */,
A2735ADBD845397D9F481076C17C1760 /* Models */,
DAE3F5037DE241FD14030F7285578362 /* Pod */,
C9A9CB18FAE1BDEE996F72E1BA74240D /* Support Files */,
62A567EC72AC1F16179364897645F180 /* Utilities */,
1CB4D55DAEB98D0046DA84E18479FED9 /* View Controllers */,
);
name = Siren;
path = ../..;
sourceTree = "<group>";
};
96395B3494838F55CD3B289AE14E3EBC /* Managers */ = {
isa = PBXGroup;
children = (
08A780E0CDE0D69B789468679AB277EA /* APIManager.swift */,
8B26CBDBDDF69163D512AED074B4549D /* PresentationManager.swift */,
4E841994E6AE2DF727221123E0ED744A /* RulesManager.swift */,
);
name = Managers;
path = Sources/Managers;
sourceTree = "<group>";
};
A2735ADBD845397D9F481076C17C1760 /* Models */ = {
isa = PBXGroup;
children = (
FF347B3A55392D1407E1A4ABC8114173 /* AlertAction.swift */,
19D5FEFBCEC302A522182EEE37AD81B3 /* AlertConstants.swift */,
D06B1A9453346F0CDCD7A4DC41A4F92C /* APIModel.swift */,
CCAD38316B970AACF9940545155FFAF8 /* AppStoreCountry.swift */,
AB4D2B7323F8C610677B540FEEC7673C /* Localization.swift */,
62176AC744B2DC815BA7CD121F4EA473 /* Model.swift */,
7637C46E7C27C83B4C31CECE3D6064B4 /* PerformCheck.swift */,
F1EABF799D1E792CA3E9194926E78605 /* Rules.swift */,
567D8AAC664C44A23EBB5EC6B0AA4049 /* UpdateResults.swift */,
);
name = Models;
path = Sources/Models;
sourceTree = "<group>";
};
A8A8EA9BC9538376CEF195F2EAAC8200 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
E91BC7AD44E15DE8E857ACB38F588DF3 /* Pods-Example */,
79BF3B1D578C929414C256003C35CDDA /* Pods-Example-Tests */,
);
name = "Targets Support Files";
sourceTree = "<group>";
};
B9E413F3FEAF521324127A009A6039BA /* Products */ = {
isa = PBXGroup;
children = (
1F667CC0E19EAF34E5A4119E2121F585 /* Pods_Example.framework */,
A2D5633C9DFACF001D250AC90A2EAD23 /* Pods_Example_Tests.framework */,
17E70395B3CDD0B7EDA622612E2C3144 /* Siren.framework */,
);
name = Products;
sourceTree = "<group>";
};
C9A9CB18FAE1BDEE996F72E1BA74240D /* Support Files */ = {
isa = PBXGroup;
children = (
B297160149C4B307A3DD5A8DDFC7EEF9 /* Siren.modulemap */,
94DA749EC12B6582F7B5F8C0E50736F1 /* Siren-dummy.m */,
8B636D1CA58AC29F35305FCC180DDAD8 /* Siren-Info.plist */,
3F4E87B2E26A88328CDC6588E37F2AD2 /* Siren-prefix.pch */,
2506E5646D43BCE53FBEE1AB44BF4871 /* Siren-umbrella.h */,
1C22073E7207FFF335D3A9EADE0DA51B /* Siren.debug.xcconfig */,
F5743486693D7F303412A3018B0941CF /* Siren.release.xcconfig */,
);
name = "Support Files";
path = "Example/Pods/Target Support Files/Siren";
sourceTree = "<group>";
};
CA5CC6205CFA8B5868F65C2CE32900E5 /* Development Pods */ = {
isa = PBXGroup;
children = (
85FAA2FE23142B2837AABDED1ABBE431 /* Siren */,
);
name = "Development Pods";
sourceTree = "<group>";
};
CF1408CF629C7361332E53B88F7BD30C = {
isa = PBXGroup;
children = (
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
CA5CC6205CFA8B5868F65C2CE32900E5 /* Development Pods */,
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */,
B9E413F3FEAF521324127A009A6039BA /* Products */,
A8A8EA9BC9538376CEF195F2EAAC8200 /* Targets Support Files */,
);
sourceTree = "<group>";
};
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = {
isa = PBXGroup;
children = (
578452D2E740E91742655AC8F1636D1F /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
DAE3F5037DE241FD14030F7285578362 /* Pod */ = {
isa = PBXGroup;
children = (
70689754D9C1D7660D29312893615F94 /* LICENSE */,
033A17C59E0896996DE69A71A44F74D3 /* README.md */,
89F8A185DF29707E4DC9BB13872AF702 /* Siren.podspec */,
);
name = Pod;
sourceTree = "<group>";
};
E91BC7AD44E15DE8E857ACB38F588DF3 /* Pods-Example */ = {
isa = PBXGroup;
children = (
D991827462FB11E20C03858A8A0EF766 /* Pods-Example.modulemap */,
F924C881D2735430B1A17EDFF024E317 /* Pods-Example-acknowledgements.markdown */,
5281882E9C6A7A11616D41DF41B0CC7A /* Pods-Example-acknowledgements.plist */,
850060B744F1FDFB6ADCAFD76D4D34EB /* Pods-Example-dummy.m */,
DDB351CF336FC775897FB3DEFC1AECE1 /* Pods-Example-frameworks.sh */,
688C1754B2F8DFC0710F4772C4A75C32 /* Pods-Example-Info.plist */,
90BF25316BE6972758B31C52602CE12C /* Pods-Example-umbrella.h */,
07692E025EFBB5F5C9DD63817289A7F2 /* Pods-Example.debug.xcconfig */,
2C0257A9A3D8C5B62771A4DDEB17A0ED /* Pods-Example.release.xcconfig */,
);
name = "Pods-Example";
path = "Target Support Files/Pods-Example";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
57B0EAD2BF26101AE4951B7571E127AC /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
F235A549B294F2E848529A1A93F852EB /* Pods-Example-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
810C4E5C60D9DE47607703BE3EF5C570 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
32AEE3D9A55EC66EBCE39C3A38D01126 /* Pods-Example-Tests-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
C1B2B775EC37DA6784A580EC336EB857 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
A1EA2053268A5D5D9AC11C3D74D5BD4F /* Siren-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
0AEE99A309977BD12A049FF48AF9BA4B /* Pods-Example */ = {
isa = PBXNativeTarget;
buildConfigurationList = D3B82CA51562CEF224C9A4BB49C4984C /* Build configuration list for PBXNativeTarget "Pods-Example" */;
buildPhases = (
57B0EAD2BF26101AE4951B7571E127AC /* Headers */,
4FFB70C136C9E782741B288D15B85315 /* Sources */,
5E2E02FD05446E0D72F1A5C4F34A57DB /* Frameworks */,
1D93CD182681FF85B9578413C8D20386 /* Resources */,
);
buildRules = (
);
dependencies = (
5325AFA39850B8A702C4FAF857E8B547 /* PBXTargetDependency */,
);
name = "Pods-Example";
productName = Pods_Example;
productReference = 1F667CC0E19EAF34E5A4119E2121F585 /* Pods_Example.framework */;
productType = "com.apple.product-type.framework";
};
258F10561A9DF823C49949D6176054DD /* Pods-Example-Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = FF4C27B32F8578162520923AA315DD80 /* Build configuration list for PBXNativeTarget "Pods-Example-Tests" */;
buildPhases = (
810C4E5C60D9DE47607703BE3EF5C570 /* Headers */,
222B8840F0BDB57E0AAD162A4612C884 /* Sources */,
19C68C00E0D92CD65F2917255ED5A50B /* Frameworks */,
26CAC077D527B3E5B13B86D2CA4BFF44 /* Resources */,
);
buildRules = (
);
dependencies = (
8292FC67D3422DFD54E714A9A8FF469E /* PBXTargetDependency */,
);
name = "Pods-Example-Tests";
productName = Pods_Example_Tests;
productReference = A2D5633C9DFACF001D250AC90A2EAD23 /* Pods_Example_Tests.framework */;
productType = "com.apple.product-type.framework";
};
A0E2640B83527AE54205D7FDE9C5D930 /* Siren */ = {
isa = PBXNativeTarget;
buildConfigurationList = D32ED6FCE8895E74A4FB89FACB79DC86 /* Build configuration list for PBXNativeTarget "Siren" */;
buildPhases = (
C1B2B775EC37DA6784A580EC336EB857 /* Headers */,
D808E7A6F5C7F3EB841EB711DC313822 /* Sources */,
D01825EFADF2015C2D6F895EE2B5C81A /* Frameworks */,
15A1BDD07A3C42FFD26CA6341DED32EC /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Siren;
productName = Siren;
productReference = 17E70395B3CDD0B7EDA622612E2C3144 /* Siren.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1240;
LastUpgradeCheck = 1340;
};
buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
Base,
en,
);
mainGroup = CF1408CF629C7361332E53B88F7BD30C;
productRefGroup = B9E413F3FEAF521324127A009A6039BA /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
0AEE99A309977BD12A049FF48AF9BA4B /* Pods-Example */,
258F10561A9DF823C49949D6176054DD /* Pods-Example-Tests */,
A0E2640B83527AE54205D7FDE9C5D930 /* Siren */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
15A1BDD07A3C42FFD26CA6341DED32EC /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
FF40E81B2B174F3584493809B90C6668 /* Siren.bundle in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
1D93CD182681FF85B9578413C8D20386 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
26CAC077D527B3E5B13B86D2CA4BFF44 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
222B8840F0BDB57E0AAD162A4612C884 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
487B8148F836C8A64C6ECBBE67126ECA /* Pods-Example-Tests-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4FFB70C136C9E782741B288D15B85315 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6522773E85791CCB1A7256E5C3201E75 /* Pods-Example-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D808E7A6F5C7F3EB841EB711DC313822 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4ECA4FF1C7B4AC6DF846045C5B720A0B /* AlertAction.swift in Sources */,
1D79DF28DA9C6AA8026CBFF47184B6AF /* AlertConstants.swift in Sources */,
D95522B7A00F56B9510A8E58BB5AE8ED /* APIManager.swift in Sources */,
FB731D70855188EDE196CEA745D6940A /* APIModel.swift in Sources */,
18AAE788DE1B28510F53F35A0E68214F /* AppStoreCountry.swift in Sources */,
428DE866FE6650BC83086E281DAD66F2 /* BundleExtension.swift in Sources */,
9952BF0ED5F6B7F18A07976BDD134D41 /* DataParser.swift in Sources */,
300E952C78F6EA5BEBF5B5E31F3706E0 /* DateExtension.swift in Sources */,
425B752B150AAEF5221916E9FC670153 /* KnownError.swift in Sources */,
56AC6974308EB4B394AAF9B703DC7A47 /* Localization.swift in Sources */,
45303C99CEDE9EBA4990949652F4B28D /* Model.swift in Sources */,
151BA7773369BE5FC2A1A56A0ADB1E11 /* PerformCheck.swift in Sources */,
A73E39544FF12C5E5E54F07B0A2F7F78 /* PresentationManager.swift in Sources */,
E5F659EBC88C14C084176F93C9F0156D /* Rules.swift in Sources */,
268E0E6589DE799396C3FBF264AD3996 /* RulesManager.swift in Sources */,
66D1B530F0822D462D840C6E2428F9C0 /* Siren.swift in Sources */,
A1E89EF77BDD0C8D1EE8AAE743D82ED4 /* Siren-dummy.m in Sources */,
C609EB036330DECF2976CE62912E9745 /* SirenViewController.swift in Sources */,
158B5EA21F24D8A42B2C0DA33D6911D2 /* UIAlertControllerExtension.swift in Sources */,
AE1B34BAF1974C7DDAF628092F663F7A /* UpdateResults.swift in Sources */,
C988AA88E47FFA79D317BF4291B2A04D /* UserDefaultsExtension.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
5325AFA39850B8A702C4FAF857E8B547 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Siren;
target = A0E2640B83527AE54205D7FDE9C5D930 /* Siren */;
targetProxy = B52DE15DFA6D788DDC41A589FA9AD9E8 /* PBXContainerItemProxy */;
};
8292FC67D3422DFD54E714A9A8FF469E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Siren;
target = A0E2640B83527AE54205D7FDE9C5D930 /* Siren */;
targetProxy = BF9CC9039B7878DA61A42FFBD3A22E9F /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
33693A1CC9F4648B54726664AFDE566F /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = F5743486693D7F303412A3018B0941CF /* Siren.release.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/Siren/Siren-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Siren/Siren-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/Siren/Siren.modulemap";
PRODUCT_MODULE_NAME = Siren;
PRODUCT_NAME = Siren;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.5;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
7AE7988F711FD5F0C3BBD5F5321193F9 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1C22073E7207FFF335D3A9EADE0DA51B /* Siren.debug.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/Siren/Siren-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Siren/Siren-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/Siren/Siren.modulemap";
PRODUCT_MODULE_NAME = Siren;
PRODUCT_NAME = Siren;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.5;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
893704CF3A7D64225E29C0FC0B12E037 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 27809964D647C11D4B07299C7B264724 /* Pods-Example-Tests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-Example-Tests/Pods-Example-Tests-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Example-Tests/Pods-Example-Tests.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
90D4D09BCB6A4660E43ACBE9ECB6FE9A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_DEBUG=1",
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
9553C89E183877A5CB2F3C6801BEC129 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
A3E9B9058E9A918CE0B415D30ED0A72D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 07692E025EFBB5F5C9DD63817289A7F2 /* Pods-Example.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-Example/Pods-Example-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
B0425CD0BFC3B46122E8E1CC4DB5B5B8 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 2C0257A9A3D8C5B62771A4DDEB17A0ED /* Pods-Example.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-Example/Pods-Example-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
B3B633944F03CF5ACE6C6619C915EC03 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1BA24BC1E607E24F1C9AED046EE27110 /* Pods-Example-Tests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-Example-Tests/Pods-Example-Tests-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Example-Tests/Pods-Example-Tests.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
90D4D09BCB6A4660E43ACBE9ECB6FE9A /* Debug */,
9553C89E183877A5CB2F3C6801BEC129 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
D32ED6FCE8895E74A4FB89FACB79DC86 /* Build configuration list for PBXNativeTarget "Siren" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7AE7988F711FD5F0C3BBD5F5321193F9 /* Debug */,
33693A1CC9F4648B54726664AFDE566F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
D3B82CA51562CEF224C9A4BB49C4984C /* Build configuration list for PBXNativeTarget "Pods-Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A3E9B9058E9A918CE0B415D30ED0A72D /* Debug */,
B0425CD0BFC3B46122E8E1CC4DB5B5B8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
FF4C27B32F8578162520923AA315DD80 /* Build configuration list for PBXNativeTarget "Pods-Example-Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
893704CF3A7D64225E29C0FC0B12E037 /* Debug */,
B3B633944F03CF5ACE6C6619C915EC03 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
}
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1340"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -14,10 +14,10 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "Example.app"
BlueprintName = "Example"
ReferencedContainer = "container:Example.xcodeproj">
BlueprintIdentifier = "258F10561A9DF823C49949D6176054DD"
BuildableName = "Pods_Example_Tests.framework"
BlueprintName = "Pods-Example-Tests"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -28,28 +28,7 @@
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8E3A6C031D07CB6F00A8B7CF"
BuildableName = "Tests.xctest"
BlueprintName = "Tests"
ReferencedContainer = "container:Example.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "Example.app"
BlueprintName = "Example"
ReferencedContainer = "container:Example.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
@@ -61,18 +40,6 @@
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "Example.app"
BlueprintName = "Example"
ReferencedContainer = "container:Example.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
@@ -80,16 +47,15 @@
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EC391801A58B465001C121E"
BuildableName = "Example.app"
BlueprintName = "Example"
ReferencedContainer = "container:Example.xcodeproj">
BlueprintIdentifier = "258F10561A9DF823C49949D6176054DD"
BuildableName = "Pods_Example_Tests.framework"
BlueprintName = "Pods-Example-Tests"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1340"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "0AEE99A309977BD12A049FF48AF9BA4B"
BuildableName = "Pods_Example.framework"
BlueprintName = "Pods-Example"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "0AEE99A309977BD12A049FF48AF9BA4B"
BuildableName = "Pods_Example.framework"
BlueprintName = "Pods-Example"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1340"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -14,10 +14,10 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EF9F852224EACA500B20545"
BlueprintIdentifier = "A0E2640B83527AE54205D7FDE9C5D930"
BuildableName = "Siren.framework"
BlueprintName = "Siren"
ReferencedContainer = "container:Example.xcodeproj">
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -29,8 +29,6 @@
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
@@ -42,17 +40,6 @@
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EF9F852224EACA500B20545"
BuildableName = "Siren.framework"
BlueprintName = "Siren"
ReferencedContainer = "container:Example.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
@@ -63,10 +50,10 @@
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8EF9F852224EACA500B20545"
BlueprintIdentifier = "A0E2640B83527AE54205D7FDE9C5D930"
BuildableName = "Siren.framework"
BlueprintName = "Siren"
ReferencedContainer = "container:Example.xcodeproj">
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
@@ -0,0 +1,29 @@
# Acknowledgements
This application makes use of the following third party libraries:
## Siren
The MIT License (MIT)
Copyright (c) 2015 Arthur Ariel Sabintsev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Generated by CocoaPods - https://cocoapods.org
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>The MIT License (MIT)
Copyright (c) 2015 Arthur Ariel Sabintsev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>Siren</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_Example_Tests : NSObject
@end
@implementation PodsDummy_Pods_Example_Tests
@end
@@ -0,0 +1,186 @@
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
# frameworks to, so exit 0 (signalling the script phase was successful).
exit 0
fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
BCSYMBOLMAP_DIR="BCSymbolMaps"
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
# Copies and strips a vendored framework
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
local source="${BUILT_PRODUCTS_DIR}/$1"
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
elif [ -r "$1" ]; then
local source="$1"
fi
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
# Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied
find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do
echo "Installing $f"
install_bcsymbolmap "$f" "$destination"
rm "$f"
done
rmdir "${source}/${BCSYMBOLMAP_DIR}"
fi
# Use filter instead of exclude so missing patterns don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
elif [ -L "${binary}" ]; then
echo "Destination binary is symlinked..."
dirname="$(dirname "${binary}")"
binary="${dirname}/$(readlink "${binary}")"
fi
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
strip_invalid_archs "$binary"
fi
# Resign the code if required by the build settings to avoid unstable apps
code_sign_if_enabled "${destination}/$(basename "$1")"
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
for lib in $swift_runtime_libs; do
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
code_sign_if_enabled "${destination}/${lib}"
done
fi
}
# Copies and strips a vendored dSYM
install_dsym() {
local source="$1"
warn_missing_arch=${2:-true}
if [ -r "$source" ]; then
# Copy the dSYM into the targets temp dir.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
local basename
basename="$(basename -s .dSYM "$source")"
binary_name="$(ls "$source/Contents/Resources/DWARF")"
binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
# Strip invalid architectures from the dSYM.
if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
strip_invalid_archs "$binary" "$warn_missing_arch"
fi
if [[ $STRIP_BINARY_RETVAL == 0 ]]; then
# Move the stripped file into its final destination.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
else
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
mkdir -p "${DWARF_DSYM_FOLDER_PATH}"
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
fi
fi
}
# Used as a return value for each invocation of `strip_invalid_archs` function.
STRIP_BINARY_RETVAL=0
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
warn_missing_arch=${2:-true}
# Get architectures for current target binary
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
# Intersect them with the architectures we are building for
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
# If there are no archs supported by this binary then warn the user
if [[ -z "$intersected_archs" ]]; then
if [[ "$warn_missing_arch" == "true" ]]; then
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
fi
STRIP_BINARY_RETVAL=1
return
fi
stripped=""
for arch in $binary_archs; do
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary"
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
STRIP_BINARY_RETVAL=0
}
# Copies the bcsymbolmap files of a vendored framework
install_bcsymbolmap() {
local bcsymbolmap_path="$1"
local destination="${BUILT_PRODUCTS_DIR}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identity
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/Siren/Siren.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/Siren/Siren.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
@@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_Example_TestsVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_Example_TestsVersionString[];
@@ -0,0 +1,16 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
OTHER_LDFLAGS = $(inherited) -framework "Siren"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
@@ -0,0 +1,6 @@
framework module Pods_Example_Tests {
umbrella header "Pods-Example-Tests-umbrella.h"
export *
module * { export * }
}
@@ -0,0 +1,16 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
OTHER_LDFLAGS = $(inherited) -framework "Siren"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
@@ -0,0 +1,29 @@
# Acknowledgements
This application makes use of the following third party libraries:
## Siren
The MIT License (MIT)
Copyright (c) 2015 Arthur Ariel Sabintsev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Generated by CocoaPods - https://cocoapods.org
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>The MIT License (MIT)
Copyright (c) 2015 Arthur Ariel Sabintsev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>Siren</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_Example : NSObject
@end
@implementation PodsDummy_Pods_Example
@end
+186
View File
@@ -0,0 +1,186 @@
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
# frameworks to, so exit 0 (signalling the script phase was successful).
exit 0
fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
BCSYMBOLMAP_DIR="BCSymbolMaps"
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
# Copies and strips a vendored framework
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
local source="${BUILT_PRODUCTS_DIR}/$1"
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
elif [ -r "$1" ]; then
local source="$1"
fi
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
# Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied
find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do
echo "Installing $f"
install_bcsymbolmap "$f" "$destination"
rm "$f"
done
rmdir "${source}/${BCSYMBOLMAP_DIR}"
fi
# Use filter instead of exclude so missing patterns don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
elif [ -L "${binary}" ]; then
echo "Destination binary is symlinked..."
dirname="$(dirname "${binary}")"
binary="${dirname}/$(readlink "${binary}")"
fi
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
strip_invalid_archs "$binary"
fi
# Resign the code if required by the build settings to avoid unstable apps
code_sign_if_enabled "${destination}/$(basename "$1")"
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
for lib in $swift_runtime_libs; do
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
code_sign_if_enabled "${destination}/${lib}"
done
fi
}
# Copies and strips a vendored dSYM
install_dsym() {
local source="$1"
warn_missing_arch=${2:-true}
if [ -r "$source" ]; then
# Copy the dSYM into the targets temp dir.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
local basename
basename="$(basename -s .dSYM "$source")"
binary_name="$(ls "$source/Contents/Resources/DWARF")"
binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
# Strip invalid architectures from the dSYM.
if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
strip_invalid_archs "$binary" "$warn_missing_arch"
fi
if [[ $STRIP_BINARY_RETVAL == 0 ]]; then
# Move the stripped file into its final destination.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
else
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
mkdir -p "${DWARF_DSYM_FOLDER_PATH}"
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
fi
fi
}
# Used as a return value for each invocation of `strip_invalid_archs` function.
STRIP_BINARY_RETVAL=0
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
warn_missing_arch=${2:-true}
# Get architectures for current target binary
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
# Intersect them with the architectures we are building for
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
# If there are no archs supported by this binary then warn the user
if [[ -z "$intersected_archs" ]]; then
if [[ "$warn_missing_arch" == "true" ]]; then
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
fi
STRIP_BINARY_RETVAL=1
return
fi
stripped=""
for arch in $binary_archs; do
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary"
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
STRIP_BINARY_RETVAL=0
}
# Copies the bcsymbolmap files of a vendored framework
install_bcsymbolmap() {
local bcsymbolmap_path="$1"
local destination="${BUILT_PRODUCTS_DIR}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identity
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/Siren/Siren.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/Siren/Siren.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
+129
View File
@@ -0,0 +1,129 @@
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
# If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
# resources to, so exit 0 (signalling the script phase was successful).
exit 0
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
XCASSET_FILES=()
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
case "${TARGETED_DEVICE_FAMILY:-}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
install_resource()
{
if [[ "$1" = /* ]] ; then
RESOURCE_PATH="$1"
else
RESOURCE_PATH="${PODS_ROOT}/$1"
fi
if [[ ! -e "$RESOURCE_PATH" ]] ; then
cat << EOM
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
EOM
exit 1
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_resource "${PODS_ROOT}/../../Sources/Siren.bundle"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_resource "${PODS_ROOT}/../../Sources/Siren.bundle"
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
rm -f "$RESOURCES_TO_COPY"
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
then
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
while read line; do
if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
else
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
fi
fi
@@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_ExampleVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_ExampleVersionString[];
@@ -0,0 +1,16 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
OTHER_LDFLAGS = $(inherited) -framework "Siren"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
@@ -0,0 +1,6 @@
framework module Pods_Example {
umbrella header "Pods-Example-umbrella.h"
export *
module * { export * }
}
@@ -0,0 +1,16 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Siren/Siren.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Siren"
OTHER_LDFLAGS = $(inherited) -framework "Siren"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
+26
View File
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>6.0.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
+5
View File
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Siren : NSObject
@end
@implementation PodsDummy_Siren
@end
+12
View File
@@ -0,0 +1,12 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
+16
View File
@@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double SirenVersionNumber;
FOUNDATION_EXPORT const unsigned char SirenVersionString[];
@@ -0,0 +1,13 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Siren
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
+6
View File
@@ -0,0 +1,6 @@
framework module Siren {
umbrella header "Siren-umbrella.h"
export *
module * { export * }
}
@@ -0,0 +1,13 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Siren
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
+9
View File
@@ -0,0 +1,9 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Siren
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
-22
View File
@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
-19
View File
@@ -1,19 +0,0 @@
//
// Siren.h
// Siren
//
// Created by Arthur Sabintsev on 3/29/19.
// Copyright © 2019 Sabintsev iOS Projects. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for Siren.
FOUNDATION_EXPORT double SirenVersionNumber;
//! Project version string for Siren.
FOUNDATION_EXPORT const unsigned char SirenVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <Siren/PublicHeader.h>
+48 -24
View File
@@ -15,6 +15,14 @@ final class SirenTests: XCTestCase {
}
// MARK: - API
extension SirenTests {
func testAPIDefaultsToUnitedStatesAppStore() {
XCTAssertEqual(siren.apiManager.country, AppStoreCountry.unitedStates)
}
}
// MARK: - Updates
extension SirenTests {
@@ -220,7 +228,7 @@ extension SirenTests {
let language: Localization.Language = .croatian
// Update Available
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "Nova ažuriranje je stigla")
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "Novo ažuriranje je dostupno")
// Next time
XCTAssertEqual(Bundle.localizedString(forKey: "Next time", andForceLocalization: language), "Sljedeći put")
@@ -343,19 +351,19 @@ extension SirenTests {
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "Update")
}
func testGreekLocalization() {
let language: Localization.Language = .greek
// Update Available
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "Διαθέσιμη Ενημέρωση")
// Next time
XCTAssertEqual(Bundle.localizedString(forKey: "Next time", andForceLocalization: language), "Άλλη φορά")
// Skip this version
XCTAssertEqual(Bundle.localizedString(forKey: "Skip this version", andForceLocalization: language), "Αγνόησε αυτήν την έκδοση")
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "Αναβάθμιση")
}
@@ -525,49 +533,49 @@ extension SirenTests {
// Update Available
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "بروزرسانی در دسترس")
// Next time
XCTAssertEqual(Bundle.localizedString(forKey: "Next time", andForceLocalization: language), "دفعه بعد")
// Skip this version
XCTAssertEqual(Bundle.localizedString(forKey: "Skip this version", andForceLocalization: language), "رد این نسخه")
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "بروزرسانی")
}
func testPersianAfghanistanLocalization() {
let language: Localization.Language = .persianAfghanistan
// Update Available
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "بروزرسانی در دسترس")
// Next time
XCTAssertEqual(Bundle.localizedString(forKey: "Next time", andForceLocalization: language), "دگر بار")
// Skip this version
XCTAssertEqual(Bundle.localizedString(forKey: "Skip this version", andForceLocalization: language), "رد این نسخه")
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "بروزرسانی")
}
func testPersianIranLocalization() {
let language: Localization.Language = .persianIran
// Update Available
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "بروزرسانی در دسترس")
// Next time
XCTAssertEqual(Bundle.localizedString(forKey: "Next time", andForceLocalization: language), "دفعه بعد")
// Skip this version
XCTAssertEqual(Bundle.localizedString(forKey: "Skip this version", andForceLocalization: language), "رد این نسخه")
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "بروزرسانی")
}
func testPolishLocalization() {
let language: Localization.Language = .polish
@@ -616,6 +624,22 @@ extension SirenTests {
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "Actualizar")
}
func testRomanianLocalization() {
let language: Localization.Language = .romanian
// Update Available
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "Actualizare disponibilă")
// Next time
XCTAssertEqual(Bundle.localizedString(forKey: "Next time", andForceLocalization: language), "Data viitoare")
// Skip this version
XCTAssertEqual(Bundle.localizedString(forKey: "Skip this version", andForceLocalization: language), "Ignor această versiune")
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "Actualizare")
}
func testRussianLocalization() {
let language: Localization.Language = .russian
@@ -749,17 +773,17 @@ extension SirenTests {
// Update Available
XCTAssertEqual(Bundle.localizedString(forKey: "Update Available", andForceLocalization: language), "Доступне Оновлення")
// Next time
XCTAssertEqual(Bundle.localizedString(forKey: "Next time", andForceLocalization: language), "Наступного разу")
// Skip this version
XCTAssertEqual(Bundle.localizedString(forKey: "Skip this version", andForceLocalization: language), "Пропустити версію")
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "Оновити")
}
func testUrduLocalization() {
let language: Localization.Language = .urdu
@@ -775,7 +799,7 @@ extension SirenTests {
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "اپڈیٹ کریں")
}
func testVietnameseLocalization() {
let language: Localization.Language = .vietnamese
@@ -791,5 +815,5 @@ extension SirenTests {
// Update
XCTAssertEqual(Bundle.localizedString(forKey: "Update", andForceLocalization: language), "Cập nhật")
}
}
-5
View File
@@ -1,5 +0,0 @@
source "https://rubygems.org"
gem "cocoapods"
gem "jazzy", :git => "https://www.github.com/realm/jazzy.git"
gem "rubygems-bundler"
-114
View File
@@ -1,114 +0,0 @@
GIT
remote: https://www.github.com/realm/jazzy.git
revision: 04b0cd720f6c25c1582939020757b96331e9472f
specs:
jazzy (0.9.5)
cocoapods (~> 1.5.3)
mustache (~> 1.1.0)
open4
redcarpet (~> 3.4.0)
rouge (>= 2.0.6, < 4.0)
sass (~> 3.6.0)
sqlite3 (~> 1.3.13)
xcinvoke (~> 0.3.0)
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.0)
activesupport (4.2.11.1)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
atomos (0.1.3)
bundler-unload (1.0.2)
claide (1.0.2)
cocoapods (1.5.3)
activesupport (>= 4.0.2, < 5)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.5.3)
cocoapods-deintegrate (>= 1.0.2, < 2.0)
cocoapods-downloader (>= 1.2.0, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-stats (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.3.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (~> 2.0.1)
gh_inspector (~> 1.0)
molinillo (~> 0.6.5)
nap (~> 1.0)
ruby-macho (~> 1.1)
xcodeproj (>= 1.5.7, < 2.0)
cocoapods-core (1.5.3)
activesupport (>= 4.0.2, < 6)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.2.2)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.0)
cocoapods-stats (1.1.0)
cocoapods-trunk (1.3.1)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.1.0)
colored2 (3.1.2)
concurrent-ruby (1.1.5)
escape (0.0.4)
executable-hooks (1.6.0)
ffi (1.10.0)
fourflusher (2.0.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
liferaft (0.0.6)
minitest (5.11.3)
molinillo (0.6.6)
mustache (1.1.0)
nanaimo (0.2.6)
nap (1.1.0)
netrc (0.11.0)
open4 (1.3.4)
rb-fsevent (0.10.3)
rb-inotify (0.10.0)
ffi (~> 1.0)
redcarpet (3.4.0)
rouge (3.3.0)
ruby-macho (1.4.0)
rubygems-bundler (1.4.5)
bundler-unload (>= 1.0.2)
executable-hooks (>= 1.5.0)
sass (3.6.0)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sqlite3 (1.3.13)
thread_safe (0.3.6)
tzinfo (1.2.5)
thread_safe (~> 0.1)
xcinvoke (0.3.0)
liferaft (~> 0.0.6)
xcodeproj (1.8.2)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.2.6)
PLATFORMS
ruby
DEPENDENCIES
cocoapods
jazzy!
rubygems-bundler
BUNDLED WITH
2.0.1
+5 -11
View File
@@ -1,16 +1,10 @@
// swift-tools-version:4.2
// swift-tools-version:5.5
import PackageDescription
let package = Package(
name: "Siren",
// platforms: [.iOS("8.0")],
products: [
.library(name: "Siren", targets: ["Siren"])
],
targets: [
.target(
name: "Siren",
path: "Sources"
)
]
platforms: [.iOS(.v13), .tvOS(.v13)],
products: [.library(name: "Siren", targets: ["Siren"])],
targets: [.target(name: "Siren", path: "Sources", resources: [.copy("Siren.bundle"), .copy("PrivacyInfo.xcprivacy")])],
swiftLanguageVersions: [.v5]
)
+45 -28
View File
@@ -2,7 +2,13 @@
### Notify users when a new version of your app is available and prompt them to upgrade.
[![Travis CI Status](https://travis-ci.org/ArtSabintsev/Siren.svg?branch=master)](https://travis-ci.org/ArtSabintsev/Siren) ![Documentation](https://github.com/ArtSabintsev/Siren/blob/master/docs/badge.svg) ![Swift Support](https://img.shields.io/badge/Swift-4.2%2C%204.1%2C%203.2%2C%203.1%202.3-orange.svg) [![CocoaPods](https://img.shields.io/cocoapods/v/Siren.svg)](https://cocoapods.org/pods/Siren) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Accio supported](https://img.shields.io/badge/Accio-supported-0A7CF5.svg?style=flat)](https://github.com/JamitLabs/Accio) [![SwiftPM Compatible](https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg)](https://swift.org/package-manager/)
![Swift Support](https://img.shields.io/badge/Swift-5.5-orange.svg) [![CocoaPods](https://img.shields.io/cocoapods/v/Siren.svg)](https://cocoapods.org/pods/Siren) [![SwiftPM Compatible](https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg)](https://swift.org/package-manager/) [![Accio supported](https://img.shields.io/badge/Accio-supported-0A7CF5.svg?style=flat)](https://github.com/JamitLabs/Accio)
---
# Important Information
I stopped being a proactive iOS engineer in 2021. For the time being, I will keep this library maintained for the community, but I will not be proactively adding features.
---
@@ -44,15 +50,12 @@ Siren is built to work with the [**Semantic Versioning**](https://semver.org/) s
## Features
### Current Features
- [x] CocoaPods, Carthage, and Swift Package Manager Support (see [Installation Instructions](https://github.com/ArtSabintsev/Siren#installation-instructions))
- [x] Compatible with iOS 13+ and tvOS 13+
- [x] CocoaPods and Swift Package Manager Support (see [Installation Instructions](https://github.com/ArtSabintsev/Siren#installation-instructions))
- [x] Three Types of Alerts (see [Screenshots](https://github.com/ArtSabintsev/Siren#screenshots))
- [x] Highly Customizable Presentation Rules (see [Implementation Examples](https://github.com/ArtSabintsev/Siren#implementation-examples))
- [x] Localized for 40+ Languages (see [Localization](https://github.com/ArtSabintsev/Siren#localization))
- [x] Device Compatibility Check (see [Device Compatibility](https://github.com/ArtSabintsev/Siren#device-compatibility))
- [x] 100% Documentation Coverage (see https://sabintsev.com/Siren)
### Future Features
A list of future development work can be found on [Siren's Kanban Board](https://github.com/ArtSabintsev/Siren/projects/1).
---
@@ -84,16 +87,20 @@ A list of future development work can be found on [Siren's Kanban Board](https:/
| Swift Version | Branch Name | Will Continue to Receive Updates?
| ------------- | ------------- | -------------
| 5.0 | master | **Yes**
| 4.2 | swift4.2 | No
| 4.1 | swift4.1 | No
| 3.2 | swift3.2 | No
| 3.1 | swift3.1 | No
| 2.3 | swift2.3 | No
| 5.5+ | master | **Yes**
| 5.1-5.4 | swift5.4 | No
| 5.0 | swift5.0 | No
| 4.2 | swift4.2 | No
| 4.1 | swift4.1 | No
| 3.2 | swift3.2 | No
| 3.1 | swift3.1 | No
| 2.3 | swift2.3 | No
### CocoaPods
```ruby
pod 'Siren' # Swift 5.0
pod 'Siren' # Swift 5.5+
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift5.4' # Swift 5.1-5.4
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift5.0' # Swift 5.0
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift4.2' # Swift 4.2
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift4.1' # Swift 4.1
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift3.2' # Swift 3.2
@@ -101,30 +108,21 @@ pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'sw
pod 'Siren', :git => 'https://github.com/ArtSabintsev/Siren.git', :branch => 'swift2.3' # Swift 2.3
```
### Carthage
```swift
github "ArtSabintsev/Siren" // Swift 5.0
github "ArtSabintsev/Siren" "swift4.2" // Swift 4.2
github "ArtSabintsev/Siren" "swift4.1" // Swift 4.1
github "ArtSabintsev/Siren" "swift3.2" // Swift 3.2
github "ArtSabintsev/Siren" "swift3.1" // Swift 3.1
github "ArtSabintsev/Siren" "swift2.3" // Swift 2.3
```
### Swift Package Manager
```swift
.Package(url: "https://github.com/ArtSabintsev/Siren.git", majorVersion: 5)
.Package(url: "https://github.com/ArtSabintsev/Siren.git", majorVersion: 6)
```
## Implementation Examples
Implementing Siren is as easy as adding two lines of code to your app:
Implementing Siren is as easy as adding two lines of code to your app in **either** `AppDelegate.swift` or `SceneDelegate.swift`:
### AppDelegate.swift Example
```swift
import Siren // Line 1
import UIKit
@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
@@ -137,6 +135,25 @@ final class AppDelegate: UIResponder, UIApplicationDelegate {
}
```
### SceneDelegate.swift Example
```swift
import Siren // Line 1
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
window?.makeKeyAndVisible()
Siren.shared.wail() // Line 2
return true
}
}
```
Siren also has plenty of customization options. All examples can be found in the Example Project's [**AppDelegate**](https://github.com/ArtSabintsev/Siren/blob/master/Example/Example/AppDelegate.swift) file. Uncomment the example you'd like to test.
---
@@ -146,7 +163,7 @@ Siren also has plenty of customization options. All examples can be found in the
## Localization
Siren is localized for the following languages:
Arabic, Armenian, Basque, Chinese (Simplified and Traditional), Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hebrew, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Malay, Norwegian (Bokmål), Persian (Afghanistan, Iran, Persian), Polish, Portuguese (Brazil and Portugal), Russian, Serbian (Cyrillic and Latin), Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Urdu, Vietnamese
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), Romanian, Russian, Serbian (Cyrillic and Latin), Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Urdu, Vietnamese
If your user's device is set to one of the supported locales, an update message will appear in that language. If a locale is not supported, than the message will appear in English.
@@ -167,7 +184,7 @@ If an app update is available, Siren checks to make sure that the version of iOS
## Testing Siren Locally
Temporarily change the version string in Xcode (within the `.xcodeproj` file) 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 [App Store Connect](https://itunes.apple.com/app/id1234793120) app's bundleID: `com.apple.AppStoreConnect`.
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 Facebook's Bundle ID: `com.facebook.Facebook`.
## Words of Caution
Occasionally, the iTunes JSON will update faster than the App Store CDN, meaning the JSON may state that the new version of the app has been released, while no new binary is made available for download via the App Store. It is for this reason that Siren will, by default, wait 1 day (24 hours) after the JSON has been updated to prompt the user to update. To change the default setting, please modify the value of `showAlertAfterCurrentVersionHasBeenReleasedForDays`.
+8 -8
View File
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
# Version
s.version = "5.0.1"
s.swift_version = "5.0"
s.version = "6.1.3"
s.swift_version = "5.5"
# Meta
s.name = "Siren"
@@ -14,10 +14,10 @@ Pod::Spec.new do |s|
DESC
# Compatibility & Sources
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/ArtSabintsev/Siren.git", :tag => s.version.to_s }
s.source_files = 'Sources/**/*.swift'
s.resources = 'Sources/Siren.bundle'
s.requires_arc = true
s.ios.deployment_target = '13.0'
s.tvos.deployment_target = '13.0'
s.source = { :git => "https://github.com/ArtSabintsev/Siren.git", :tag => s.version.to_s }
s.source_files = 'Sources/**/*.swift'
s.resources = 'Sources/Siren.bundle'
s.requires_arc = true
end
+5 -1
View File
@@ -26,7 +26,7 @@ extension Bundle {
static let table = "SirenLocalizable"
}
/// Fetches the current verison of the app.
/// Fetches the current version of the app.
///
/// - Returns: The current installed version of the app.
final class func version() -> String? {
@@ -82,7 +82,11 @@ private extension Bundle {
///
/// - Returns: The bundle's path or `nil`.
final class func sirenBundlePath() -> String? {
#if SWIFT_PACKAGE
return Bundle.module.path(forResource: "\(Siren.self)", ofType: Constants.bundleExtension)
#else
return Bundle(for: Siren.self).path(forResource: "\(Siren.self)", ofType: Constants.bundleExtension)
#endif
}
/// The path for a particular language localizationin Siren's localization `Bundle`.
@@ -14,6 +14,7 @@ extension UIAlertController {
///
/// - Parameter window: The `UIWindow` that _should_ reference Siren's `UIAlertController`.
func show(window: UIWindow) {
guard !self.isBeingPresented else { return }
window.makeKeyAndVisible()
window.rootViewController?.present(self, animated: true, completion: nil)
}
+61 -51
View File
@@ -16,28 +16,36 @@ public struct APIManager {
static let bundleID = "bundleId"
/// Constant for the `country` parameter in the iTunes Lookup API request.
static let country = "country"
/// Constant for the `lang` parameter in the iTunes Lookup API request.
static let language = "lang"
/// Constant for the `entity` parameter in the iTunes Lookup API reqeust.
static let entity = "entity"
/// Constant for the `entity` parameter value when performing a tvOS iTunes Lookup API reqeust.
static let tvSoftware = "tvSoftware"
}
/// Return results or errors obtained from performing a version check with Siren.
typealias CompletionHandler = (Result<APIModel, KnownError>) -> Void
/// The Bundle ID for the your application. Defaults to "Bundle.main.bundleIdentifier".
let bundleID: String?
/// The region or country of an App Store in which the app is available.
/// By default, all version check requests are performed against the US App Store.
/// If the app is not available in the US App Store, set it to the identifier of at least one App Store region within which it is available.
///
/// [List of country codes](https://help.apple.com/app-store-connect/#/dev997f9cf7c)
///
let countryCode: String?
let country: AppStoreCountry
/// The language for the localization of App Store responses.
let language: String?
/// Initializes `APIManager` to the region or country of an App Store in which the app is available.
/// By default, all version check requests are performed against the US App Store.
/// If the app is not available in the US App Store, set it to the identifier of at least one App Store region within which it is available.
///
/// [List of country codes](https://help.apple.com/app-store-connect/#/dev997f9cf7c)
///
/// - Parameter countryCode: The country code for the App Store in which the app is availabe. Defaults to nil (e.g., the US App Store)
public init(countryCode: String? = nil) {
self.countryCode = countryCode
/// By default, all version check requests are performed against the US App Store and the language of the copy/text is returned in English.
/// - Parameters:
/// - country: The country for the App Store in which the app is available.
/// - language: The locale to use for the App Store notes. The default result the API returns is equivalent to passing "en_us", so passing `nil` is equivalent to passing "en_us".
/// - bundleID: The bundleID for your app. Defaults to `Bundle.main.bundleIdentifier`. Passing `nil` will throw a `missingBundleID` error.
public init(country: AppStoreCountry = .unitedStates, language: String? = nil, bundleID: String? = Bundle.main.bundleIdentifier) {
self.country = country
self.language = language
self.bundleID = bundleID
}
/// The default `APIManager`.
@@ -47,24 +55,29 @@ public struct APIManager {
}
extension APIManager {
/// Convenience initializer that initializes `APIManager` to the region or country of an App Store in which the app is available.
/// If nil, version check requests are performed against the US App Store.
///
/// - Parameter countryCode: The raw country code for the App Store in which the app is available.
public init(countryCode: String?) {
self.init(country: .init(code: countryCode))
}
/// Creates and performs a URLRequest against the iTunes Lookup API.
///
/// - Parameter handler: The completion handler for the iTunes Lookup API request.
func performVersionCheckRequest(completion handler: CompletionHandler?) {
guard Bundle.main.bundleIdentifier != nil else {
handler?(.failure(.missingBundleID))
return
/// - returns APIModel: The decoded JSON as an instance of APIModel.
func performVersionCheckRequest() async throws -> APIModel {
guard bundleID != nil else {
throw KnownError.missingBundleID
}
do {
let url = try makeITunesURL()
let request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 30)
URLSession.shared.dataTask(with: request) { (data, response, error) in
URLCache.shared.removeCachedResponse(for: request)
self.processVersionCheckResults(withData: data, response: response, error: error, completion: handler)
}.resume()
let (data, response) = try await URLSession.shared.data(for: request)
return try processVersionCheckResults(withData: data, response: response)
} catch {
handler?(.failure(.malformedURL))
throw error
}
}
@@ -73,33 +86,20 @@ extension APIManager {
/// - Parameters:
/// - data: The JSON data returned from the request.
/// - response: The response metadata returned from the request.
/// - error: The error returned from the request.
/// - handler: The completion handler to call once the results of the request has been processed.
private func processVersionCheckResults(withData data: Data?,
response: URLResponse?,
error: Error?,
completion handler: CompletionHandler?) {
if let error = error {
handler?(.failure(.appStoreDataRetrievalFailure(underlyingError: error)))
} else {
guard let data = data else {
handler?(.failure(.appStoreDataRetrievalFailure(underlyingError: nil)))
return
}
do {
let apiModel = try JSONDecoder().decode(APIModel.self, from: data)
private func processVersionCheckResults(withData data: Data?, response: URLResponse?) throws -> APIModel {
guard let data = data else {
throw KnownError.appStoreDataRetrievalFailure(underlyingError: nil)
}
do {
let apiModel = try JSONDecoder().decode(APIModel.self, from: data)
guard !apiModel.results.isEmpty else {
handler?(.failure(.appStoreDataRetrievalEmptyResults))
return
}
DispatchQueue.main.async {
handler?(.success(apiModel))
}
} catch {
handler?(.failure(.appStoreJSONParsingFailure(underlyingError: error)))
guard !apiModel.results.isEmpty else {
throw KnownError.appStoreDataRetrievalEmptyResults
}
return apiModel
} catch {
throw KnownError.appStoreJSONParsingFailure(underlyingError: error)
}
}
@@ -113,12 +113,22 @@ extension APIManager {
components.host = "itunes.apple.com"
components.path = "/lookup"
var items: [URLQueryItem] = [URLQueryItem(name: Constants.bundleID, value: Bundle.main.bundleIdentifier)]
var items: [URLQueryItem] = [URLQueryItem(name: Constants.bundleID, value: bundleID)]
if let countryCode = countryCode {
#if os(tvOS)
let tvOSQueryItem = URLQueryItem(name: Constants.entity, value: Constants.tvSoftware)
items.append(tvOSQueryItem)
#endif
if let countryCode = country.code {
let item = URLQueryItem(name: Constants.country, value: countryCode)
items.append(item)
}
if let language = language {
let item = URLQueryItem(name: Constants.language, value: language)
items.append(item)
}
components.queryItems = items
+69 -41
View File
@@ -9,9 +9,9 @@
import UIKit
/// PresentationManager for Siren
public struct PresentationManager {
public class PresentationManager {
/// Return results or errors obtained from performing a version check with Siren.
typealias CompletionHandler = (AlertAction) -> Void
typealias CompletionHandler = (AlertAction, String?) -> Void
/// The localization data structure that will be used to construct localized strings for the update alert.
let localization: Localization
@@ -38,12 +38,7 @@ public struct PresentationManager {
var alertController: UIAlertController?
/// The `UIWindow` instance that presents the `SirenViewController`.
private var updaterWindow: UIWindow {
let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = SirenViewController()
window.windowLevel = UIWindow.Level.alert + 1
return window
}
private lazy var updaterWindow = createWindow()
/// `PresentationManager`'s public initializer.
///
@@ -82,6 +77,8 @@ public struct PresentationManager {
public static let `default` = PresentationManager()
}
// MARK: - Alert Lifecycle
extension PresentationManager {
/// Constructs the localized update alert `UIAlertController` object.
@@ -90,9 +87,9 @@ extension PresentationManager {
/// - rules: The rules that are used to define the type of alert that should be presented.
/// - currentAppStoreVersion: The current version of the app in the App Store.
/// - handler: The completion handler that returns the an `AlertAction` depending on the type of action the end-user took.
mutating func presentAlert(withRules rules: Rules,
forCurrentAppStoreVersion currentAppStoreVersion: String,
completion handler: CompletionHandler?) {
func presentAlert(withRules rules: Rules,
forCurrentAppStoreVersion currentAppStoreVersion: String,
completion handler: CompletionHandler?) {
UserDefaults.alertPresentationDate = Date()
// Alert Title
@@ -130,36 +127,49 @@ extension PresentationManager {
alertController?.addAction(nextTimeAlertAction(completion: handler))
alertController?.addAction(skipAlertAction(forCurrentAppStoreVersion: currentAppStoreVersion, completion: handler))
case .none:
handler?(.unknown)
handler?(.unknown, nil)
}
// If the alertType is .none, an alert will not be presented.
// If the `updaterWindow` is not hidden, then an alert is already presented.
// The latter prevents `UIAlertControllers` from appearing on top of each other.
if rules.alertType != .none && updaterWindow.isHidden {
// The latter prevents `UIAlertController`'s from appearing on top of each other.
if rules.alertType != .none, let updaterWindow = updaterWindow, updaterWindow.isHidden {
alertController?.show(window: updaterWindow)
} else {
// This is a safety precaution to avoid multiple windows from presenting on top of each other.
cleanUp()
}
}
/// Removes the `alertController` from memory.
func cleanUp() {
guard let updaterWindow = updaterWindow else { return }
alertController?.hide(window: updaterWindow)
alertController?.dismiss(animated: true, completion: nil)
updaterWindow.resignKey()
}
}
// MARK: - Alert Actions
private extension PresentationManager {
/// The `UIAlertAction` that is executed when the `Update` option is selected.
///
/// - Parameters:
/// - handler: The completion handler that returns the `.update` option.
/// - Returns: The `Update` alert action.
private func updateAlertAction(completion handler: CompletionHandler?) -> UIAlertAction {
func updateAlertAction(completion handler: CompletionHandler?) -> UIAlertAction {
let title: String
if self.updateButtonTitle == AlertConstants.updateButtonTitle {
if updateButtonTitle == AlertConstants.updateButtonTitle {
title = localization.updateButtonTitle()
} else {
title = self.updateButtonTitle
title = updateButtonTitle
}
let action = UIAlertAction(title: title, style: .default) { _ in
self.cleanUpAlertController()
Siren.shared.launchAppStore()
handler?(.appStore)
self.cleanUp()
handler?(.appStore, nil)
return
}
@@ -171,18 +181,17 @@ extension PresentationManager {
/// - Parameters:
/// - handler: The completion handler that returns the `.nextTime` option.
/// - Returns: The `Next time` alert action.
private func nextTimeAlertAction(completion handler: CompletionHandler?) -> UIAlertAction {
func nextTimeAlertAction(completion handler: CompletionHandler?) -> UIAlertAction {
let title: String
if self.nextTimeButtonTitle == AlertConstants.nextTimeButtonTitle {
if nextTimeButtonTitle == AlertConstants.nextTimeButtonTitle {
title = localization.nextTimeButtonTitle()
} else {
title = self.nextTimeButtonTitle
title = nextTimeButtonTitle
}
let action = UIAlertAction(title: title, style: .default) { _ in
self.cleanUpAlertController()
handler?(.nextTime)
self.cleanUp()
handler?(.nextTime, nil)
return
}
@@ -195,30 +204,49 @@ extension PresentationManager {
/// - currentAppStoreVersion: The current version of the app in the App Store.
/// - handler: The completion handler that returns the `.skip` option.
/// - Returns: The `Skip this version` alert action.
private func skipAlertAction(forCurrentAppStoreVersion currentAppStoreVersion: String, completion handler: CompletionHandler?) -> UIAlertAction {
func skipAlertAction(forCurrentAppStoreVersion currentAppStoreVersion: String, completion handler: CompletionHandler?) -> UIAlertAction {
let title: String
if self.skipButtonTitle == AlertConstants.skipButtonTitle {
if skipButtonTitle == AlertConstants.skipButtonTitle {
title = localization.skipButtonTitle()
} else {
title = self.skipButtonTitle
title = skipButtonTitle
}
let action = UIAlertAction(title: title, style: .default) { _ in
UserDefaults.storedSkippedVersion = currentAppStoreVersion
UserDefaults.standard.synchronize()
self.cleanUpAlertController()
handler?(.skip)
self.cleanUp()
handler?(.skip, currentAppStoreVersion)
return
}
return action
}
}
/// Removes the `alertController` from memory.
private func cleanUpAlertController() {
alertController?.hide(window: self.updaterWindow)
alertController?.dismiss(animated: false, completion: nil)
// MARK: - Helpers
private extension PresentationManager {
private func createWindow() -> UIWindow? {
guard let windowScene = getFirstForegroundScene() else { return nil }
let window = UIWindow(windowScene: windowScene)
window.windowLevel = UIWindow.Level.alert + 1
let viewController = SirenViewController()
viewController.retainedWindow = window
window.rootViewController = viewController
return window
}
@available(iOS 13.0, tvOS 13.0, *)
private func getFirstForegroundScene() -> UIWindowScene? {
let connectedScenes = UIApplication.shared.connectedScenes
if let windowActiveScene = connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
return windowActiveScene
} else if let windowInactiveScene = connectedScenes.first(where: { $0.activationState == .foregroundInactive }) as? UIWindowScene {
return windowInactiveScene
} else {
return nil
}
}
}
+4 -3
View File
@@ -81,15 +81,16 @@ public struct RulesManager {
/// Returns the appropriate update rules based on the type of version that is returned from the API.
///
/// - Parameter type: The type of app update.
/// - Parameters: type: The type of app update.
/// - Throws: The `noUpdateAvailable` error since this is the only way a valie of `unknown` can occur.
/// - Returns: The appropriate rule based on the type of app update that is returned by the API.
func loadRulesForUpdateType(_ type: UpdateType) -> Rules {
func loadRulesForUpdateType(_ type: UpdateType) throws -> Rules {
switch type {
case .major: return majorUpdateRules
case .minor: return minorUpdateRules
case .patch: return patchUpdateRules
case .revision: return revisionUpdateRules
case .unknown: return majorUpdateRules
case .unknown: throw KnownError.noUpdateAvailable
}
}
+2 -2
View File
@@ -38,10 +38,10 @@ struct APIModel: Decodable {
/// The app's App ID.
let appID: Int
/// The release date for the latest verison of the app.
/// The release date for the latest version of the app.
let currentVersionReleaseDate: String
/// The minimum verison of iOS that the current verison of the app requires.
/// The minimum version of iOS that the current version of the app requires.
let minimumOSVersion: String
/// The releases notes from the latest version of the app.
+1 -1
View File
@@ -19,7 +19,7 @@ public struct AlertConstants {
/// The button text that conveys the message that the user should be prompted to update next time the app launches.
public static let nextTimeButtonTitle = "Next time"
/// The text that conveys the message that the the user wants to skip this verison update.
/// The text that conveys the message that the the user wants to skip this version update.
public static let skipButtonTitle = "Skip this version"
/// The button text that conveys the message that the user would like to update the app right away.
+213
View File
@@ -0,0 +1,213 @@
//
// AppStoreCountry.swift
// Siren
//
// Created by Harlan Kellaway on 11/9/20.
// Copyright © 2020 Sabintsev iOS Projects. All rights reserved.
//
import Foundation
/// Region or country of an App Store in which an app can be available.
///
/// [List of country codes](https://help.apple.com/app-store-connect/#/dev997f9cf7c)
public struct AppStoreCountry {
/// Raw country code. ex. "US" for United States.
public let code: String?
}
extension AppStoreCountry {
public static let afghanistan: AppStoreCountry = "AFG"
public static let unitedArabEmirates: AppStoreCountry = "AE"
public static let antiguaAndBarbuda: AppStoreCountry = "AG"
public static let anguilla: AppStoreCountry = "AI"
public static let albania: AppStoreCountry = "AL"
public static let armenia: AppStoreCountry = "AM"
public static let angola: AppStoreCountry = "AO"
public static let argentina: AppStoreCountry = "AR"
public static let austria: AppStoreCountry = "AT"
public static let australia: AppStoreCountry = "AU"
public static let azerbaijan: AppStoreCountry = "AZ"
public static let barbados: AppStoreCountry = "BB"
public static let belgium: AppStoreCountry = "BE"
public static let bosniaAndHerzegovina: AppStoreCountry = "BIH"
public static let burkinaFaso: AppStoreCountry = "BF"
public static let bulgaria: AppStoreCountry = "BG"
public static let bahrain: AppStoreCountry = "BH"
public static let benin: AppStoreCountry = "BJ"
public static let bermuda: AppStoreCountry = "BM"
public static let brunei: AppStoreCountry = "BN"
public static let bolivia: AppStoreCountry = "BO"
public static let brazil: AppStoreCountry = "BR"
public static let bahamas: AppStoreCountry = "BS"
public static let bhutan: AppStoreCountry = "BT"
public static let botswana: AppStoreCountry = "BW"
public static let belarus: AppStoreCountry = "BY"
public static let belize: AppStoreCountry = "BZ"
public static let cameroon: AppStoreCountry = "CMR"
public static let canada: AppStoreCountry = "CA"
public static let congoRepublic: AppStoreCountry = "CG"
public static let switzerland: AppStoreCountry = "CH"
public static let coteDIvoire: AppStoreCountry = "CIV"
public static let chile: AppStoreCountry = "CL"
public static let china: AppStoreCountry = "CN"
public static let colombia: AppStoreCountry = "CO"
public static let congoDemocraticRepublic: AppStoreCountry = "COD"
public static let costaRica: AppStoreCountry = "CR"
public static let capeVerde: AppStoreCountry = "CV"
public static let cyprus: AppStoreCountry = "CY"
public static let czechRepublic: AppStoreCountry = "CZ"
public static let germany: AppStoreCountry = "DE"
public static let denmark: AppStoreCountry = "DK"
public static let dominica: AppStoreCountry = "DM"
public static let dominicanRepublic: AppStoreCountry = "DO"
public static let algeria: AppStoreCountry = "DZ"
public static let ecuador: AppStoreCountry = "EC"
public static let estonia: AppStoreCountry = "EE"
public static let egypt: AppStoreCountry = "EG"
public static let spain: AppStoreCountry = "ES"
public static let finland: AppStoreCountry = "FI"
public static let fiji: AppStoreCountry = "FJ"
public static let micronesia: AppStoreCountry = "FM"
public static let france: AppStoreCountry = "FR"
public static let gabon: AppStoreCountry = "GAB"
public static let unitedKingdom: AppStoreCountry = "GB"
public static let grenada: AppStoreCountry = "GD"
public static let georgia: AppStoreCountry = "GEO"
public static let ghana: AppStoreCountry = "GH"
public static let gambia: AppStoreCountry = "GM"
public static let greece: AppStoreCountry = "GR"
public static let guatemala: AppStoreCountry = "GT"
public static let guineaBissau: AppStoreCountry = "GW"
public static let guyana: AppStoreCountry = "GY"
public static let hongKong: AppStoreCountry = "HK"
public static let honduras: AppStoreCountry = "HN"
public static let croatia: AppStoreCountry = "HR"
public static let hungary: AppStoreCountry = "HU"
public static let indonesia: AppStoreCountry = "ID"
public static let ireland: AppStoreCountry = "IE"
public static let israel: AppStoreCountry = "IL"
public static let india: AppStoreCountry = "IN"
public static let iraq: AppStoreCountry = "IRQ"
public static let iceland: AppStoreCountry = "IS"
public static let italy: AppStoreCountry = "IT"
public static let jamaica: AppStoreCountry = "JM"
public static let jordan: AppStoreCountry = "JO"
public static let japan: AppStoreCountry = "JP"
public static let kenya: AppStoreCountry = "KE"
public static let kyrgyzstan: AppStoreCountry = "KG"
public static let cambodia: AppStoreCountry = "KH"
public static let stKittsAndNevis: AppStoreCountry = "KN"
public static let korea: AppStoreCountry = "KR"
public static let kuwait: AppStoreCountry = "KW"
public static let caymanIslands: AppStoreCountry = "KY"
public static let kazakhstan: AppStoreCountry = "KZ"
public static let laos: AppStoreCountry = "LA"
public static let lebanon: AppStoreCountry = "LB"
public static let libya: AppStoreCountry = "LBY"
public static let stLucia: AppStoreCountry = "LC"
public static let sriLanka: AppStoreCountry = "LK"
public static let liberia: AppStoreCountry = "LR"
public static let lithuania: AppStoreCountry = "LT"
public static let luxembourg: AppStoreCountry = "LU"
public static let latvia: AppStoreCountry = "LV"
public static let morocco: AppStoreCountry = "MAR"
public static let moldova: AppStoreCountry = "MD"
public static let maldives: AppStoreCountry = "MDV"
public static let madagascar: AppStoreCountry = "MG"
public static let northMacedonia: AppStoreCountry = "MK"
public static let mali: AppStoreCountry = "ML"
public static let myanmar: AppStoreCountry = "MMR"
public static let mongolia: AppStoreCountry = "MN"
public static let montenegro: AppStoreCountry = "MNE"
public static let macau: AppStoreCountry = "MO"
public static let mauritania: AppStoreCountry = "MR"
public static let montserrat: AppStoreCountry = "MS"
public static let malta: AppStoreCountry = "MT"
public static let mauritius: AppStoreCountry = "MU"
public static let malawi: AppStoreCountry = "MW"
public static let mexico: AppStoreCountry = "MX"
public static let malaysia: AppStoreCountry = "MY"
public static let mozambique: AppStoreCountry = "MZ"
public static let namibia: AppStoreCountry = "NA"
public static let niger: AppStoreCountry = "NE"
public static let nigeria: AppStoreCountry = "NG"
public static let nicaragua: AppStoreCountry = "NI"
public static let netherlands: AppStoreCountry = "NL"
public static let norway: AppStoreCountry = "NO"
public static let nepal: AppStoreCountry = "NP"
public static let nauru: AppStoreCountry = "NRU"
public static let newZealand: AppStoreCountry = "NZ"
public static let oman: AppStoreCountry = "OM"
public static let panama: AppStoreCountry = "PA"
public static let peru: AppStoreCountry = "PE"
public static let papuaNewGuinea: AppStoreCountry = "PG"
public static let philippines: AppStoreCountry = "PH"
public static let pakistan: AppStoreCountry = "PK"
public static let poland: AppStoreCountry = "PL"
public static let portugal: AppStoreCountry = "PT"
public static let palau: AppStoreCountry = "PW"
public static let paraguay: AppStoreCountry = "PY"
public static let qatar: AppStoreCountry = "QA"
public static let romania: AppStoreCountry = "RO"
public static let russia: AppStoreCountry = "RU"
public static let rwanda: AppStoreCountry = "RWA"
public static let saudiArabia: AppStoreCountry = "SA"
public static let solomonIslands: AppStoreCountry = "SB"
public static let seychelles: AppStoreCountry = "SC"
public static let sweden: AppStoreCountry = "SE"
public static let singapore: AppStoreCountry = "SG"
public static let slovenia: AppStoreCountry = "SI"
public static let slovakia: AppStoreCountry = "SK"
public static let sierraLeone: AppStoreCountry = "SL"
public static let senegal: AppStoreCountry = "SN"
public static let suriname: AppStoreCountry = "SR"
public static let serbia: AppStoreCountry = "SRB"
public static let saoTomeAndPrincipe: AppStoreCountry = "ST"
public static let elSalvador: AppStoreCountry = "SV"
public static let swaziland: AppStoreCountry = "SZ"
public static let turksAndCaicosIslands: AppStoreCountry = "TC"
public static let chad: AppStoreCountry = "TD"
public static let thailand: AppStoreCountry = "TH"
public static let tajikistan: AppStoreCountry = "TJ"
public static let turkmenistan: AppStoreCountry = "TM"
public static let tunisia: AppStoreCountry = "TN"
public static let tonga: AppStoreCountry = "TON"
public static let turkey: AppStoreCountry = "TR"
public static let trinidadAndTobago: AppStoreCountry = "TT"
public static let taiwan: AppStoreCountry = "TW"
public static let tanzania: AppStoreCountry = "TZ"
public static let ukraine: AppStoreCountry = "UA"
public static let uganda: AppStoreCountry = "UG"
public static let unitedStates: AppStoreCountry = "US"
public static let uruguay: AppStoreCountry = "UY"
public static let uzbekistan: AppStoreCountry = "UZ"
public static let stVincentAndTheGrenadines: AppStoreCountry = "VC"
public static let venezuela: AppStoreCountry = "VE"
public static let britishVirginIslands: AppStoreCountry = "VG"
public static let vietnam: AppStoreCountry = "VN"
public static let vanuatu: AppStoreCountry = "VUT"
public static let kosovo: AppStoreCountry = "XKS"
public static let yemen: AppStoreCountry = "YE"
public static let southAfrica: AppStoreCountry = "ZA"
public static let zambia: AppStoreCountry = "ZMB"
public static let zimbabwe: AppStoreCountry = "ZW"
}
extension AppStoreCountry: Equatable { }
/// Adds ability to equate instances of `AppStoreCountry` to each other.
/// - Parameters:
/// - lhs: First instance of`AppStoreCountry`
/// - rhs: Second instance of`AppStoreCountry`
/// - Returns: `true` if instances are equal. Otherwise, `false`.
public func == (lhs: AppStoreCountry, rhs: AppStoreCountry) -> Bool {
return lhs.code?.uppercased() == rhs.code?.uppercased()
}
extension AppStoreCountry: ExpressibleByStringLiteral {
/// Allows for `AppStoreCountry` to be initialized by a string literal.
/// - Parameter value: An instance of `AppStoreCountry` that can be represented as a `String`.
public init(stringLiteral value: StringLiteralType) {
self.init(code: value)
}
}
+2
View File
@@ -77,6 +77,8 @@ public struct Localization {
case portugueseBrazil = "pt"
/// Portugal's Portuguese Language Localization
case portuguesePortugal = "pt-PT"
/// Romanian Language Localization
case romanian = "ro"
/// Russian Language Localization
case russian = "ru"
/// Serbian (Cyrillic) Language Localization
+4 -6
View File
@@ -11,14 +11,13 @@ import Foundation
/// The validated and unwrapped `APIModel`.
/// This model is presented to the end user in Siren's completion handler.
public struct Model {
/// The app's App ID.
public let appID: Int
/// The release date for the latest verison of the app.
/// The release date for the latest version of the app.
public let currentVersionReleaseDate: String
/// The minimum verison of iOS that the current verison of the app requires.
/// The minimum version of iOS that the current version of the app requires.
public let minimumOSVersion: String
/// The releases notes from the latest version of the app.
@@ -31,8 +30,8 @@ public struct Model {
///
/// - Parameters:
/// - appID: The app's App ID.
/// - currentVersionReleaseDate: The release date for the latest verison of the app.
/// - minimumOSVersion: The minimum verison of iOS that the current verison of the app requires.
/// - currentVersionReleaseDate: The release date for the latest version of the app.
/// - minimumOSVersion: The minimum version of iOS that the current version of the app requires.
/// - releaseNotes: The releases notes from the latest version of the app.
/// - version: The latest version of the app.
init(appID: Int,
@@ -46,5 +45,4 @@ public struct Model {
self.releaseNotes = releaseNotes
self.version = version
}
}
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
</dict>
</plist>
@@ -1,8 +1,8 @@
/* Update alert message: A new version of {APP NAME} is available. Please update to version {NEW VERSION} now.*/
"A new version of %@ is available. Please update to version %@ now." = "Nova verzia %@ je stigla. Ažuriraj na verziju %@ sada.";
"A new version of %@ is available. Please update to version %@ now." = "Nova verzija %@ je dostupna. Ažuriraj na verziju %@ sada.";
/* Update alert title */
"Update Available" = "Nova ažuriranje je stigla";
"Update Available" = "Novo ažuriranje je dostupno";
/* Update alert dismiss button title */
"Next time" = "Sljedeći put";
Binary file not shown.
@@ -1,5 +1,5 @@
/* Update alert message: A new version of {APP NAME} is available. Please update to version {NEW VERSION} now.*/
"A new version of %@ is available. Please update to version %@ now." = "%@' nın yeni bir sürümü mevcut. Lütfen %@ sürümüne güncelleyin.";
"A new version of %@ is available. Please update to version %@ now." = "%@ uygulamasının yeni bir sürümü mevcut. Lütfen %@ sürümüne güncelleyin.";
/* Update alert title */
"Update Available" = "Güncelleme Mevcut";
+103 -56
View File
@@ -41,26 +41,36 @@ public final class Siren: NSObject {
lazy var currentInstalledVersion: String? = Bundle.version()
/// The retained `NotificationCenter` observer that listens for `UIApplication.didBecomeActiveNotification` notifications.
var didBecomeActiveObserver: NSObjectProtocol?
var applicationDidBecomeActiveObserver: NSObjectProtocol?
/// The retained `NotificationCenter` observer that listens for `UIApplication.willResignActiveNotification` notifications.
var willResignActiveObserver: NSObjectProtocol?
var applicationWillResignActiveObserver: NSObjectProtocol?
/// The retained `NotificationCenter` observer that listens for `UIApplication.didEnterBackgroundNotification` notifications.
var didEnterBackgroundObserver: NSObjectProtocol?
var applicationDidEnterBackgroundObserver: NSObjectProtocol?
/// The last date that an alert was presented to the user.
private var alertPresentationDate: Date? = UserDefaults.alertPresentationDate
/// Prevents the update dialog from not displaying when the user swipes down
/// on a notification center notification to the bottom of screen when calling
/// the Siren.shared.wail notificaiton using the `.onForeground` performCheck option.
private var appDidBecomeActiveWorkItem: DispatchWorkItem?
/// The minimal amount of time needed before calling the update notification
/// after entering the app from a notificaiton.
/// Refer to comment in `appDidBecomeActiveWorkItem` for more information.
private let appDidBecomeActiveWorkItemTimeDelay = 0.02
/// The App Store's unique identifier for an app.
private var appID: Int?
/// The completion handler used to return the results or errors returned by Siren.
private var resultsHandler: ResultsHandler?
/// The deinitialization method that clears out all observers,
deinit {
presentationManager.alertController?.dismiss(animated: true, completion: nil)
presentationManager.cleanUp()
removeForegroundObservers()
removeBackgroundObservers()
}
@@ -81,7 +91,7 @@ public extension Siren {
switch performCheck {
case .onDemand:
removeForegroundObservers()
performVersionCheck()
startVersionCheckFlow()
case .onForeground:
addForegroundObservers()
}
@@ -102,11 +112,7 @@ public extension Siren {
}
DispatchQueue.main.async {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
}
@@ -114,16 +120,25 @@ public extension Siren {
// MARK: - Version Check and Alert Presentation Flow
private extension Siren {
/// Initiates the unidirectional version checking flow.
func performVersionCheck() {
/// Initiates the version checking flow.
func startVersionCheckFlow() {
alertPresentationDate = UserDefaults.alertPresentationDate
apiManager.performVersionCheckRequest { result in
switch result {
case .success(let apiModel):
Task {
await performVersionCheck()
}
}
/// Initiatives the version check request.
func performVersionCheck() async {
do {
let apiModel = try await apiManager.performVersionCheckRequest()
DispatchQueue.main.async {
self.validate(apiModel: apiModel)
case .failure(let error):
self.resultsHandler?(.failure(error))
}
} catch (let error as KnownError) {
self.resultsHandler?(.failure(error))
} catch {
// Do nothing. Silences exhaustive error.
}
}
@@ -190,34 +205,42 @@ private extension Siren {
/// - currentAppStoreVersion: The curren version of the app in the App Store.
/// - model: The iTunes Lookup Model.
func determineIfAlertPresentationRulesAreSatisfied(forCurrentAppStoreVersion currentAppStoreVersion: String, andModel model: Model) {
// Did the user:
// - request to skip being prompted with version update alerts for a specific version
// - and is the latest App Store update the same version that was requested?
if let previouslySkippedVersion = UserDefaults.storedSkippedVersion,
let currentInstalledVersion = currentInstalledVersion,
!currentAppStoreVersion.isEmpty,
currentAppStoreVersion == previouslySkippedVersion {
resultsHandler?(.failure(.skipVersionUpdate(installedVersion: currentInstalledVersion,
appStoreVersion: currentAppStoreVersion)))
return
}
let updateType = DataParser.parseForUpdate(forInstalledVersion: currentInstalledVersion,
andAppStoreVersion: currentAppStoreVersion)
let rules = rulesManager.loadRulesForUpdateType(updateType)
do {
let rules = try rulesManager.loadRulesForUpdateType(updateType)
if rules.frequency == .immediately {
presentAlert(withRules: rules, forCurrentAppStoreVersion: currentAppStoreVersion, model: model, andUpdateType: updateType)
} else {
guard let alertPresentationDate = alertPresentationDate else {
presentAlert(withRules: rules, forCurrentAppStoreVersion: currentAppStoreVersion, model: model, andUpdateType: updateType)
return
// Did the user:
// - request to skip being prompted with version update alerts for a specific version
// - and is the latest App Store update the same version that was requested
// - and app is not forcing updates?
if let previouslySkippedVersion = UserDefaults.storedSkippedVersion,
let currentInstalledVersion = currentInstalledVersion,
!currentAppStoreVersion.isEmpty,
currentAppStoreVersion == previouslySkippedVersion,
rules.alertType != .force {
resultsHandler?(.failure(.skipVersionUpdate(installedVersion: currentInstalledVersion,
appStoreVersion: currentAppStoreVersion)))
return
}
if Date.days(since: alertPresentationDate) >= rules.frequency.rawValue {
if rules.frequency == .immediately {
presentAlert(withRules: rules, forCurrentAppStoreVersion: currentAppStoreVersion, model: model, andUpdateType: updateType)
} else {
resultsHandler?(.failure(.recentlyPrompted))
guard let alertPresentationDate = alertPresentationDate else {
presentAlert(withRules: rules, forCurrentAppStoreVersion: currentAppStoreVersion, model: model, andUpdateType: updateType)
return
}
if Date.days(since: alertPresentationDate) >= rules.frequency.rawValue {
presentAlert(withRules: rules, forCurrentAppStoreVersion: currentAppStoreVersion, model: model, andUpdateType: updateType)
} else {
resultsHandler?(.failure(.recentlyPrompted))
}
}
} catch let error as KnownError {
resultsHandler?(.failure(error))
} catch { // This path should never be entered, but this silences an error.
resultsHandler?(.failure(.noUpdateAvailable))
}
}
@@ -233,8 +256,10 @@ private extension Siren {
forCurrentAppStoreVersion currentAppStoreVersion: String,
model: Model,
andUpdateType updateType: RulesManager.UpdateType) {
presentationManager.presentAlert(withRules: rules, forCurrentAppStoreVersion: currentAppStoreVersion) { [weak self] alertAction in
presentationManager.presentAlert(withRules: rules, forCurrentAppStoreVersion: currentAppStoreVersion) { [weak self] alertAction, currentAppStoreVersion in
guard let self = self else { return }
self.processAlertAction(alertAction: alertAction, currentAppStoreVersion: currentAppStoreVersion)
let results = UpdateResults(alertAction: alertAction,
localization: self.presentationManager.localization,
model: model,
@@ -242,6 +267,19 @@ private extension Siren {
self.resultsHandler?(.success(results))
}
}
func processAlertAction(alertAction: AlertAction, currentAppStoreVersion: String?) {
switch alertAction {
case .appStore:
launchAppStore()
case .skip:
guard let currentAppStoreVersion = currentAppStoreVersion else { return }
UserDefaults.storedSkippedVersion = currentAppStoreVersion
UserDefaults.standard.synchronize()
default:
break
}
}
}
// MARK: - Add Observers
@@ -249,39 +287,48 @@ private extension Siren {
private extension Siren {
/// Adds an observer that listens for app launching/relaunching.
func addForegroundObservers() {
guard didBecomeActiveObserver == nil else { return }
didBecomeActiveObserver = NotificationCenter
guard applicationDidBecomeActiveObserver == nil else { return }
applicationDidBecomeActiveObserver = NotificationCenter
.default
.addObserver(forName: UIApplication.didBecomeActiveNotification,
object: nil,
queue: nil) { [weak self] _ in
guard let self = self else { return }
self.performVersionCheck()
self.appDidBecomeActiveWorkItem = DispatchWorkItem {
Task {
await self.performVersionCheck()
}
}
if let appDidBecomeActiveWorkItem = self.appDidBecomeActiveWorkItem {
DispatchQueue.main.asyncAfter(deadline: .now() + self.appDidBecomeActiveWorkItemTimeDelay, execute: appDidBecomeActiveWorkItem)
}
}
}
/// Adds an observer that listens for when the user enters the app switcher
/// and when the app is sent to the background.
func addBackgroundObservers() {
if willResignActiveObserver == nil {
didBecomeActiveObserver = NotificationCenter
if applicationWillResignActiveObserver == nil {
applicationWillResignActiveObserver = NotificationCenter
.default
.addObserver(forName: UIApplication.willResignActiveNotification,
object: nil,
queue: nil) { [weak self] _ in
guard let self = self else { return }
self.presentationManager.alertController?.dismiss(animated: true, completion: nil)
self.appDidBecomeActiveWorkItem?.cancel()
self.appDidBecomeActiveWorkItem = nil
self.presentationManager.cleanUp()
}
}
if didEnterBackgroundObserver == nil {
didEnterBackgroundObserver = NotificationCenter
if applicationDidEnterBackgroundObserver == nil {
applicationDidEnterBackgroundObserver = NotificationCenter
.default
.addObserver(forName: UIApplication.didEnterBackgroundNotification,
object: nil,
queue: nil) { [weak self] _ in
guard let self = self else { return }
self.presentationManager.alertController?.dismiss(animated: true, completion: nil)
self.presentationManager.cleanUp()
}
}
}
@@ -292,16 +339,16 @@ private extension Siren {
private extension Siren {
/// Removes the observer that listens for app launching/relaunching.
func removeForegroundObservers() {
NotificationCenter.default.removeObserver(didBecomeActiveObserver as Any)
didBecomeActiveObserver = nil
NotificationCenter.default.removeObserver(applicationDidBecomeActiveObserver as Any)
applicationDidBecomeActiveObserver = nil
}
/// Remove the observers that list to app resignation and app backgrounding.
func removeBackgroundObservers() {
NotificationCenter.default.removeObserver(willResignActiveObserver as Any)
willResignActiveObserver = nil
NotificationCenter.default.removeObserver(applicationWillResignActiveObserver as Any)
applicationWillResignActiveObserver = nil
NotificationCenter.default.removeObserver(didEnterBackgroundObserver as Any)
didEnterBackgroundObserver = nil
NotificationCenter.default.removeObserver(applicationDidEnterBackgroundObserver as Any)
applicationDidEnterBackgroundObserver = nil
}
}
+2 -2
View File
@@ -45,12 +45,12 @@ struct DataParser {
return true
}
/// The type of update that is returned from the API in relation to the verison of the app that is installed.
/// The type of update that is returned from the API in relation to the version of the app that is installed.
///
/// - Parameters:
/// - installedVersion: The installed version of the app.
/// - appStoreVersion: The App Store version of the app.
/// - Returns: The type of update in relation to the verison of the app that is installed.
/// - Returns: The type of update in relation to the version of the app that is installed.
static func parseForUpdate(forInstalledVersion installedVersion: String?,
andAppStoreVersion appStoreVersion: String?) -> RulesManager.UpdateType {
guard let installedVersion = installedVersion,
+2 -2
View File
@@ -18,7 +18,7 @@ public enum KnownError: LocalizedError {
case appStoreDataRetrievalFailure(underlyingError: Error?)
/// Error parsing App Store JSON data.
case appStoreJSONParsingFailure(underlyingError: Error)
/// The version of iOS on the device is lower than that of the one required by the app verison update.
/// The version of iOS on the device is lower than that of the one required by the app version update.
case appStoreOSVersionUnsupported
/// Error retrieving App Store verson number as the JSON does not contain a `version` key.
case appStoreVersionArrayFailure
@@ -51,7 +51,7 @@ public enum KnownError: LocalizedError {
case .appStoreJSONParsingFailure(let error):
return "\(KnownError.sirenError) Error parsing App Store JSON data.\nAlso, the following system level error was returned: \(error)"
case .appStoreOSVersionUnsupported:
return "\(KnownError.sirenError) The version of iOS on the device is lower than that of the one required by the app verison update."
return "\(KnownError.sirenError) The version of iOS on the device is lower than that of the one required by the app version update."
case .appStoreVersionArrayFailure:
return "\(KnownError.sirenError) Error retrieving App Store verson number as the JSON does not contain a `version` key."
case .currentVersionReleaseDate:
@@ -10,8 +10,11 @@ import UIKit
/// `UIViewController` Extension for Siren
final class SirenViewController: UIViewController {
/// `UIStatusBarStyle` override.
override var preferredStatusBarStyle: UIStatusBarStyle {
return UIApplication.shared.statusBarStyle
/// This creates a retain cycle.
/// This is needed to retain the UIAlertController in iOS 13.0+
var retainedWindow: UIWindow?
deinit {
retainedWindow = nil
}
}
-218
View File
@@ -1,218 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Classes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Classes" class="dashAnchor"></a>
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">Siren Reference</a>
<img id="carat" src="img/carat.png" />
Classes Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Classes</h1>
<p>The following classes are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:@M@Siren@objc(cs)Siren"></a>
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
<a class="token" href="#/c:@M@Siren@objc(cs)Siren">Siren</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The Siren Class.</p>
<a href="Classes/Siren.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">Siren</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:@M@Siren@objc(cs)SirenViewController"></a>
<a name="//apple_ref/swift/Class/SirenViewController" class="dashAnchor"></a>
<a class="token" href="#/c:@M@Siren@objc(cs)SirenViewController">SirenViewController</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p><code>UIViewController</code> Extension for Siren</p>
<a href="Classes/SirenViewController.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kt">SirenViewController</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-989
View File
@@ -1,989 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Siren Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/Siren" class="dashAnchor"></a>
<a title="Siren Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
Siren Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Siren</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">Siren</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
<p>The Siren Class.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC14ResultsHandlera"></a>
<a name="//apple_ref/swift/Alias/ResultsHandler" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC14ResultsHandlera">ResultsHandler</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Return results or errors obtained from performing a version check with Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">ResultsHandler</span> <span class="o">=</span> <span class="p">(</span><span class="kt">Result</span><span class="o">&lt;</span><span class="kt"><a href="../Structs/UpdateResults.html">UpdateResults</a></span><span class="p">,</span> <span class="kt"><a href="../Enums/KnownError.html">KnownError</a></span><span class="o">&gt;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC6sharedABvpZ"></a>
<a name="//apple_ref/swift/Variable/shared" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC6sharedABvpZ">shared</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The Siren singleton. The main point of entry to the Siren library.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">let</span> <span class="nv">shared</span><span class="p">:</span> <span class="kt">Siren</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC10apiManagerAA10APIManagerVvp"></a>
<a name="//apple_ref/swift/Property/apiManager" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC10apiManagerAA10APIManagerVvp">apiManager</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The manager that controls the App Store API that is
used to fetch the latest version of the app.</p>
<p>Defaults to the US App Store.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">apiManager</span><span class="p">:</span> <span class="kt"><a href="../Structs/APIManager.html">APIManager</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC19presentationManagerAA012PresentationC0Vvp"></a>
<a name="//apple_ref/swift/Property/presentationManager" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC19presentationManagerAA012PresentationC0Vvp">presentationManager</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The manager that controls the update alert&rsquo;s string localization and tint color.</p>
<p>Defaults the string&rsquo;s lange localization to the user&rsquo;s device localization.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">presentationManager</span><span class="p">:</span> <span class="kt"><a href="../Structs/PresentationManager.html">PresentationManager</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12rulesManagerAA05RulesC0Vvp"></a>
<a name="//apple_ref/swift/Property/rulesManager" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12rulesManagerAA05RulesC0Vvp">rulesManager</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The manager that controls the type of alert that should be displayed
and how often an alert should be displayed dpeneding on the type
of update that is available relative to the installed version of the app
(e.g., different rules for major, minor, patch and revision updated can be used).</p>
<p>Defaults to performing a version check once a day with an alert that allows
the user to skip updating the app until the next time the app becomes active or
skipping the update all together until another version is released.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">lazy</span> <span class="k">var</span> <span class="nv">rulesManager</span><span class="p">:</span> <span class="kt"><a href="../Structs/RulesManager.html">RulesManager</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC23currentInstalledVersionSSSgvp"></a>
<a name="//apple_ref/swift/Property/currentInstalledVersion" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC23currentInstalledVersionSSSgvp">currentInstalledVersion</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The current installed version of your app.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">lazy</span> <span class="k">var</span> <span class="nv">currentInstalledVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC23didBecomeActiveObserverSo8NSObject_pSgvp"></a>
<a name="//apple_ref/swift/Property/didBecomeActiveObserver" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC23didBecomeActiveObserverSo8NSObject_pSgvp">didBecomeActiveObserver</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The retained <code>NotificationCenter</code> observer that listens for <code>UIApplication.didBecomeActiveNotification</code> notifications.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">didBecomeActiveObserver</span><span class="p">:</span> <span class="kt">NSObjectProtocol</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC24willResignActiveObserverSo8NSObject_pSgvp"></a>
<a name="//apple_ref/swift/Property/willResignActiveObserver" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC24willResignActiveObserverSo8NSObject_pSgvp">willResignActiveObserver</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The retained <code>NotificationCenter</code> observer that listens for <code>UIApplication.willResignActiveNotification</code> notifications.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">willResignActiveObserver</span><span class="p">:</span> <span class="kt">NSObjectProtocol</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC26didEnterBackgroundObserverSo8NSObject_pSgvp"></a>
<a name="//apple_ref/swift/Property/didEnterBackgroundObserver" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC26didEnterBackgroundObserverSo8NSObject_pSgvp">didEnterBackgroundObserver</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The retained <code>NotificationCenter</code> observer that listens for <code>UIApplication.didEnterBackgroundNotification</code> notifications.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">didEnterBackgroundObserver</span><span class="p">:</span> <span class="kt">NSObjectProtocol</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC21alertPresentationDate33_7DFB1BC200A6C64FBED860A3A8153B65LL10Foundation0D0VSgvp"></a>
<a name="//apple_ref/swift/Property/alertPresentationDate" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC21alertPresentationDate33_7DFB1BC200A6C64FBED860A3A8153B65LL10Foundation0D0VSgvp">alertPresentationDate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The last date that an alert was presented to the user.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="k">var</span> <span class="nv">alertPresentationDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC5appID33_7DFB1BC200A6C64FBED860A3A8153B65LLSiSgvp"></a>
<a name="//apple_ref/swift/Property/appID" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC5appID33_7DFB1BC200A6C64FBED860A3A8153B65LLSiSgvp">appID</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The App Store&rsquo;s unique identifier for an app.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="k">var</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">Int</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC14resultsHandler33_7DFB1BC200A6C64FBED860A3A8153B65LLys6ResultOyAA13UpdateResultsVAA10KnownErrorOGcSgvp"></a>
<a name="//apple_ref/swift/Property/resultsHandler" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC14resultsHandler33_7DFB1BC200A6C64FBED860A3A8153B65LLys6ResultOyAA13UpdateResultsVAA10KnownErrorOGcSgvp">resultsHandler</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The completion handler used to return the results or errors returned by Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="k">var</span> <span class="nv">resultsHandler</span><span class="p">:</span> <span class="kt">Siren</span><span class="o">.</span><span class="kt"><a href="../Classes/Siren.html#/s:5SirenAAC14ResultsHandlera">ResultsHandler</a></span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/c:@M@Siren@objc(cs)Siren(im)dealloc"></a>
<a name="//apple_ref/swift/Method/deinit" class="dashAnchor"></a>
<a class="token" href="#/c:@M@Siren@objc(cs)Siren(im)dealloc">deinit</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The deinitialization method that clears out all observers,</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">deinit</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Public%20API%20Interface"></a>
<a name="//apple_ref/swift/Section/Public API Interface" class="dashAnchor"></a>
<a href="#/Public%20API%20Interface">
<h3 class="section-name">Public API Interface</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC4wail12performCheck10completionyAA07PerformD0O_ys6ResultOyAA13UpdateResultsVAA10KnownErrorOGcSgtF"></a>
<a name="//apple_ref/swift/Method/wail(performCheck:completion:)" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC4wail12performCheck10completionyAA07PerformD0O_ys6ResultOyAA13UpdateResultsVAA10KnownErrorOGcSgtF">wail(performCheck:completion:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>This method executes the Siren version checking and alert presentation flow.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">wail</span><span class="p">(</span><span class="nv">performCheck</span><span class="p">:</span> <span class="kt"><a href="../Enums/PerformCheck.html">PerformCheck</a></span> <span class="o">=</span> <span class="o">.</span><span class="n">onForeground</span><span class="p">,</span>
<span class="n">completion</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Classes/Siren.html#/s:5SirenAAC14ResultsHandlera">ResultsHandler</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>performCheck</em>
</code>
</td>
<td>
<div>
<p>Defines how the version check flow is entered. Defaults to <code>.onForeground</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>handler</em>
</code>
</td>
<td>
<div>
<p>Returns the metadata around a successful version check and interaction with the update modal or it returns nil.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC14launchAppStoreyyF"></a>
<a name="//apple_ref/swift/Method/launchAppStore()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC14launchAppStoreyyF">launchAppStore()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Launches the AppStore in two situations when the user clicked the <code>Update</code> button in the UIAlertController modal.</p>
<p>This function is marked <code>public</code> as a convenience for those developers who decide to build a custom alert modal
instead of using Siren&rsquo;s prebuilt update alert.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">launchAppStore</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Version%20Check%20and%20Alert%20Presentation%20Flow"></a>
<a name="//apple_ref/swift/Section/Version Check and Alert Presentation Flow" class="dashAnchor"></a>
<a href="#/Version%20Check%20and%20Alert%20Presentation%20Flow">
<h3 class="section-name">Version Check and Alert Presentation Flow</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC19performVersionCheck33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF"></a>
<a name="//apple_ref/swift/Method/performVersionCheck()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC19performVersionCheck33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF">performVersionCheck()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Initiates the unidirectional version checking flow.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">performVersionCheck</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC8validate33_7DFB1BC200A6C64FBED860A3A8153B65LL8apiModelyAA8APIModelV_tF"></a>
<a name="//apple_ref/swift/Method/validate(apiModel:)" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC8validate33_7DFB1BC200A6C64FBED860A3A8153B65LL8apiModelyAA8APIModelV_tF">validate(apiModel:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Validates the parsed and mapped iTunes Lookup Model
to guarantee all the relevant data was returned before
attempting to present an alert.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">validate</span><span class="p">(</span><span class="nv">apiModel</span><span class="p">:</span> <span class="kt"><a href="../Structs/APIModel.html">APIModel</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>apiModel</em>
</code>
</td>
<td>
<div>
<p>The iTunes Lookup Model.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC45determineIfAlertPresentationRulesAreSatisfied33_7DFB1BC200A6C64FBED860A3A8153B65LL25forCurrentAppStoreVersion8andModelySS_AA0W0VtF"></a>
<a name="//apple_ref/swift/Method/determineIfAlertPresentationRulesAreSatisfied(forCurrentAppStoreVersion:andModel:)" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC45determineIfAlertPresentationRulesAreSatisfied33_7DFB1BC200A6C64FBED860A3A8153B65LL25forCurrentAppStoreVersion8andModelySS_AA0W0VtF">determineIfAlertPresentationRulesAreSatisfied(forCurrentAppStoreVersion:andModel:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Determines if the update alert can be presented based on the
rules set in the <code><a href="../Structs/RulesManager.html">RulesManager</a></code> and the the skip version settings.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">determineIfAlertPresentationRulesAreSatisfied</span><span class="p">(</span><span class="n">forCurrentAppStoreVersion</span> <span class="nv">currentAppStoreVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="n">andModel</span> <span class="nv">model</span><span class="p">:</span> <span class="kt"><a href="../Structs/Model.html">Model</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>currentAppStoreVersion</em>
</code>
</td>
<td>
<div>
<p>The curren version of the app in the App Store.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>model</em>
</code>
</td>
<td>
<div>
<p>The iTunes Lookup Model.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC12presentAlert33_7DFB1BC200A6C64FBED860A3A8153B65LL9withRules25forCurrentAppStoreVersion5model13andUpdateTypeyAA0M0V_SSAA5ModelVAA0M7ManagerV0uV0OtF"></a>
<a name="//apple_ref/swift/Method/presentAlert(withRules:forCurrentAppStoreVersion:model:andUpdateType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC12presentAlert33_7DFB1BC200A6C64FBED860A3A8153B65LL9withRules25forCurrentAppStoreVersion5model13andUpdateTypeyAA0M0V_SSAA5ModelVAA0M7ManagerV0uV0OtF">presentAlert(withRules:forCurrentAppStoreVersion:model:andUpdateType:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Presents the update alert to the end user.
Upon tapping a value on the alert view, a completion handler will return all relevant metadata to the app.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">presentAlert</span><span class="p">(</span><span class="n">withRules</span> <span class="nv">rules</span><span class="p">:</span> <span class="kt"><a href="../Structs/Rules.html">Rules</a></span><span class="p">,</span>
<span class="n">forCurrentAppStoreVersion</span> <span class="nv">currentAppStoreVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
<span class="nv">model</span><span class="p">:</span> <span class="kt"><a href="../Structs/Model.html">Model</a></span><span class="p">,</span>
<span class="n">andUpdateType</span> <span class="nv">updateType</span><span class="p">:</span> <span class="kt"><a href="../Structs/RulesManager.html">RulesManager</a></span><span class="o">.</span><span class="kt">UpdateType</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>rules</em>
</code>
</td>
<td>
<div>
<p>The rules for how to present the alert.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>currentAppStoreVersion</em>
</code>
</td>
<td>
<div>
<p>The current version of the app in the App Store.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>model</em>
</code>
</td>
<td>
<div>
<p>The iTunes Lookup Model.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>updateType</em>
</code>
</td>
<td>
<div>
<p>The type of update that is available based on the version found in the App Store.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Add%20Observers"></a>
<a name="//apple_ref/swift/Section/Add Observers" class="dashAnchor"></a>
<a href="#/Add%20Observers">
<h3 class="section-name">Add Observers</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC22addForegroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF"></a>
<a name="//apple_ref/swift/Method/addForegroundObservers()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC22addForegroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF">addForegroundObservers()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Adds an observer that listens for app launching/relaunching.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">addForegroundObservers</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC22addBackgroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF"></a>
<a name="//apple_ref/swift/Method/addBackgroundObservers()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC22addBackgroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF">addBackgroundObservers()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Adds an observer that listens for when the user enters the app switcher
and when the app is sent to the background.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">addBackgroundObservers</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Remove%20Observers"></a>
<a name="//apple_ref/swift/Section/Remove Observers" class="dashAnchor"></a>
<a href="#/Remove%20Observers">
<h3 class="section-name">Remove Observers</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC25removeForegroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF"></a>
<a name="//apple_ref/swift/Method/removeForegroundObservers()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC25removeForegroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF">removeForegroundObservers()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Removes the observer that listens for app launching/relaunching.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">removeForegroundObservers</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC25removeBackgroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF"></a>
<a name="//apple_ref/swift/Method/removeBackgroundObservers()" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC25removeBackgroundObservers33_7DFB1BC200A6C64FBED860A3A8153B65LLyyF">removeBackgroundObservers()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Remove the observers that list to app resignation and app backgrounding.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">removeBackgroundObservers</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-225
View File
@@ -1,225 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>AlertType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/AlertType" class="dashAnchor"></a>
<a title="AlertType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html">Siren Reference</a>
<img id="carat" src="../../img/carat.png" />
AlertType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/AlertMessaging.html">AlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/AlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/CapturedError.html">CapturedError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/CapturedError/Known.html"> Known</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/LookupModel.html">LookupModel</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/LookupModel/Results.html"> Results</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>AlertType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">AlertType</span></code></pre>
</div>
</div>
<p>Determines the type of alert to present after a successful version check has been performed.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO5forceA2DmF"></a>
<a name="//apple_ref/swift/Element/force" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO5forceA2DmF">force</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Forces user to update your app (1 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">force</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO6optionA2DmF"></a>
<a name="//apple_ref/swift/Element/option" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO6optionA2DmF">option</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>(DEFAULT) Presents user with option to update app now or at next launch (2 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">option</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO4skipA2DmF"></a>
<a name="//apple_ref/swift/Element/skip" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO4skipA2DmF">skip</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">skip</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC9AlertTypeO4noneA2DmF"></a>
<a name="//apple_ref/swift/Element/none" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC9AlertTypeO4noneA2DmF">none</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Doesn&rsquo;t show the alert, but instead returns a localized message
for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="k">none</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-11-17)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
File diff suppressed because it is too large Load Diff
-197
View File
@@ -1,197 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>VersionCheckType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/VersionCheckType" class="dashAnchor"></a>
<a title="VersionCheckType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html">Siren Reference</a>
<img id="carat" src="../../img/carat.png" />
VersionCheckType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/AlertMessaging.html">AlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/AlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/CapturedError.html">CapturedError</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/CapturedError/Known.html"> Known</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/LookupModel.html">LookupModel</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/LookupModel/Results.html"> Results</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>VersionCheckType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">VersionCheckType</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
</div>
</div>
<p>Determines the frequency in which the the version check is performed and the user is prompted to update the app.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO11immediatelyA2DmF"></a>
<a name="//apple_ref/swift/Element/immediately" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO11immediatelyA2DmF">immediately</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed every time the app is launched.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">immediately</span> <span class="o">=</span> <span class="mi">0</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO5dailyA2DmF"></a>
<a name="//apple_ref/swift/Element/daily" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO5dailyA2DmF">daily</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed once a day.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">daily</span> <span class="o">=</span> <span class="mi">1</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5SirenAAC16VersionCheckTypeO6weeklyA2DmF"></a>
<a name="//apple_ref/swift/Element/weekly" class="dashAnchor"></a>
<a class="token" href="#/s:5SirenAAC16VersionCheckTypeO6weeklyA2DmF">weekly</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version check performed once a week.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">weekly</span> <span class="o">=</span> <span class="mi">7</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-11-17)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-191
View File
@@ -1,191 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenViewController Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/SirenViewController" class="dashAnchor"></a>
<a title="SirenViewController Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
SirenViewController Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenViewController</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kt">SirenViewController</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>
</div>
</div>
<p><code>UIViewController</code> Extension for Siren</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:@M@Siren@objc(cs)SirenViewController(py)preferredStatusBarStyle"></a>
<a name="//apple_ref/swift/Property/preferredStatusBarStyle" class="dashAnchor"></a>
<a class="token" href="#/c:@M@Siren@objc(cs)SirenViewController(py)preferredStatusBarStyle">preferredStatusBarStyle</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p><code>UIStatusBarStyle</code> override.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">override</span> <span class="k">var</span> <span class="nv">preferredStatusBarStyle</span><span class="p">:</span> <span class="kt">UIStatusBarStyle</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-256
View File
@@ -1,256 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Enumerations Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Enumerations" class="dashAnchor"></a>
<a title="Enumerations Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">Siren Reference</a>
<img id="carat" src="img/carat.png" />
Enumerations Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Enumerations</h1>
<p>The following enumerations are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren11AlertActionO"></a>
<a name="//apple_ref/swift/Enum/AlertAction" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren11AlertActionO">AlertAction</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The <code>UIAlertController</code> button that was pressed upon being presented an update alert.</p>
<a href="Enums/AlertAction.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">AlertAction</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren12PerformCheckO"></a>
<a name="//apple_ref/swift/Enum/PerformCheck" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren12PerformCheckO">PerformCheck</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The type of check to perform when Siren&rsquo;s <code>wail</code> method is performed.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
Alert presentation will still respct the settings that are set
for <code>UpdatePromptFrequency</code> and <code>showAlertAfterCurrentVersionHasBeenReleasedForDays</code>
</div>
<a href="Enums/PerformCheck.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">PerformCheck</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO"></a>
<a name="//apple_ref/swift/Enum/KnownError" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO">KnownError</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Enumerates all potentials errors that Siren can handle.</p>
<a href="Enums/KnownError.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">KnownError</span> <span class="p">:</span> <span class="kt">LocalizedError</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-272
View File
@@ -1,272 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>AlertAction Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/AlertAction" class="dashAnchor"></a>
<a title="AlertAction Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
AlertAction Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>AlertAction</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">AlertAction</span></code></pre>
</div>
</div>
<p>The <code>UIAlertController</code> button that was pressed upon being presented an update alert.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren11AlertActionO8appStoreyA2CmF"></a>
<a name="//apple_ref/swift/Element/appStore" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren11AlertActionO8appStoreyA2CmF">appStore</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The user clicked on the <code>Update</code> option, which took them to the app&rsquo;s App Store page.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStore</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren11AlertActionO8nextTimeyA2CmF"></a>
<a name="//apple_ref/swift/Element/nextTime" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren11AlertActionO8nextTimeyA2CmF">nextTime</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The user clicked on the <code>Next Time</code> option, which dismissed the alert.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">nextTime</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren11AlertActionO4skipyA2CmF"></a>
<a name="//apple_ref/swift/Element/skip" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren11AlertActionO4skipyA2CmF">skip</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The user clicked on the <code>Skip this version</code> option, which dismissed the alert.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">skip</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren11AlertActionO7unknownyA2CmF"></a>
<a name="//apple_ref/swift/Element/unknown" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren11AlertActionO7unknownyA2CmF">unknown</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>(Default) The user never chose an option. This is returned when an error is thrown by Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">unknown</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-569
View File
@@ -1,569 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>KnownError Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/KnownError" class="dashAnchor"></a>
<a title="KnownError Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
KnownError Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>KnownError</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">KnownError</span> <span class="p">:</span> <span class="kt">LocalizedError</span></code></pre>
</div>
</div>
<p>Enumerates all potentials errors that Siren can handle.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO20appStoreAppIDFailureyA2CmF"></a>
<a name="//apple_ref/swift/Element/appStoreAppIDFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO20appStoreAppIDFailureyA2CmF">appStoreAppIDFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Error retrieving trackId as the JSON does not contain a &lsquo;trackId&rsquo; key.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreAppIDFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO33appStoreDataRetrievalEmptyResultsyA2CmF"></a>
<a name="//apple_ref/swift/Element/appStoreDataRetrievalEmptyResults" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO33appStoreDataRetrievalEmptyResultsyA2CmF">appStoreDataRetrievalEmptyResults</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Error retrieving App Store data as JSON results were empty. Is your app available in the US? If not, change the <code>countryCode</code> variable to fix this error.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreDataRetrievalEmptyResults</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO28appStoreDataRetrievalFailureyACs0C0_pSg_tcACmF"></a>
<a name="//apple_ref/swift/Element/appStoreDataRetrievalFailure(underlyingError:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO28appStoreDataRetrievalFailureyACs0C0_pSg_tcACmF">appStoreDataRetrievalFailure(underlyingError:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Error retrieving App Store data as an error was returned.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">appStoreDataRetrievalFailure</span><span class="p">(</span><span class="nv">underlyingError</span><span class="p">:</span> <span class="kt">Error</span><span class="p">?)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO26appStoreJSONParsingFailureyACs0C0_p_tcACmF"></a>
<a name="//apple_ref/swift/Element/appStoreJSONParsingFailure(underlyingError:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO26appStoreJSONParsingFailureyACs0C0_p_tcACmF">appStoreJSONParsingFailure(underlyingError:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Error parsing App Store JSON data.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">appStoreJSONParsingFailure</span><span class="p">(</span><span class="nv">underlyingError</span><span class="p">:</span> <span class="kt">Error</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO28appStoreOSVersionUnsupportedyA2CmF"></a>
<a name="//apple_ref/swift/Element/appStoreOSVersionUnsupported" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO28appStoreOSVersionUnsupportedyA2CmF">appStoreOSVersionUnsupported</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The version of iOS on the device is lower than that of the one required by the app verison update.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreOSVersionUnsupported</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO27appStoreVersionArrayFailureyA2CmF"></a>
<a name="//apple_ref/swift/Element/appStoreVersionArrayFailure" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO27appStoreVersionArrayFailureyA2CmF">appStoreVersionArrayFailure</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Error retrieving App Store verson number as the JSON does not contain a <code>version</code> key.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">appStoreVersionArrayFailure</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO25currentVersionReleaseDateyA2CmF"></a>
<a name="//apple_ref/swift/Element/currentVersionReleaseDate" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO25currentVersionReleaseDateyA2CmF">currentVersionReleaseDate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The <code>currentVersionReleaseDate</code> key is missing in the JSON payload. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">currentVersionReleaseDate</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO12malformedURLyA2CmF"></a>
<a name="//apple_ref/swift/Element/malformedURL" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO12malformedURLyA2CmF">malformedURL</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>One of the iTunes URLs used in Siren is malformed. Please leave an issue on <a href="https://github.com/ArtSabintsev/Siren">https://github.com/ArtSabintsev/Siren</a> with as many details as possible.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">malformedURL</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO15missingBundleIDyA2CmF"></a>
<a name="//apple_ref/swift/Element/missingBundleID" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO15missingBundleIDyA2CmF">missingBundleID</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Please make sure that you have set a <code>Bundle Identifier</code> in your project.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">missingBundleID</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO17noUpdateAvailableyA2CmF"></a>
<a name="//apple_ref/swift/Element/noUpdateAvailable" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO17noUpdateAvailableyA2CmF">noUpdateAvailable</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>No new update available.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">noUpdateAvailable</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO16recentlyPromptedyA2CmF"></a>
<a name="//apple_ref/swift/Element/recentlyPrompted" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO16recentlyPromptedyA2CmF">recentlyPrompted</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren will not present an update alert if it performed one too recently. If you would like to present an alert every time Siren is called, please consider setting the <code>UpdatePromptFrequency.immediately</code> rule in <code><a href="../Structs/RulesManager.html">RulesManager</a></code></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">recentlyPrompted</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO15releasedTooSoonyACSi_SitcACmF"></a>
<a name="//apple_ref/swift/Element/releasedTooSoon(daysSinceRelease:releasedForDays:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO15releasedTooSoonyACSi_SitcACmF">releasedTooSoon(daysSinceRelease:releasedForDays:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The app has been released for X days, but Siren cannot prompt the user until Y (where Y &gt; X) days have passed.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">releasedTooSoon</span><span class="p">(</span><span class="nv">daysSinceRelease</span><span class="p">:</span> <span class="kt">Int</span><span class="p">,</span> <span class="nv">releasedForDays</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO17skipVersionUpdateyACSS_SStcACmF"></a>
<a name="//apple_ref/swift/Element/skipVersionUpdate(installedVersion:appStoreVersion:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO17skipVersionUpdateyACSS_SStcACmF">skipVersionUpdate(installedVersion:appStoreVersion:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The user has opted to skip updating their current version of the app to the current App Store version.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="nf">skipVersionUpdate</span><span class="p">(</span><span class="nv">installedVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appStoreVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO20localizedDescriptionSSvp"></a>
<a name="//apple_ref/swift/Property/localizedDescription" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO20localizedDescriptionSSvp">localizedDescription</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The localized description for each error handled by Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">localizedDescription</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10KnownErrorO05sirenC033_B3C911EAD28C83CC211C07566B0F499ALLSSvpZ"></a>
<a name="//apple_ref/swift/Variable/sirenError" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10KnownErrorO05sirenC033_B3C911EAD28C83CC211C07566B0F499ALLSSvpZ">sirenError</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An easily identifiable prefix for all errors thrown by Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">sirenError</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-227
View File
@@ -1,227 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>PerformCheck Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/PerformCheck" class="dashAnchor"></a>
<a title="PerformCheck Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
PerformCheck Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>PerformCheck</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">PerformCheck</span></code></pre>
</div>
</div>
<p>The type of check to perform when Siren&rsquo;s <code>wail</code> method is performed.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
Alert presentation will still respct the settings that are set
for <code>UpdatePromptFrequency</code> and <code>showAlertAfterCurrentVersionHasBeenReleasedForDays</code>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren12PerformCheckO8onDemandyA2CmF"></a>
<a name="//apple_ref/swift/Element/onDemand" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren12PerformCheckO8onDemandyA2CmF">onDemand</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Performs a version check only when Siren&rsquo;s <code>wail</code> method is called,
as the <code>UIApplication.didBecomeActiveNotification</code> is ignored.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">onDemand</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren12PerformCheckO12onForegroundyA2CmF"></a>
<a name="//apple_ref/swift/Element/onForeground" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren12PerformCheckO12onForegroundyA2CmF">onForeground</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>(DEFAULT) Perform a version check whenever the app enters the foreground.
This value must be set when Siren&rsquo;s <code>wail</code> method is called to enable the
<code>UIApplication.didBecomeActiveNotification</code> observer.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">onForeground</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-262
View File
@@ -1,262 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>UpdateType Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/UpdateType" class="dashAnchor"></a>
<a title="UpdateType Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
UpdateType Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/VersionCheckType.html"> VersionCheckType</a>
</li>
<li class="nav-group-task">
<a href="../Classes/Siren/LanguageType.html"> LanguageType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/UpdateType.html">UpdateType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/AlertMessaging.html">AlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/CapturedError.html">CapturedError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/CapturedError/Known.html"> Known</a>
</li>
<li class="nav-group-task">
<a href="../Structs/LookupModel.html">LookupModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/LookupModel/Results.html"> Results</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>UpdateType</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">UpdateType</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
<p>MARK - Siren UpdateType
<code>UpdateType</code> defines what kind of update is available.
It is used as parameter if user wants to use
custom alert to inform the user about an update.</p>
<ul>
<li>major: Major release available: A.b.c.d</li>
<li>minor: Minor release available: a.B.c.d</li>
<li>patch: Patch release available: a.b.C.d</li>
<li>revision: Revision release available: a.b.c.D</li>
<li>unknown: No information available about the update.</li>
</ul>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5majorA2CmF"></a>
<a name="//apple_ref/swift/Element/major" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5majorA2CmF">major</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Major release available: A.b.c.d</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">major</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5minorA2CmF"></a>
<a name="//apple_ref/swift/Element/minor" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5minorA2CmF">minor</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Minor release available: a.B.c.d</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">minor</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO5patchA2CmF"></a>
<a name="//apple_ref/swift/Element/patch" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO5patchA2CmF">patch</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Patch release available: a.b.C.d</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">patch</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO8revisionA2CmF"></a>
<a name="//apple_ref/swift/Element/revision" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO8revisionA2CmF">revision</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Revision release available: a.b.c.D</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">revision</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10UpdateTypeO7unknownA2CmF"></a>
<a name="//apple_ref/swift/Element/unknown" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10UpdateTypeO7unknownA2CmF">unknown</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>No information available about the update.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">unknown</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-11-17)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-278
View File
@@ -1,278 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Extensions Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Extensions" class="dashAnchor"></a>
<a title="Extensions Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">Siren Reference</a>
<img id="carat" src="img/carat.png" />
Extensions Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Extensions</h1>
<p>The following extensions are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)NSBundle"></a>
<a name="//apple_ref/swift/Extension/Bundle" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)NSBundle">Bundle</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Extensions/Bundle.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">Bundle</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:10Foundation4DateV"></a>
<a name="//apple_ref/swift/Extension/Date" class="dashAnchor"></a>
<a class="token" href="#/s:10Foundation4DateV">Date</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Extensions/Date.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">Date</span> <span class="p">:</span> <span class="kt">ReferenceConvertible</span><span class="p">,</span> <span class="kt">Comparable</span><span class="p">,</span> <span class="kt">Equatable</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)UIAlertController"></a>
<a name="//apple_ref/swift/Extension/UIAlertController" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)UIAlertController">UIAlertController</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Extensions/UIAlertController.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">UIAlertController</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)NSUserDefaults"></a>
<a name="//apple_ref/swift/Extension/UserDefaults" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)NSUserDefaults">UserDefaults</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Extensions/UserDefaults.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">UserDefaults</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-439
View File
@@ -1,439 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bundle Extension Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Extension/Bundle" class="dashAnchor"></a>
<a title="Bundle Extension Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
Bundle Extension Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Bundle</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">Bundle</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE9ConstantsV"></a>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE9ConstantsV">Constants</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constants used in the <code>Bundle</code> extension.</p>
<a href="../Extensions/Bundle/Constants.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE7versionSSSgyFZ"></a>
<a name="//apple_ref/swift/Method/version()" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE7versionSSSgyFZ">version()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Fetches the current verison of the app.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">version</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
<div>
<h4>Return Value</h4>
<p>The current installed version of the app.</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE15localizedString6forKey20andForceLocalizationS2S_AC0I0V8LanguageOSgtFZ"></a>
<a name="//apple_ref/swift/Method/localizedString(forKey:andForceLocalization:)" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE15localizedString6forKey20andForceLocalizationS2S_AC0I0V8LanguageOSgtFZ">localizedString(forKey:andForceLocalization:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Returns the localized string for a given default string.</p>
<p>By default, the English language localization is used.
If the device&rsquo;s localization is set to another locale, that local&rsquo;s language is used if it&rsquo;s supported by Siren.
If <code>forcedLanguage</code> is set to <code>true</code>, the chosen language is shown for all devices, irrespective of their device&rsquo;s localization.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">localizedString</span><span class="p">(</span><span class="n">forKey</span> <span class="nv">key</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="n">andForceLocalization</span> <span class="nv">forcedLanguage</span><span class="p">:</span> <span class="kt"><a href="../Structs/Localization.html">Localization</a></span><span class="o">.</span><span class="kt">Language</span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>key</em>
</code>
</td>
<td>
<div>
<p>The default string used to search the localization table for a specific translation.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>forcedLanguage</em>
</code>
</td>
<td>
<div>
<p>Returns</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The localized string for a given key.</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE19bestMatchingAppNameSSyFZ"></a>
<a name="//apple_ref/swift/Method/bestMatchingAppName()" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE19bestMatchingAppNameSSyFZ">bestMatchingAppName()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The appropriate name for the app to be displayed in the update alert.</p>
<p>Siren checks <code>CFBundleDisplayName</code> first. It then falls back to
to <code>kCFBundleNameKey</code> and ultimately to an empty string
if the aforementioned values are nil.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">bestMatchingAppName</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">String</span></code></pre>
</div>
</div>
<div>
<h4>Return Value</h4>
<p>The name of the app.</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE15sirenBundlePath33_9C775CF4CEC7A5F21E625F58C71BDF22LLSSSgyFZ"></a>
<a name="//apple_ref/swift/Method/sirenBundlePath()" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE15sirenBundlePath33_9C775CF4CEC7A5F21E625F58C71BDF22LLSSSgyFZ">sirenBundlePath()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The path to Siren&rsquo;s localization <code>Bundle</code>.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">sirenBundlePath</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
<div>
<h4>Return Value</h4>
<p>The bundle&rsquo;s path or <code>nil</code>.</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE21sirenForcedBundlePath33_9C775CF4CEC7A5F21E625F58C71BDF22LL25forceLanguageLocalizationSSSgAC0R0V0Q0O_tFZ"></a>
<a name="//apple_ref/swift/Method/sirenForcedBundlePath(forceLanguageLocalization:)" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE21sirenForcedBundlePath33_9C775CF4CEC7A5F21E625F58C71BDF22LL25forceLanguageLocalizationSSSgAC0R0V0Q0O_tFZ">sirenForcedBundlePath(forceLanguageLocalization:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The path for a particular language localizationin Siren&rsquo;s localization <code>Bundle</code>.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">sirenForcedBundlePath</span><span class="p">(</span><span class="nv">forceLanguageLocalization</span><span class="p">:</span> <span class="kt"><a href="../Structs/Localization.html">Localization</a></span><span class="o">.</span><span class="kt">Language</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>forceLanguageLocalization</em>
</code>
</td>
<td>
<div>
<p>The language localization that should be searched for in Siren&rsquo;s localization <code>bundle</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The path to the forced language localization.</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE14deviceLanguage33_9C775CF4CEC7A5F21E625F58C71BDF22LLAC12LocalizationV0D0OSgyFZ"></a>
<a name="//apple_ref/swift/Method/deviceLanguage()" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE14deviceLanguage33_9C775CF4CEC7A5F21E625F58C71BDF22LLAC12LocalizationV0D0OSgyFZ">deviceLanguage()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The user&rsquo;s preferred language based on their device&rsquo;s localization.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">final</span> <span class="kd">class</span> <span class="kd">func</span> <span class="nf">deviceLanguage</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Structs/Localization.html">Localization</a></span><span class="o">.</span><span class="kt">Language</span><span class="p">?</span></code></pre>
</div>
</div>
<div>
<h4>Return Value</h4>
<p>The user&rsquo;s preferred language.</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-326
View File
@@ -1,326 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Constants Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a title="Constants Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html">Siren Reference</a>
<img id="carat" src="../../img/carat.png" />
Constants Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Constants</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
<p>Constants used in the <code>Bundle</code> extension.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE9ConstantsV15bundleExtensionSSvpZ"></a>
<a name="//apple_ref/swift/Variable/bundleExtension" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE9ConstantsV15bundleExtensionSSvpZ">bundleExtension</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for the <code>.bundle</code> file extension.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">bundleExtension</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE9ConstantsV11displayNameSSvpZ"></a>
<a name="//apple_ref/swift/Variable/displayName" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE9ConstantsV11displayNameSSvpZ">displayName</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for <code>CFBundleDisplayName</code>.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">displayName</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE9ConstantsV19englishLocalizationSSvpZ"></a>
<a name="//apple_ref/swift/Variable/englishLocalization" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE9ConstantsV19englishLocalizationSSvpZ">englishLocalization</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for the default US English localization.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">englishLocalization</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE9ConstantsV16projectExtensionSSvpZ"></a>
<a name="//apple_ref/swift/Variable/projectExtension" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE9ConstantsV16projectExtensionSSvpZ">projectExtension</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for the project file extension.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">projectExtension</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE9ConstantsV18shortVersionStringSSvpZ"></a>
<a name="//apple_ref/swift/Variable/shortVersionString" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE9ConstantsV18shortVersionStringSSvpZ">shortVersionString</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for <code>CFBundleShortVersionString</code>.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">shortVersionString</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So8NSBundleC5SirenE9ConstantsV5tableSSvpZ"></a>
<a name="//apple_ref/swift/Variable/table" class="dashAnchor"></a>
<a class="token" href="#/s:So8NSBundleC5SirenE9ConstantsV5tableSSvpZ">table</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for the localization table.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">table</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-263
View File
@@ -1,263 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Date Extension Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Extension/Date" class="dashAnchor"></a>
<a title="Date Extension Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
Date Extension Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Date</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">Date</span> <span class="p">:</span> <span class="kt">ReferenceConvertible</span><span class="p">,</span> <span class="kt">Comparable</span><span class="p">,</span> <span class="kt">Equatable</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:10Foundation4DateV5SirenE4days5sinceSiAC_tFZ"></a>
<a name="//apple_ref/swift/Method/days(since:)" class="dashAnchor"></a>
<a class="token" href="#/s:10Foundation4DateV5SirenE4days5sinceSiAC_tFZ">days(since:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The amount of days passed from a specific source date.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="kd">func</span> <span class="nf">days</span><span class="p">(</span><span class="n">since</span> <span class="nv">date</span><span class="p">:</span> <span class="kt">Date</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Int</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>date</em>
</code>
</td>
<td>
<div>
<p>The source date.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The amount of days passed since the source date.</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:10Foundation4DateV5SirenE4days5sinceSiSgSS_tFZ"></a>
<a name="//apple_ref/swift/Method/days(since:)" class="dashAnchor"></a>
<a class="token" href="#/s:10Foundation4DateV5SirenE4days5sinceSiSgSS_tFZ">days(since:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The amount of days passed from a specific source date string.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="kd">func</span> <span class="nf">days</span><span class="p">(</span><span class="n">since</span> <span class="nv">dateString</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Int</span><span class="p">?</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>dateString</em>
</code>
</td>
<td>
<div>
<p>The source date string.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>The amount of days passed since the source date.</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-255
View File
@@ -1,255 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>UIAlertController Extension Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Extension/UIAlertController" class="dashAnchor"></a>
<a title="UIAlertController Extension Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
UIAlertController Extension Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>UIAlertController</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">UIAlertController</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:So17UIAlertControllerC5SirenE4show6windowySo8UIWindowC_tF"></a>
<a name="//apple_ref/swift/Method/show(window:)" class="dashAnchor"></a>
<a class="token" href="#/s:So17UIAlertControllerC5SirenE4show6windowySo8UIWindowC_tF">show(window:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Presents Siren&rsquo;s <code>UIAlertController</code> in a new <code>UIWindow</code>.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">show</span><span class="p">(</span><span class="nv">window</span><span class="p">:</span> <span class="kt">UIWindow</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>window</em>
</code>
</td>
<td>
<div>
<p>The <code>UIWindow</code> that <em>should</em> reference Siren&rsquo;s <code>UIAlertController</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So17UIAlertControllerC5SirenE4hide6windowySo8UIWindowC_tF"></a>
<a name="//apple_ref/swift/Method/hide(window:)" class="dashAnchor"></a>
<a class="token" href="#/s:So17UIAlertControllerC5SirenE4hide6windowySo8UIWindowC_tF">hide(window:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Hides Siren&rsquo;s <code>UIAlertController</code> within a given window.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">hide</span><span class="p">(</span><span class="nv">window</span><span class="p">:</span> <span class="kt">UIWindow</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>window</em>
</code>
</td>
<td>
<div>
<p>The <code>UIWindow</code> that references Siren&rsquo;s <code>UIAlertController</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-245
View File
@@ -1,245 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>UserDefaults Extension Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Extension/UserDefaults" class="dashAnchor"></a>
<a title="UserDefaults Extension Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
UserDefaults Extension Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>UserDefaults</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">UserDefaults</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO"></a>
<a name="//apple_ref/swift/Enum/SirenKeys" class="dashAnchor"></a>
<a class="token" href="#/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO">SirenKeys</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren-specific <code>UserDefaults</code> Keys</p>
<a href="../Extensions/UserDefaults/SirenKeys.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">enum</span> <span class="kt">SirenKeys</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So14NSUserDefaultsC5SirenE20storedSkippedVersionSSSgvpZ"></a>
<a name="//apple_ref/swift/Variable/storedSkippedVersion" class="dashAnchor"></a>
<a class="token" href="#/s:So14NSUserDefaultsC5SirenE20storedSkippedVersionSSSgvpZ">storedSkippedVersion</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Sets and Gets a <code>UserDefault</code> around storing a version that the user wants to skip updating.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">var</span> <span class="nv">storedSkippedVersion</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So14NSUserDefaultsC5SirenE21alertPresentationDate10Foundation0F0VSgvpZ"></a>
<a name="//apple_ref/swift/Variable/alertPresentationDate" class="dashAnchor"></a>
<a class="token" href="#/s:So14NSUserDefaultsC5SirenE21alertPresentationDate10Foundation0F0VSgvpZ">alertPresentationDate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Sets and Gets a <code>UserDefault</code> around the last time the user was presented a version update alert.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">var</span> <span class="nv">alertPresentationDate</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-246
View File
@@ -1,246 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenKeys Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/SirenKeys" class="dashAnchor"></a>
<a title="SirenKeys Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html">Siren Reference</a>
<img id="carat" src="../../img/carat.png" />
SirenKeys Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenKeys</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">enum</span> <span class="kt">SirenKeys</span> <span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
<p>Siren-specific <code>UserDefaults</code> Keys</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO37PerformVersionCheckOnSubsequentLaunchyA2FmF"></a>
<a name="//apple_ref/swift/Element/PerformVersionCheckOnSubsequentLaunch" class="dashAnchor"></a>
<a class="token" href="#/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO37PerformVersionCheckOnSubsequentLaunchyA2FmF">PerformVersionCheckOnSubsequentLaunch</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Key that notifies Siren to perform a version check and present
the Siren alert the next time the user launches the app.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="kt">PerformVersionCheckOnSubsequentLaunch</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO22StoredVersionCheckDateyA2FmF"></a>
<a name="//apple_ref/swift/Element/StoredVersionCheckDate" class="dashAnchor"></a>
<a class="token" href="#/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO22StoredVersionCheckDateyA2FmF">StoredVersionCheckDate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Key that stores the timestamp of the last version check.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="kt">StoredVersionCheckDate</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO20StoredSkippedVersionyA2FmF"></a>
<a name="//apple_ref/swift/Element/StoredSkippedVersion" class="dashAnchor"></a>
<a class="token" href="#/s:So14NSUserDefaultsC5SirenE0C4Keys33_0884631E60E090AA276701A736B793BBLLO20StoredSkippedVersionyA2FmF">StoredSkippedVersion</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Key that stores the version that a user decided to skip.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="kt">StoredSkippedVersion</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-146
View File
@@ -1,146 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Protocols Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Protocols" class="dashAnchor"></a>
<a title="Protocols Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">Siren Reference</a>
<img id="carat" src="img/carat.png" />
Protocols Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/AlertMessaging.html">AlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="Structs/AlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/CapturedError.html">CapturedError</a>
</li>
<li class="nav-group-task">
<a href="Structs/CapturedError/Known.html"> Known</a>
</li>
<li class="nav-group-task">
<a href="Structs/Constants.html">Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/Constants/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Structs/Constants/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="Structs/Constants/VersionCheckFrequency.html"> VersionCheckFrequency</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="Structs/LookupModel.html">LookupModel</a>
</li>
<li class="nav-group-task">
<a href="Structs/LookupModel/Results.html"> Results</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Protocols</h1>
<p>The following protocols are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/SirenDelegate%20Protocol"></a>
<a name="//apple_ref/swift/Section/SirenDelegate Protocol" class="dashAnchor"></a>
<a href="#/SirenDelegate%20Protocol">
<h3 class="section-name">SirenDelegate Protocol</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP"></a>
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP">SirenDelegate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Delegate that handles all codepaths for Siren upon version check completion.</p>
<a href="Protocols/SirenDelegate.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span> <span class="p">:</span> <span class="kt">NSObjectProtocol</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-11-18)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-433
View File
@@ -1,433 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SirenDelegate Protocol Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Protocol/SirenDelegate" class="dashAnchor"></a>
<a title="SirenDelegate Protocol Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
SirenDelegate Protocol Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/SirenDelegate.html">SirenDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/AlertMessaging.html">AlertMessaging</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertMessaging/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/CapturedError.html">CapturedError</a>
</li>
<li class="nav-group-task">
<a href="../Structs/CapturedError/Known.html"> Known</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Constants.html">Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Constants/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Constants/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Constants/VersionCheckFrequency.html"> VersionCheckFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/LookupModel.html">LookupModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/LookupModel/Results.html"> Results</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>SirenDelegate</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SirenDelegate</span> <span class="p">:</span> <span class="kt">NSObjectProtocol</span></code></pre>
</div>
</div>
<p>Delegate that handles all codepaths for Siren upon version check completion.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlertySS5title_SS7messageAA9ConstantsV10UpdateTypeO06updateN0tF"></a>
<a name="//apple_ref/swift/Method/sirenDidDetectNewVersionWithoutAlert(title:message:updateType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlertySS5title_SS7messageAA9ConstantsV10UpdateTypeO06updateN0tF">sirenDidDetectNewVersionWithoutAlert(title:message:updateType:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren performed a version check and did not display an alert.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidDetectNewVersionWithoutAlert</span><span class="p">(</span><span class="nv">title</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">message</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">updateType</span><span class="p">:</span> <span class="kt"><a href="../Structs/Constants.html">Constants</a></span><span class="o">.</span><span class="kt">UpdateType</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP24sirenDidFailVersionCheckys5Error_p5error_tF"></a>
<a name="//apple_ref/swift/Method/sirenDidFailVersionCheck(error:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidFailVersionCheckys5Error_p5error_tF">sirenDidFailVersionCheck(error:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren failed to perform version check.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
Depending on the reason for failure,
a system-level error may be returned.
</div>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidFailVersionCheck</span><span class="p">(</span><span class="nv">error</span><span class="p">:</span> <span class="kt">Error</span><span class="p">)</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP24sirenDidShowUpdateDialogyAA9ConstantsV9AlertTypeO05alertJ0_tF"></a>
<a name="//apple_ref/swift/Method/sirenDidShowUpdateDialog(alertType:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP24sirenDidShowUpdateDialogyAA9ConstantsV9AlertTypeO05alertJ0_tF">sirenDidShowUpdateDialog(alertType:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User presented with an update dialog.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenDidShowUpdateDialog</span><span class="p">(</span><span class="nv">alertType</span><span class="p">:</span> <span class="kt"><a href="../Structs/Constants.html">Constants</a></span><span class="o">.</span><span class="kt">AlertType</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>alertType</em>
</code>
</td>
<td>
<div>
<p>The type of alert that was presented.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP27sirenLatestVersionInstalledyyF"></a>
<a name="//apple_ref/swift/Method/sirenLatestVersionInstalled()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP27sirenLatestVersionInstalledyyF">sirenLatestVersionInstalled()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Siren performed a version check and the latest version was already installed.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenLatestVersionInstalled</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP50sirenNetworkCallDidReturnWithNewVersionInformationyAA11LookupModelV06lookupM0_tF"></a>
<a name="//apple_ref/swift/Method/sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP50sirenNetworkCallDidReturnWithNewVersionInformationyAA11LookupModelV06lookupM0_tF">sirenNetworkCallDidReturnWithNewVersionInformation(lookupModel:)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Provides the decoded JSON information from a successful version check call.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenNetworkCallDidReturnWithNewVersionInformation</span><span class="p">(</span><span class="nv">lookupModel</span><span class="p">:</span> <span class="kt"><a href="../Structs/LookupModel.html">LookupModel</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>lookupModel</em>
</code>
</td>
<td>
<div>
<p>The <code>Decodable</code> model representing the JSON results from the iTunes Lookup API.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP18sirenUserDidCancelyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidCancel()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP18sirenUserDidCancelyyF">sirenUserDidCancel()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that cancels update dialog.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidCancel</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP26sirenUserDidLaunchAppStoreyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidLaunchAppStore()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP26sirenUserDidLaunchAppStoreyyF">sirenUserDidLaunchAppStore()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that launched <q>App Store.app</q>.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidLaunchAppStore</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren0A8DelegateP23sirenUserDidSkipVersionyyF"></a>
<a name="//apple_ref/swift/Method/sirenUserDidSkipVersion()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren0A8DelegateP23sirenUserDidSkipVersionyyF">sirenUserDidSkipVersion()</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>User did click on button that skips version update.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sirenUserDidSkipVersion</span><span class="p">()</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev and Aaron Brager</a>. All rights reserved. (Last updated: 2018-11-18)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-475
View File
@@ -1,475 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Structures Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Structures" class="dashAnchor"></a>
<a title="Structures Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">Siren Reference</a>
<img id="carat" src="img/carat.png" />
Structures Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Structures</h1>
<p>The following structures are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV"></a>
<a name="//apple_ref/swift/Struct/APIManager" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV">APIManager</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>APIManager for Siren</p>
<a href="Structs/APIManager.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">APIManager</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren19PresentationManagerV"></a>
<a name="//apple_ref/swift/Struct/PresentationManager" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren19PresentationManagerV">PresentationManager</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>PresentationManager for Siren</p>
<a href="Structs/PresentationManager.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">PresentationManager</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren12RulesManagerV"></a>
<a name="//apple_ref/swift/Struct/RulesManager" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren12RulesManagerV">RulesManager</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>RulesManager for Siren</p>
<a href="Structs/RulesManager.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">RulesManager</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren8APIModelV"></a>
<a name="//apple_ref/swift/Struct/APIModel" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren8APIModelV">APIModel</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Model representing a selection of results from the iTunes Lookup API.</p>
<a href="Structs/APIModel.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">APIModel</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren14AlertConstantsV"></a>
<a name="//apple_ref/swift/Struct/AlertConstants" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren14AlertConstantsV">AlertConstants</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The default constants used for the update alert&rsquo;s messaging.</p>
<a href="Structs/AlertConstants.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">AlertConstants</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren12LocalizationV"></a>
<a name="//apple_ref/swift/Struct/Localization" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren12LocalizationV">Localization</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Localization information and strings for Siren.</p>
<a href="Structs/Localization.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Localization</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren5ModelV"></a>
<a name="//apple_ref/swift/Struct/Model" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren5ModelV">Model</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The validated and unwrapped <code><a href="Structs/APIModel.html">APIModel</a></code>.
This model is presented to the end user in Siren&rsquo;s completion handler.</p>
<a href="Structs/Model.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Model</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren5RulesV"></a>
<a name="//apple_ref/swift/Struct/Rules" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren5RulesV">Rules</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Alert Presentation Rules for Siren.</p>
<a href="Structs/Rules.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Rules</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren13UpdateResultsV"></a>
<a name="//apple_ref/swift/Struct/UpdateResults" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren13UpdateResultsV">UpdateResults</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The relevant metadata returned from Siren upon completing a successful version check.</p>
<a href="Structs/UpdateResults.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">UpdateResults</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10DataParserV"></a>
<a name="//apple_ref/swift/Struct/DataParser" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10DataParserV">DataParser</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Version parsing functions for Siren.</p>
<a href="Structs/DataParser.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">DataParser</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-500
View File
@@ -1,500 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>APIManager Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/APIManager" class="dashAnchor"></a>
<a title="APIManager Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
APIManager Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>APIManager</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">APIManager</span></code></pre>
</div>
</div>
<p>APIManager for Siren</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV9Constants33_8071139324B24E2065F4037045A8D960LLV"></a>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV9Constants33_8071139324B24E2065F4037045A8D960LLV">Constants</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constants used in the <code><a href="../Structs/APIManager.html">APIManager</a></code>.</p>
<a href="../Structs/APIManager/Constants.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV17CompletionHandlera"></a>
<a name="//apple_ref/swift/Alias/CompletionHandler" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV17CompletionHandlera">CompletionHandler</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Return results or errors obtained from performing a version check with Siren.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">typealias</span> <span class="kt">CompletionHandler</span> <span class="o">=</span> <span class="p">(</span><span class="kt">Result</span><span class="o">&lt;</span><span class="kt"><a href="../Structs/APIModel.html">APIModel</a></span><span class="p">,</span> <span class="kt"><a href="../Enums/KnownError.html">KnownError</a></span><span class="o">&gt;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV11countryCodeSSSgvp"></a>
<a name="//apple_ref/swift/Property/countryCode" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV11countryCodeSSSgvp">countryCode</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The region or country of an App Store in which the app is available.
By default, all version check requests are performed against the US App Store.
If the app is not available in the US App Store, set it to the identifier of at least one App Store region within which it is available.</p>
<p><a href="https://help.apple.com/app-store-connect/#/dev997f9cf7c">List of country codes</a></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">countryCode</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV11countryCodeACSSSg_tcfc"></a>
<a name="//apple_ref/swift/Method/init(countryCode:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV11countryCodeACSSSg_tcfc">init(countryCode:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Initializes <code>APIManager</code> to the region or country of an App Store in which the app is available.
By default, all version check requests are performed against the US App Store.
If the app is not available in the US App Store, set it to the identifier of at least one App Store region within which it is available.</p>
<p><a href="https://help.apple.com/app-store-connect/#/dev997f9cf7c">List of country codes</a></p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">countryCode</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>countryCode</em>
</code>
</td>
<td>
<div>
<p>The country code for the App Store in which the app is availabe. Defaults to nil (e.g., the US App Store)</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV7defaultACvpZ"></a>
<a name="//apple_ref/swift/Variable/default" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV7defaultACvpZ">default</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The default <code>APIManager</code>.</p>
<p>The version check is performed against the US App Store.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">let</span> <span class="p">`</span><span class="nv">default</span><span class="p">`:</span> <span class="kt">APIManager</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV26performVersionCheckRequest10completionyys6ResultOyAA8APIModelVAA10KnownErrorOGcSg_tF"></a>
<a name="//apple_ref/swift/Method/performVersionCheckRequest(completion:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV26performVersionCheckRequest10completionyys6ResultOyAA8APIModelVAA10KnownErrorOGcSg_tF">performVersionCheckRequest(completion:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Creates and performs a URLRequest against the iTunes Lookup API.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">performVersionCheckRequest</span><span class="p">(</span><span class="n">completion</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Structs/APIManager.html#/s:5Siren10APIManagerV17CompletionHandlera">CompletionHandler</a></span><span class="p">?)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>handler</em>
</code>
</td>
<td>
<div>
<p>The completion handler for the iTunes Lookup API request.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV26processVersionCheckResults33_8071139324B24E2065F4037045A8D960LL8withData8response5error10completiony10Foundation0M0VSg_So13NSURLResponseCSgs5Error_pSgys6ResultOyAA8APIModelVAA05KnownS0OGcSgtF"></a>
<a name="//apple_ref/swift/Method/processVersionCheckResults(withData:response:error:completion:)" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV26processVersionCheckResults33_8071139324B24E2065F4037045A8D960LL8withData8response5error10completiony10Foundation0M0VSg_So13NSURLResponseCSgs5Error_pSgys6ResultOyAA8APIModelVAA05KnownS0OGcSgtF">processVersionCheckResults(withData:response:error:completion:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Parses and maps the the results from the iTunes Lookup API request.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">func</span> <span class="nf">processVersionCheckResults</span><span class="p">(</span><span class="n">withData</span> <span class="nv">data</span><span class="p">:</span> <span class="kt">Data</span><span class="p">?,</span>
<span class="nv">response</span><span class="p">:</span> <span class="kt">URLResponse</span><span class="p">?,</span>
<span class="nv">error</span><span class="p">:</span> <span class="kt">Error</span><span class="p">?,</span>
<span class="n">completion</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Structs/APIManager.html#/s:5Siren10APIManagerV17CompletionHandlera">CompletionHandler</a></span><span class="p">?)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>data</em>
</code>
</td>
<td>
<div>
<p>The JSON data returned from the request.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>response</em>
</code>
</td>
<td>
<div>
<p>The response metadata returned from the request.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>error</em>
</code>
</td>
<td>
<div>
<p>The error returned from the request.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>handler</em>
</code>
</td>
<td>
<div>
<p>The completion handler to call once the results of the request has been processed.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV13makeITunesURL33_8071139324B24E2065F4037045A8D960LL10Foundation0E0VyKF"></a>
<a name="//apple_ref/swift/Method/makeITunesURL()" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV13makeITunesURL33_8071139324B24E2065F4037045A8D960LL10Foundation0E0VyKF">makeITunesURL()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Creates the URL that points to the iTunes Lookup API.</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
An error if the URL cannot be created.
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">func</span> <span class="nf">makeITunesURL</span><span class="p">()</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">URL</span></code></pre>
</div>
</div>
<div>
<h4>Return Value</h4>
<p>The iTunes Lookup API URL.</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-218
View File
@@ -1,218 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Constants Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/Constants" class="dashAnchor"></a>
<a title="Constants Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html">Siren Reference</a>
<img id="carat" src="../../img/carat.png" />
Constants Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Constants</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">struct</span> <span class="kt">Constants</span></code></pre>
</div>
</div>
<p>Constants used in the <code><a href="../../Structs/APIManager.html">APIManager</a></code>.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV9Constants33_8071139324B24E2065F4037045A8D960LLV8bundleIDSSvpZ"></a>
<a name="//apple_ref/swift/Variable/bundleID" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV9Constants33_8071139324B24E2065F4037045A8D960LLV8bundleIDSSvpZ">bundleID</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for the <code>bundleId</code> parameter in the iTunes Lookup API request.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">bundleID</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren10APIManagerV9Constants33_8071139324B24E2065F4037045A8D960LLV7countrySSvpZ"></a>
<a name="//apple_ref/swift/Variable/country" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren10APIManagerV9Constants33_8071139324B24E2065F4037045A8D960LLV7countrySSvpZ">country</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Constant for the <code>country</code> parameter in the iTunes Lookup API request.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">country</span><span class="p">:</span> <span class="kt">String</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-247
View File
@@ -1,247 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>APIModel Structure Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Struct/APIModel" class="dashAnchor"></a>
<a title="APIModel Structure Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">Siren Reference</a>
<img id="carat" src="../img/carat.png" />
APIModel Structure Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>APIModel</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">APIModel</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
</div>
</div>
<p>Model representing a selection of results from the iTunes Lookup API.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren8APIModelV10CodingKeys33_36C7527D28702FA956B420860C285DA0LLO"></a>
<a name="//apple_ref/swift/Enum/CodingKeys" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren8APIModelV10CodingKeys33_36C7527D28702FA956B420860C285DA0LLO">CodingKeys</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Codable Coding Keys for the Top-Level iTunes Lookup API JSON response.</p>
<a href="../Structs/APIModel/CodingKeys.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">enum</span> <span class="kt">CodingKeys</span> <span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="kt">CodingKey</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren8APIModelV7resultsSayAC7ResultsVGvp"></a>
<a name="//apple_ref/swift/Property/results" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren8APIModelV7resultsSayAC7ResultsVGvp">results</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The array of results objects from the iTunes Lookup API.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">results</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Structs/APIModel/Results.html">Results</a></span><span class="p">]</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:5Siren8APIModelV7ResultsV"></a>
<a name="//apple_ref/swift/Struct/Results" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren8APIModelV7ResultsV">Results</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The Results object from the the iTunes Lookup API.</p>
<a href="../Structs/APIModel/Results.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">Results</span> <span class="p">:</span> <span class="kt">Decodable</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-191
View File
@@ -1,191 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CodingKeys Enumeration Reference</title>
<link rel="stylesheet" type="text/css" href="../../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../../css/highlight.css" />
<meta charset='utf-8'>
<script src="../../js/jquery.min.js" defer></script>
<script src="../../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Enum/CodingKeys" class="dashAnchor"></a>
<a title="CodingKeys Enumeration Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../../index.html">Siren Docs</a> (100% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../../index.html">Siren Reference</a>
<img id="carat" src="../../img/carat.png" />
CodingKeys Enumeration Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Classes/Siren.html">Siren</a>
</li>
<li class="nav-group-task">
<a href="../../Classes/SirenViewController.html">SirenViewController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Enums/AlertAction.html">AlertAction</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/KnownError.html">KnownError</a>
</li>
<li class="nav-group-task">
<a href="../../Enums/PerformCheck.html">PerformCheck</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Extensions/Bundle.html">Bundle</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Bundle/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/Date.html">Date</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UIAlertController.html">UIAlertController</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults.html">UserDefaults</a>
</li>
<li class="nav-group-task">
<a href="../../Extensions/UserDefaults/SirenKeys.html"> SirenKeys</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../../Structs/APIManager.html">APIManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIManager/Constants.html"> Constants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel.html">APIModel</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/CodingKeys.html"> CodingKeys</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/APIModel/Results.html"> Results</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/AlertConstants.html">AlertConstants</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/DataParser.html">DataParser</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization.html">Localization</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Localization/Language.html"> Language</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Model.html">Model</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/PresentationManager.html">PresentationManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules.html">Rules</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/AlertType.html"> AlertType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/Rules/UpdatePromptFrequency.html"> UpdatePromptFrequency</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager.html">RulesManager</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/RulesManager/UpdateType.html"> UpdateType</a>
</li>
<li class="nav-group-task">
<a href="../../Structs/UpdateResults.html">UpdateResults</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CodingKeys</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">enum</span> <span class="kt">CodingKeys</span> <span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="kt">CodingKey</span></code></pre>
</div>
</div>
<p>Codable Coding Keys for the Top-Level iTunes Lookup API JSON response.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:5Siren8APIModelV10CodingKeys33_36C7527D28702FA956B420860C285DA0LLO7resultsyA2FmF"></a>
<a name="//apple_ref/swift/Element/results" class="dashAnchor"></a>
<a class="token" href="#/s:5Siren8APIModelV10CodingKeys33_36C7527D28702FA956B420860C285DA0LLO7resultsyA2FmF">results</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The results JSON key.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="k">case</span> <span class="n">results</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2019 <a class="link" href="https://github.com/ArtSabintsev/Siren" target="_blank" rel="external">Arthur Ariel Sabintsev</a>. All rights reserved. (Last updated: 2019-04-16)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.6</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>

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