The iOS AppStore guidelines has restrictions on 3rd-party code that we'll need to make sure we comply with. At the time of this writing, the guidelines were:
Guidelines
See App Review Guidelines - Apple Developer
4.7 Mini apps, mini games, streaming games, chatbots, and plug-ins
Apps may offer certain software that is not embedded in the binary, specifically mini apps, mini games, streaming games, chatbots, and plug-ins. You are responsible for all such software offered in your app, including ensuring that such software complies with these Guidelines and all applicable laws. Software that does not comply with one or more guidelines will lead to the rejection of your app. You must also ensure that the software adheres to the additional rules that follow in 4.7.1 and 4.7.5. These additional rules are important to preserve the experience that App Store customers expect, and to help ensure user safety.
4.7.1 Software offered in apps under this rule must:
- follow all privacy guidelines, including but not limited to the rules set forth in Guideline 5.1 concerning collection, use, and sharing of data, and sensitive data (such as health and personal data from kids);
- include a method for filtering objectionable material, a mechanism to report content and timely responses to concerns, and the ability to block abusive users; and
- use in-app purchase in order to offer digital goods or services to end users.
4.7.2 Your app may not extend or expose native platform APIs to the software without prior permission from Apple.
4.7.3 Your app may not share data or privacy permissions to any individual software offered in your app without explicit user consent in each instance.
4.7.4 You must provide an index of software and metadata available in your app. It must include universal links that lead to all of the software offered in your app.
4.7.5 Your app must share the age rating of the highest age-rated content available in your app.
As such, before creating a version that can be distributed for iOS, I suspect that we'll need to allow only a specific set of plugins and versions (though perhaps the restrictions are different for TestFlight?). We may also need to get permission from Apple to allow plugins to access the clipboard (which currently uses a native API) and Joplin's database (this includes access to notes).
1 Like