Tag: 沙盒

iOS 12上的沙盒测试登录

尝试在iOS 12上测试应用内购买时无法切换帐户? 我要么……直到我意识到苹果需要更新他们的文档! 我正在使用“应用内购买”(定期订阅)来开发我的第一个iOS应用。 显然,我想对此进行大量测试,因此,我阅读了有关使用沙箱帐户测试IAP的Apple文档: 如果我按照这些说明进行操作,则当我尝试进行购买时,系统会提示我输入登录到手机的主要Apple帐户的密码,并且无法选择使用其他帐户登录。 我在任何地方都找不到此文档,但是事实证明,现在在“设置-> iTunes和App Store”底部有一个“沙盒帐户”,您可以在其中输入沙盒凭据。 我最终偶然地偶然发现了这一点: Apple的文档中显然缺少一个步骤:在App Store设置的“沙箱”部分中登录您的沙箱帐户。 购买时提示您登录的说法是不正确的,具有欺骗性。 希望这可以节省别人花费我的无聊时间!

使用适用于macOS App的App Sandbox

沙盒是保持应用程序数据访问可控的想法。 每个硬币都有两个面。 让我们看看两者。 没有沙箱 传统上,Mac Apps没有沙盒,开发人员可以完全访问计算机中的所有资源。 例如,一个人可以从任何位置存储和读取文件。 通常,默认情况下会将相同类型的文件放在一起。 以下是一些常见的路径: #文件 〜/图书馆/应用程序支持/com.abc.MyApp/ #NSUserDefaults 〜/ Library / Preferences / com.abc.MyApp.plist #缓存 〜/图书馆/应用程序支持/com.pinterest.PINDiskCache.mycache/ 在此示例中,“ com.abc.MyApp”是我的应用程序的捆绑标识符。 我正在使用PINCache来存储缓存,并将其持久化到磁盘空间。 您会注意到PINCache所存储的文件与应用程序文档处于同一级别。 非沙盒的问题 我知道有些开发人员喜欢完全可配置的环境。 但是,此方法存在一些问题: 1)骇客 由于应用程序可以访问整个系统,因此如果它被恶意代码注入,则系统可能会被黑客入侵 2) 杂乱的文件存储 由于文档,设置,缓存存储在不同的位置,因此花费了更多的开发工作。 例如,如果我想清理文件以重置应用程序,则应前往各个位置进行清理。 使用应用沙箱 随着iOS的发布,这一概念成为一种规范。 每个iOS应用程序都应带有自己的沙箱。 因此,开发人员应要求特定的权限才能获得系统中的其他资源。 为了通过Mac App Store分发应用程序,开发人员必须打开App Sandbox授权。 例如,我正在构建一个使用CloudKit同步数据的应用程序。 我将在“传入和传出网络连接”两个框中打勾。 如果要将检索到的CloudKit记录保存到Documents文件夹中的文件中,则应为“ User Selected File”选择“ Read / Write access”。 在沙盒模式下,所有文件都存储在一个容器中。 例如,上一个示例中的位置将变为: 〜/图书馆/应用程序支持/容器/com.abc.MyApp/Data/图书馆/应用程序支持/ 沙盒问题 […]