Easy, drop-in tip jar for iOS apps.

Overview

Version License Platform

Installation

TipJarViewController is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'TipJarViewController'

Usage

Before you can use TipJarViewController in your app, you'll first need to create a few IAPs in iTunes Connect--2 subscription IAPs and 5 one-time IAPs. This is currently a requirement but may change in the future.

Once you've created your IAPs, you just need to configure the header and description at the top of the view controller, and tell TipJarViewController what your IAP product identifiers are, using the TipJarConfiguration protocol. E.g.,

struct TipJarOptions: TipJarConfiguration {
    static var topHeader = "Hi There"

    static var topDescription = """
If you've been enjoying this app and would like to show your support, please consider a tip. They go such a long way, and every little bit helps. Thanks! :)
"""

    static func subscriptionProductIdentifier(for row: SubscriptionRow) -> String {
        switch row {
        case .monthly: return "com.acme.app.TipJarSubscription.Monthly"
        case .yearly: return "com.acme.app.TipJarSubscription.Yearly"
        }
    }

    static func oneTimeProductIdentifier(for row: OneTimeRow) -> String {
        switch row {
        case .small: return "com.acme.app.Tip.Small"
        case .medium: return "com.acme.app.Tip.Medium"
        case .large: return "com.acme.app.Tip.Large"
        case .huge: return "com.acme.app.Tip.Huge"
        case .massive: return "com.acme.app.Tip.Massive"
        }
    }

    static var termsOfUseURLString = "https://acme.app/terms.html"
    static var privacyPolicyURLString = "https://acme.app/privacy.html"
}

And then, to instantiate the TipJarViewController:

let controller = TipJarViewController<TipJarOptions>()

If you want more customization options, just make your configuration conform to TipJarOptionalConfiguration. You can also specify a URL running Lionheart's receipt verifier to check for valid purchases on your own server.

extension TipJarOptions: TipJarOptionalConfiguration {
    static var title = "Tip Jar"
    static var oneTimeTipsTitle = "One-Time Tips"
    static var subscriptionTipsTitle = "Ongoing Tips ❤️"
    static var receiptVerifierURLString = "https://receipt-verifier.herokuapp.com/verify"
}

License

TipJarViewController is available under the Apache 2.0 license. See the LICENSE file for more info.

