问题标签 [entitlements]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3993 浏览

iphone - 了解 iPhone 项目的 Entitlements.plist

我对 Entitlements.plist 有一些疑问。根据苹果文档

我们可以通过 Entitlements.plist 使用 iOS 功能。只有一个名为“Can be Debugged”/get-task-allow 的公共授权密钥可以添加调试功能。

我没有将 Entitlements.plist 添加到我的应用程序项目中,并且我能够调试在设备上运行的应用程序。

有人可以帮助理解

a) 什么是 Entitlements.plist 和
b) 为什么需要它?

0 投票
3 回答
4293 浏览

ios - iCloud 权利被拒绝

我已经在我的(现有)应用程序上工作了一段时间,以添加对 iCloud 同步的支持。总的来说,我有 3 个版本的应用程序:

a) 普通 iPhone 版
b) lite(免费)iPhone 版
c) iPad 版

我想使用 iCloud 使所有 3 个版本/设备之间的核心数据存储同步。我已经实现了,我在我的设备上放置的开发版本运行良好。

昨天我决定提交 iPhone 版本,但被拒绝了:

无效的代码签名权利 - 您的应用程序包的签名包含不受支持的权利值。对于 com.apple.developer.ubiquity-container-identifiers 权利,数组中的第一个值必须由 Apple 在配置文件中提供的前缀和捆绑标识符后缀组成。捆绑包标识符必须与您的一个应用程序或允许您用作 iCloud 容器标识符的另一个应用程序的捆绑包标识符匹配。

具体来说,不支持 [my app] 中键“com.apple.developer.ubiquity-container-identifiers”的值“[teamid].com.[myself].[somename]”。

我真的不知道这些标识符应该是什么样子。在此页面上:https ://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/iCloud/iCloud.html#//apple_ref/doc/uid/TP40007072-CH5-SW1他们说了一些关于我的其他应用程序的容器......我是否必须为我的应用程序的 3 个版本添加 3 个容器?到目前为止,我在 project/targets/summary/entitlements 下进行了配置:

[x] iCloud 键值存储:com.[myself].[somename]
iCloud 容器:com.[myself].[somename]

对于所有 3 个版本(相同的标识符)。我必须准确配置什么,以便所有 3 个版本都可以通过 iCloud 同步其核心数据存储数据库?

0 投票
1 回答
1166 浏览

ios - 如何根据每个用户存储应用内购买以供离线使用

似乎 iOS 上的钥匙串是按应用而不是按用户存储数据的。

因此,如果我将有关应用内购买的信息存储在钥匙串中,则无论当前登录的是哪个 Apple-id,这些产品都将在设备上保持可用。

我可能需要网络访问并执行恢复以了解哪些产品应该可用,但执行非用户启动的恢复似乎是一种不好的做法。此外,该应用程序应在离线时正常运行。

我的问题是:我如何保护应用内购买不被购买它们的 Apple-id 以外的用户使用?

0 投票
0 回答
287 浏览

entitlements - 当我调用 runModal 时 NSOpenPanel 不显示

你好因为我花了几个小时寻找解决方案但没有找到,并发现了错误我虽然我会出去发布它。

我创建了一个 NSOpenPanel,就像每个人都创建它一样,设置它接受的文件类型,并调用 runModal,程序冻结了大约 15 秒,然后继续运行,就好像模式已被取消一样。问题是我在我的应用程序中使用了权利,并且在应用程序沙箱化时,我需要将用户文件访问权限设置为读写才能使其正常工作。一旦我在我的项目设置中进行了设置,我再次运行该程序并能够使用 NSOpenPanel。祝大家好运。

0 投票
2 回答
5464 浏览

ios - 权利“应用程序标识符”具有配置文件不允许的值

我收到了一个 2 年前发布的项目,该项目是由不再隶属于我们的第三方开发的。我正在使用 iOS5.0 sdk 在 xcode4.2 中运行它,并且已经使用这些构建了一些其他应用程序而没有任何问题。该项目的部署目标设置为 3.2.1,因为它是一个较旧的项目,理论上仍应在较旧的设备上运行。

该项目在模拟器中运行良好,但不能在设备上运行。它启动,加载启动画面,并在加载其他资产时崩溃,在 xcode 中没有显示错误。使用管理器中的设备控制台,我注意到它显示错误:

这个错误一开始显示几次,还有一个:

我创建了一个启用了推送服务的新配置文件,并完成了所有的证书工作——我怀疑这个错误是第一个错误的后续,但我不确定。以前当我遇到这个问题时,这是因为我错误地在没有配置推送通知的情况下针对 prov 配置文件进行构建 - 切换到正确的配置文件解决了这个问题。