Comments
  • Bump rack from 2.0.7 to 2.1.4

    Bump rack from 2.0.7 to 2.1.4

    Bumps rack from 2.0.7 to 2.1.4.

    Changelog

    Sourced from rack's changelog.

    Changelog

    All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference Keep A Changelog.

    [3.0.0] - Unreleased

    Changed

    • BREAKING CHANGE: Require status to be an Integer. (#1662, @olleolleolle)
    • Relax validations around Rack::Request#host and Rack::Request#hostname. (#1606, @pvande)
    • Removed antiquated handlers: FCGI, LSWS, SCGI, Thin. (#1658, @ioquatix)
    • Removed options from Rack::Builder.parse_file and Rack::Builder.load_file. (#1663, @ioquatix)

    Fixed

    • Fix using Rack::Session::Cookie with coder: Rack::Session::Cookie::Base64::{JSON,Zip}. (#1666, @jeremyevans)
    • Avoid NoMethodError when accessing Rack::Session::Cookie without requiring delegate first. (#1610, @onigra)
    • Handle cookies with values that end in '=' (#1645, @lukaso)

    [2.2.2] - 2020-02-11

    Fixed

    • Fix incorrect Rack::Request#host value. (#1591, @ioquatix)
    • Revert Rack::Handler::Thin implementation. (#1583, @jeremyevans)
    • Double assignment is still needed to prevent an "unused variable" warning. (#1589, @kamipo)
    • Fix to handle same_site option for session pool. (#1587, @kamipo)

    [2.2.1] - 2020-02-09

    Fixed

    • Rework Rack::Request#ip to handle empty forwarded_for. (#1577, @ioquatix)

    [2.2.0] - 2020-02-08

    SPEC Changes

    • rack.session request environment entry must respond to to_hash and return unfrozen Hash. (@jeremyevans)
    • Request environment cannot be frozen. (@jeremyevans)
    • CGI values in the request environment with non-ASCII characters must use ASCII-8BIT encoding. (@jeremyevans)
    • Improve SPEC/lint relating to SERVER_NAME, SERVER_PORT and HTTP_HOST. (#1561, @ioquatix)

    Added

    • rackup supports multiple -r options and will require all arguments. (@jeremyevans)
    • Server supports an array of paths to require for the :require option. (@khotta)
    • Files supports multipart range requests. (@fatkodima)
    • Multipart::UploadedFile supports an IO-like object instead of using the filesystem, using :filename and :io options. (@jeremyevans)
    • Multipart::UploadedFile supports keyword arguments :path, :content_type, and :binary in addition to positional arguments. (@jeremyevans)
    Commits
    • 5280870 bump version
    • a243510 When parsing cookies, only decode the values
    • e7ba1b0 fix directory listing
    • b9b8652 bump version
    • 775c836 adding a test for directory traversal
    • dddb7ad Use Dir.entries instead of Dir[glob] to prevent user-specified glob metachara...
    • 16a51d8 Bump for 2.1.2 release
    • 0a2c927 Update changelog in preparation for 2.1.2
    • b50bc8b Fix multipart parser for special files #1308
    • f9ef9a0 Fix use with kwargs
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • IAP Title and Descriptions not appearing but Price does.

    IAP Title and Descriptions not appearing but Price does.

    The IAP titles/names and descriptions are not appearing, except for the first one (Monthly – though it's not showing the correct description, so not sure where that is coming from). Example attached.

    The price is being populated correctly and when I tap purchase, it'll then show the correct IAP title/name in the popup. Example attached.

    Any thoughts on why the app isn't placing the content into the TipJar landing screen? Let me know if there is other details I should provide.

    Thanks for putting together this service!

    iOS 13.4.1 xCode 10.3

    IMG_F68CFACF8914-1

    IMG_EC23B8D0AE87-1

    opened by ericbenwa 1
  • Bump rack from 2.0.7 to 2.0.8

    Bump rack from 2.0.7 to 2.0.8

    Bumps rack from 2.0.7 to 2.0.8.

    Changelog

    Sourced from rack's changelog.

    Changelog

    All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference Keep A Changelog.

    Unreleased

    Note: There are many unreleased changes in Rack (master is around 300 commits ahead of 2-0-stable), and below is not an exhaustive list. If you would like to help out and document some of the unreleased changes, PRs are welcome.

    Added

    Changed

    • Use Time#httpdate format for Expires, as proposed by RFC 7231. (@​nanaya)
    • Make Utils.status_code raise an error when the status symbol is invalid instead of 500.
    • Rename Request::SCHEME_WHITELIST to Request::ALLOWED_SCHEMES.
    • Make Multipart::Parser.get_filename accept files with + in their name.
    • Add Falcon to the default handler fallbacks. (@​ioquatix)
    • Update codebase to avoid string mutations in preparation for frozen_string_literals. (@​pat)
    • Change MockRequest#env_for to rely on the input optionally responding to #size instead of #length. (@​janko)
    • Rename Rack::File -> Rack::Files and add deprecation notice. (@​postmodern).

    Removed

    Documentation

    • Update broken example in Session::Abstract::ID documentation. (tonytonyjan)
    • Add Padrino to the list of frameworks implmenting Rack. (@​wikimatze)
    • Remove Mongrel from the suggested server options in the help output. (@​tricknotes)
    • Replace HISTORY.md and NEWS.md with CHANGELOG.md. (@​twitnithegirl)
    • Backfill CHANGELOG.md from 2.0.1 to 2.0.7 releases. (@​drenmi)
    Commits
    • e7ee459 Bumping version
    • f1a79b2 Introduce a new base class to avoid breaking when upgrading
    • 5b1cab6 Add a version prefix to the private id to make easier to migrate old values
    • 1e96e0f Fallback to the public id when reading the session in the pool adapter
    • 3ba123d Also drop the session with the public id when destroying sessions
    • 6a04bbf Fallback to the legacy id when the new id is not found
    • dc45a06 Add the private id
    • 73a5f79 revert conditionals to master
    • 4e32262 remove NullSession
    • 1c7e3b2 remove || raise and get closer to master
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Enhancement Request: Remove Subscription Requirement

    Enhancement Request: Remove Subscription Requirement

    My app continues to be rejected because of the following:

    App Store Information We were unable to find the following App Store Information items in App Store Connect.

    – Information about the auto-renewable nature of the subscription in your app's description: • Title of publication or service • Length of subscription (time period and content or services provided during each subscription period) • Payment will be charged to iTunes Account at confirmation of purchase • Subscription automatically renews unless auto-renew is turned off at least 24-hours before the end of the current period • Account will be charged for renewal within 24-hours prior to the end of the current period, and identify the cost of the renewal • Subscriptions may be managed by the user and auto-renewal may be turned off by going to the user's Account Settings after purchase • Any unused portion of a free trial period, if offered, will be forfeited when the user purchases a subscription to that publication, where applicable – A link to the terms of use in either the app description or EULA field – A privacy policy link in the Privacy Policy URL field

    I have provided them with a screen shot of the lower section of the app and they still are not approving the application. Unless you can help me through this process, I'd like to remove the subscription tip because I really do not want to use it that feature.

    I find it frustrating that they call this "metadata" because I don't think of this content as metadata but based on https://medium.com/revenuecat-blog/apple-will-reject-your-subscription-app-if-you-dont-include-this-disclosure-bba95244405d, the issue may be due to the above content being "below the fold".

    Thank you!

    opened by zoopra9457 1
  • Bump redcarpet from 3.5.0 to 3.5.1

    Bump redcarpet from 3.5.0 to 3.5.1

    Bumps redcarpet from 3.5.0 to 3.5.1.

    Release notes

    Sourced from redcarpet's releases.

    Redcarpet v3.5.1

    Fix a security vulnerability using :quote in combination with the :escape_html option.

    Reported by Johan Smits.

    Changelog

    Sourced from redcarpet's changelog.

    Version 3.5.1 (Security)

    • Fix a security vulnerability using :quote in combination with the :escape_html option.

      Reported by Johan Smits.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Fatal error when testing functionality

    Fatal error when testing functionality

    When I tap on the IAP button in my implementation of this module in my app (with a test build running on my own physical iPhone SE), i get the error as follows:

    Fatal error: unexpected enum case 'UIViewAnimationCurve(rawValue: 7)'

    Please let me know if you've seen this before. Thanks.

    opened by lukemmtt 0
  • Bump tzinfo from 1.2.7 to 1.2.10

    Bump tzinfo from 1.2.7 to 1.2.10

    Bumps tzinfo from 1.2.7 to 1.2.10.

    Release notes

    Sourced from tzinfo's releases.

    v1.2.10

    TZInfo v1.2.10 on RubyGems.org

    v1.2.9

    • Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a zoneinfo file that includes rules specifying an additional transition to the final defined offset (for example, Africa/Casablanca in version 2018e of the Time Zone Database). #123.

    TZInfo v1.2.9 on RubyGems.org

    v1.2.8

    • Added support for handling "slim" format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. The 64-bit section is now always used regardless of whether Time has support for 64-bit times. #120.
    • Rubinius is no longer supported.

    TZInfo v1.2.8 on RubyGems.org

    Changelog

    Sourced from tzinfo's changelog.

    Version 1.2.10 - 19-Jul-2022

    Version 1.2.9 - 16-Dec-2020

    • Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a zoneinfo file that includes rules specifying an additional transition to the final defined offset (for example, Africa/Casablanca in version 2018e of the Time Zone Database). #123.

    Version 1.2.8 - 8-Nov-2020

    • Added support for handling "slim" format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. The 64-bit section is now always used regardless of whether Time has support for 64-bit times. #120.
    • Rubinius is no longer supported.
    Commits
    • 0814dcd Fix the release date.
    • fd05e2a Preparing v1.2.10.
    • b98c32e Merge branch 'fix-directory-traversal-1.2' into 1.2
    • ac3ee68 Remove unnecessary escaping of + within regex character classes.
    • 9d49bf9 Fix relative path loading tests.
    • 394c381 Remove private_constant for consistency and compatibility.
    • 5e9f990 Exclude Arch Linux's SECURITY file from the time zone index.
    • 17fc9e1 Workaround for 'Permission denied - NUL' errors with JRuby on Windows.
    • 6bd7a51 Update copyright years.
    • 9905ca9 Fix directory traversal in Timezone.get when using Ruby data source
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump rack from 2.2.3 to 2.2.3.1

    Bump rack from 2.2.3 to 2.2.3.1

    Bumps rack from 2.2.3 to 2.2.3.1.

    Changelog

    Sourced from rack's changelog.

    Changelog

    All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference Keep A Changelog.

    [3.0.0] - Unreleased

    Security

    SPEC Changes

    • Response status must now be an integer greater than or equal to 100.
    • Response headers must now be an unfrozen hash.
    • Response header keys can no longer include uppercase characters.
    • Response header values can be an Array to handle multiple values (and no longer supports \n encoded headers).
    • Response body can now respond to #call (streaming body) instead of #each (enumerable body), for the equivalent of response hijacking in previous versions.
    • Middleware must no longer call #each on the body, but they can call #to_ary on the body if it responds to #to_ary.
    • rack.input is no longer required to be rewindable.
    • rack.multithread/rack.multiprocess/rack.run_once are no longer required environment keys.
    • SERVER_PROTOCOL is now a required key, matching the HTTP protocol used in the request.

    Removed

    • Remove rack.multithread/rack.multiprocess/rack.run_once. These variables generally come too late to be useful. (#1720, [@​ioquatix], [@​jeremyevans]))
    • Remove deprecated Rack::Request::SCHEME_WHITELIST. ([@​jeremyevans])
    • Remove internal cookie deletion using pattern matching, there are very few practical cases where it would be useful and browsers handle it correctly without us doing anything special. (#1844, [@​ioquatix])

    Added

    • Rack::Headers added to support lower-case header keys. ([@​jeremyevans])
    • Rack::Utils#set_cookie_header now supports escape_key: false to avoid key escaping. ([@​jeremyevans])
    • Rack::RewindableInput supports size. (@​ahorek)
    • Rack::RewindableInput::Middleware added for making rack.input rewindable. ([@​jeremyevans])
    • The RFC 7239 Forwarded header is now supported and considered by default when looking for information on forwarding, falling back to the X-Forwarded-* headers. Rack::Request.forwarded_priority accessor has been added for configuring the priority of which header to check. (#1423, [@​jeremyevans])
    • Allow response headers to contain array of values. (#1598, [@​ioquatix])

    Changed

    • BREAKING CHANGE: Require status to be an Integer. (#1662, @​olleolleolle)
    • BREAKING CHANGE: Query parsing now treats parameters without = as having the empty string value instead of nil value, to conform to the URL spec. (#1696, [@​jeremyevans])
    • Relax validations around Rack::Request#host and Rack::Request#hostname. (#1606, @​pvande)
    • Removed antiquated handlers: FCGI, LSWS, SCGI, Thin. (#1658, [@​ioquatix])
    • Removed options from Rack::Builder.parse_file and Rack::Builder.load_file. (#1663, [@​ioquatix])
    • Rack::HTTP_VERSION has been removed and the HTTP_VERSION env setting is no longer set in the CGI and Webrick handlers. (#970, [@​jeremyevans])
    • Rack::Request#[] and #[]= now warn even in non-verbose mode. (#1277, [@​jeremyevans])
    • Decrease default allowed parameter recursion level from 100 to 32. (#1640, [@​jeremyevans])
    • Attempting to parse a multipart response with an empty body now raises Rack::Multipart::EmptyContentError. (#1603, [@​jeremyevans])
    • Rack::Utils.secure_compare uses OpenSSL's faster implementation if available. (#1711, @​bdewater)
    • Rack::Request#POST now caches an empty hash if input content type is not parseable. (#749, [@​jeremyevans])

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump cocoapods-downloader from 1.4.0 to 1.6.3

    Bump cocoapods-downloader from 1.4.0 to 1.6.3

    Bumps cocoapods-downloader from 1.4.0 to 1.6.3.

    Release notes

    Sourced from cocoapods-downloader's releases.

    1.6.3

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.2

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.1

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.0

    Enhancements
    • None.
    Bug Fixes
    • Adds a check for command injections in the input for hg and git.
      orta #124

    1.5.1

    Enhancements
    • None.
    Bug Fixes
    • Fix "can't modify frozen string" errors when pods are integrated using the branch option
      buju77 #10920

    1.5.0

    ... (truncated)

    Changelog

    Sourced from cocoapods-downloader's changelog.

    1.6.3 (2022-04-01)

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.2 (2022-03-28)

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.1 (2022-03-23)

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.0 (2022-03-22)

    Enhancements
    • None.
    Bug Fixes
    • Adds a check for command injections in the input for hg and git.
      orta #124

    1.5.1 (2021-09-07)

    Enhancements
    • None.

    ... (truncated)

    Commits
    • c03e2ed Release 1.6.3
    • f75bccc Disable Bazaar tests due to macOS 12.3 not including python2
    • 52a0d54 Merge pull request #128 from CocoaPods/validate_before_dl
    • d27c983 Ensure that the git pre-processor doesn't accidentally bail also
    • 3adfe1f [CHANGELOG] Add empty Master section
    • 591167a Release 1.6.2
    • d2564c3 Merge pull request #127 from CocoaPods/validate_before_dl
    • 99fec61 Switches where we check for invalid input, to move it inside the download fun...
    • 96679f2 [CHANGELOG] Add empty Master section
    • 3a7c54b Release 1.6.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • "Manage Subscriptions" URL leads to wrong page/app

    Tapping "Manage Subscriptions" would lead me to Safari and display the following screen: IMG_5856

    After doing some digging around I found this post: https://stackoverflow.com/questions/15530794/link-to-app-manage-subscriptions-in-app-store

    And I used the following link that seems to work for me. itms-apps://apps.apple.com/account/subscriptions

    Hope this helps!

    opened by ericbenwa 0
  • TipJarViewController - Tableview.reloadData() called on main thread

    TipJarViewController - Tableview.reloadData() called on main thread

    Seeing this in the latest version of TipJarViewController.

    This is happening in the productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) function in TipJarViewController.

    Main Thread Checker: UI API called on a background thread: -[UITableView reloadData] PID: 8441, TID: 2593234, Thread name: (none), Queue name: com.apple.root.default-qos, QoS: 0 Backtrace: 4 TipJarViewController 0x0000000105b19418 $s20TipJarViewControllerAAC15productsRequest_10didReceiveySo010SKProductsF0C_So0I8ResponseCtF + 1184 5 TipJarViewController 0x0000000105b19748 $s20TipJarViewControllerAAC15productsRequest_10didReceiveySo010SKProductsF0C_So0I8ResponseCtFTo + 100 6 StoreKit 0x00000001bf55b858 0F0A30BF-E9E6-3199-BEBB-26402D218695 + 75864 7 libdispatch.dylib 0x0000000105bcde48 _dispatch_call_block_and_release + 32 8 libdispatch.dylib 0x0000000105bcf2a8 _dispatch_client_callout + 20 9 libdispatch.dylib 0x0000000105bd1b1c _dispatch_queue_override_invoke + 924 10 libdispatch.dylib 0x0000000105be0aac _dispatch_root_queue_drain + 356 11 libdispatch.dylib 0x0000000105be1418 _dispatch_worker_thread2 + 144 12 libsystem_pthread.dylib 0x00000001b05dea60 _pthread_wqthread + 216 13 libsystem_pthread.dylib 0x00000001b05e4c78 start_wqthread + 8 2019-09-24 07:07:05.877766-0700 Karl[8441:2593234] [reports] Main Thread Checker: UI API called on a background thread: -[UITableView reloadData] PID: 8441, TID: 2593234, Thread name: (none), Queue name: com.apple.root.default-qos, QoS: 0 Backtrace: 4 TipJarViewController 0x0000000105b19418 $s20TipJarViewControllerAAC15productsRequest_10didReceiveySo010SKProductsF0C_So0I8ResponseCtF + 1184 5 TipJarViewController 0x0000000105b19748 $s20TipJarViewControllerAAC15productsRequest_10didReceiveySo010SKProductsF0C_So0I8ResponseCtFTo + 100 6 StoreKit 0x00000001bf55b858 0F0A30BF-E9E6-3199-BEBB-26402D218695 + 75864 7 libdispatch.dylib 0x0000000105bcde48 _dispatch_call_block_and_release + 32 8 libdispatch.dylib 0x0000000105bcf2a8 _dispatch_client_callout + 20 9 libdispatch.dylib 0x0000000105bd1b1c _dispatch_queue_override_invoke + 924 10 libdispatch.dylib 0x0000000105be0aac _dispatch_root_queue_drain + 356 11 libdispatch.dylib 0x0000000105be1418 _dispatch_worker_thread2 + 144 12 libsystem_pthread.dylib 0x00000001b05dea60 _pthread_wqthread + 216 13 libsystem_pthread.dylib 0x00000001b05e4c78 start_wqthread + 8

    opened by chaseacton 0
  • Using TipJarViewController in an iMessage app

    Using TipJarViewController in an iMessage app

    I have inserted TJVC into an messages extension containing stickers, idea being to tap on the tip jar "sticker" (which is actually a button, not a sticker) and go to the tip jar instead of choosing a sticker (which is what happens when you tap on the other, actual, stickers).

    I almost have it working, can open the tip jar page, initially in compact mode, and then can swipe up for expanded mode. However, when I swipe down to return to compact mode, view is then blank. I can return to expanded view and the full page screen still shows the tip jar, but the compact view only appears the first time.

    Any ideas why this is the case? I am pretty new to iOS, sorry if this is a poor question.

    opened by CricketJones 0
A framework to add patronage to your apps.

PatronKit A framework for add a patronage area to your apps. PatronKit uses CloudKit to record purchases, and then display tallies back to the user. I

Moshe 365 Nov 20, 2022
Easy to use iOS library with components for input of Credit Card data.

AnimatedCardInput This library allows you to drop into your project two easily customisable, animated components that will make input of Credit Card i

Netguru 39 Oct 16, 2022
In-app purchases and subscriptions made easy. Support for iOS, iPadOS, watchOS, and Mac.

In-app purchases and subscriptions made easy. Support for iOS, iPadOS, watchOS, and Mac.

RevenueCat 1.6k Jan 6, 2023
Ruby Gem for Rails - Easy iTunes In-App Purchase Receipt validation, including auto-renewable subscriptions

Monza is a ruby gem that makes In-App Purchase receipt and Auto-Renewable subscription validation easy. You should always validate receipts on the ser

Gabriel 159 Jan 7, 2023
Ios-card-transition - iOS CocoaPod to create beautiful card transitions

CSCardTransition CSCardTransition is a small library allowing you to create wond

Creastel 12 Oct 31, 2022
A Payment Card UI & Validator for iOS

Description Caishen provides an easy-to-use text field to ask users for payment card information and to validate the input. It serves a similar purpos

Prolific Interactive 766 Dec 28, 2022
Easily integrate Credit Card payments module in iOS App. Swift 4.0

MFCard Buy me a coffee MFCard is an awesome looking Credit Card input & validation control. Written in Swift 3. YOoo, Now MFCard is on Swift 5. Swift

MobileFirst 362 Nov 29, 2022
A credit card reader and parser for iOS Using Native Vision/VisionKit

card-reader-ios A credit card reader and parser for iOS Using Native Vision/VisionKit May-14-2021.00-43-17.mp4 Instructions Hold camera up to a card a

Khalid Asad 104 Dec 15, 2022
Lightweight In App Purchases Swift framework for iOS 8.0+, tvOS 9.0+ and macOS 10.10+ ⛺

SwiftyStoreKit is a lightweight In App Purchases framework for iOS, tvOS, watchOS, macOS, and Mac Catalyst. Features Super easy-to-use block-based API

Andrea Bizzotto 6.1k Jan 7, 2023
Make and accept payments in your iOS app via Venmo

Venmo iOS SDK The Venmo iOS SDK lets you make and accept payments in your app using Venmo. Installation If you're using CocoaPods: If you don't have a

Venmo 170 Dec 26, 2022
In App Purchase Manager framework for iOS

InAppFramework In App Purchase Manager framework for iOS Disclaimer I know it's been too long since the last update, quite a few things happened in my

Sándor Gyulai 40 May 23, 2020
Accept credit cards and PayPal in your iOS app

Important: PayPal Mobile SDKs are Deprecated. The APIs powering them will remain operational long enough for merchants to migrate, but the SDKs themse

PayPal 973 Dec 18, 2022
A lightweight iOS library for In-App Purchases

#RMStore A lightweight iOS library for In-App Purchases. RMStore adds blocks and notifications to StoreKit, plus receipt verification, content downloa

Robot Media 2.4k Dec 19, 2022
CreditCardForm is iOS framework that allows developers to create the UI which replicates an actual Credit Card.

CreditCardForm CreditCardForm is iOS framework that allows developers to create the UI which replicates an actual Credit Card. Fixed typo use CreditCa

Orazz 1.4k Dec 15, 2022
A modern In-App Purchases management framework for iOS.

MerchantKit A modern In-App Purchases management framework for iOS developers. MerchantKit dramatically simplifies the work indie developers have to d

Benjamin Mayo 1.1k Dec 17, 2022
Demonstrates how to integrate Stripe Subscriptions on iOS

Stripe Subscriptions with iOS This example app demonstrates how to integrate Stripe subscriptions with the prebuilt payment UI Requirements Create an

Conjure 0 Nov 26, 2021
Integrate Ios framework with anther framework

Puppy Paradise This project is a sample usage of my AOModalStatusView framework. When running, this application will show pictures of puppies and prov

null 0 Dec 10, 2021
Square In-App Payments iOS SDK SwiftUI

Square In-App Payments iOS SDK SwiftUI Build remarkable payments experiences in

Ashley Bailey 2 Mar 8, 2022
A credit card scanner for iOS written in Swift

DGCardScanner A credit card scanner Requirements iOS 13.0+ Swift 5.5+ Xcode 10.0+ Installation SPM File > Add Packages > https://github.com/donggyushi

donggyu 9 Jun 24, 2022