令人困惑的是,我尝试删除 prov 配置文件,重新启动 xcode、mac 和设备 - 问题仍然存在。我已确保 plist 中的包标识符与配置文件中使用的标识符匹配。我不确定是否需要更改 Entitlements.plist 中的任何内容,我之前制作的应用程序中没有此文件(我被认为在 xcode 4 中删除了该要求?)。目前,该 plist 中唯一的一行是“可以调试”,我已经尝试过正确和错误 - 两者都没有奏效。

我在这里查找了以前的问题,但没有运气。如果配置文件有问题,我什至不会期望它会构建,更不用说显示启动屏幕了。

有谁知道问题可能是什么?

提前谢谢了。

编辑:如果相关的话,我使用的设备是 3GS,在 iOS 5.0 上。无论我是直接从 xcode 运行,还是将应用程序归档为 ipa 并将其复制到设备,都会发生崩溃。

0 投票
2 回答
2624 浏览

app-store - 验证 iPhone 应用程序存档

尝试将应用程序发送到 Apple 的 App Store。Xcode 4.3.2。已通过 testflightapp 成功将应用程序发送给用户,现在想将其发送到商店。当我尝试通过管理器分发应用程序时,我收到以下三个验证错误:

  • iPhone/iPod Touch:应用程序可执行文件缺少所需的架构。必须至少存在以下架构之一:armv6
  • 应用程序未通过协同设计验证。签名无效,包含不允许的权利,或者未使用 iPhone 分发证书签名。
  • 无法从应用程序中提取权利:(null)

我想我应该自下而上地工作,因为当我开始着手解决这个问题时,我只遇到了第一个错误,而且从我阅读的所有内容来看,提交到应用商店时不需要权利。

我有一个 Entitlements.plist。我尝试将其删除。我试过用它创造新鲜的。Targets->App->Summary 的 Entitlements 部分未选中/清除。Targets->App->Build Settings->Deployment 部分确实为安装所有者/组以及备用安装所有者/组列出了“Entitlements.plist”。我已将这些重置为一组“员工”和“pedstrom”的所有者。

我已经尝试过像这样的说明:必须至少存在以下架构之一:armv7 (-19033) 无法验证您的应用程序。- (null)无济于事。

任何帮助将不胜感激。

0 投票
1 回答
340 浏览

ios - 权利无效?

我目前正在 Xcode 的开发者预览版上运行。我注意到有一个生成的“权利”文件。每当我构建我的 iOS 应用程序时,我都会收到此错误:

可执行文件已使用无效权利进行签名。

为什么我会得到这个?我假设这是因为生成了权利文件。我还查看了其他类似的问题,他们都在谈论 Ad hoc 分发,我没有这样做。

以前有人遇到过这个问题吗?

0 投票
1 回答
280 浏览

ios - IOS:appstore进程的entitlement.plist

我知道对于 ADhoc 版本,我应该在 entitlement.plist 中设置“get-task-allow”中的“NO”值,但对于 AppStore 流程?我应该设置什么?

0 投票
1 回答
1699 浏览

ios - 当开发人员签名的二进制文件被辞去分发时,get-task-allowed 仍然为真

我想要一个流程,其中我的项目被设置为生成一个使用开发移动配置文件签名的应用程序,稍后可以使用 Xcode 的便捷界面将其重新用于 AdHoc 或 AppStore 分发。

问题是,当我创建由开发配置文件签名的存档时,embedded.mobileprovision应用程序二进制文件本身都包含get-task-allowed设置为的规范true,但是当我为此使用 Xcode 的 UI 重新签署该应用程序时,结果是一个应用程序embedded.mobileprovisionget-task-allowed设置为false(如我所愿),但二进制文件本身仍包含get-task-allowed设置为true(不是我想要的)。

那么,如何正确地对应用程序进行签名,以便用于重新签名的分发配置文件在整个生成的应用程序中得到正确应用?

0 投票
1 回答
263 浏览

database - 如何获得对沙盒应用程序内资源中的数据库的读/写访问权限?

我在 MyApp.app/Contents/Resources 文件夹中有数据库。我至少想在沙盒应用程序中从中读取数据。

现在我在控制台中有很多“拒绝文件写入数据/Users/user/Desktop/MyApp.app/Contents/Resources/DB/app_db.db”。

我不能使用 com.apple.security.temporary-exception.files.home-relative-path.read-write 因为我不想依赖应用程序的最终用户位置。

尽管控制台中有警告,但我的应用程序正在运行。是否有权授予访问权限,或者我应该在第一次启动时将我的数据库复制到容器中?