标签: entitlements

iOS如何使用Entitlement.plist指定我的应用程序的属性

我正在使用Jailbreak + Appsync + iOS5.0.1设备(没有开发人员许可证但有一些技巧我可以在设备上运行我的应用程序)

现在我想使用私有API launchApplicationWithIdentifier:suspended:.所以我需要补充一下

<key>com.apple.springboard.launchapplications</key>
<true/>
Run Code Online (Sandbox Code Playgroud)

到myApp.entitlements.plist文件.然后它应该工作但我仍然得到错误

'Receiver type 'UIApplication' for instance message does not declare a method 
 with selector 'launchApplicationWithIdentifier:suspended:''
Run Code Online (Sandbox Code Playgroud)

然后我发现有人说,如果我想使用Entitlements.plist,必须启用代码签名.这是真的吗?我必须拥有开发者许可证吗?

或者有没有其他方法来使用这种方法?我读了一些关于如何使用私有API的方法.这似乎很难.我是iOS开发的新手.

谢谢.

jailbreak iphone-privateapi entitlements code-signing-entitlements

6
推荐指数
1
解决办法
4174
查看次数

配置文件中未启用通过

这是我的步骤.

我使用pass.com.domain.AppName样式创建了一个passtype ID.

我为com.domain.AppName创建了一个App ID.

我在App ID中启用了Passes.

我使用之前创建的应用ID创建了新的配置文件.

我在Xcode中打开了我的项目,将代码签名标识设置为我刚刚创建的配置文件.

我启用了权利,并在传递下,告诉它使用我的配置文件中的权利.

它说通行证没有启用.我究竟做错了什么?

xcode app-id entitlements ios provisioning-profile

6
推荐指数
1
解决办法
476
查看次数

从沙盒应用程序锁定macbook屏幕

我正在构建一个我想在mac app store中分发的mac应用程序.我需要这个应用程序才能拥有锁屏功能.

我有两种不同的方法,问题是,只要我为应用程序启用沙盒(这是mac应用程序商店所需),这些方法都不会起作用.

您知道我需要申请哪项权利吗?或者你知道第三种方法可以使用沙盒吗?

谢谢

方法1,使用CGSession(swift):

var arguments = ["-suspend"]
var task = NSTask()
task.arguments = arguments
task.launchPath = "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession"
task.launch()
Run Code Online (Sandbox Code Playgroud)

方法2,使用IORequestIdle(swift):

var r = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler") 
if (r > 0) {
  IORegistryEntrySetCFProperty(r, "IORequestIdle", kCFBooleanTrue)
  IOObjectRelease(r)
}
Run Code Online (Sandbox Code Playgroud)

macos sandbox entitlements mac-app-store swift

6
推荐指数
1
解决办法
662
查看次数

Apple Pay缺少授权警告

您是否曾在收到此类提交后收到Apple的电子邮件?最奇怪的是,我根本不使用Apple Pay.我应该在哪里看?

Dear developer,

We have discovered one or more issues with your recent delivery for “<APP>". Your delivery was successful, but you may wish to correct the following issues in your next delivery:

Missing Entitlement - App contains references to [Apple Pay] in ‘ <BundleName>', but is missing the required entitlement 'com.apple.developer.in-app-payments'.

After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to iTunes Connect.

Regards,

The App Store team
Run Code Online (Sandbox Code Playgroud)

更新:看到j​​rg回答(在我的情况下解决了我的问题)我有一个过时的Braintree …

entitlements ios applepay

6
推荐指数
0
解决办法
887
查看次数

Xcode:Entitlements.plist 文件在哪里?

我正在尝试提交我的第一个应用程序,但苹果一直给我发一封电子邮件Missing Push Notification Entitlement(在这里问了一个问题:iOS: Missing Push Notification Entitlement

这家伙在这里:https : //stackoverflow.com/a/16681454/1555312似乎有一个答案,那就是删除 Entitlements.plist 文件。但是,我不知道这个文件在哪里。你能告诉我如何 1) 找到文件 2) 删除它 3) 重新生成它吗?

xcode entitlements ios

6
推荐指数
1
解决办法
2万
查看次数

缺少 HealthKit 权利

我正在尝试将 HealthKit 与我正在构建的应用程序集成,并且我似乎已成功添加了它的权利。我已经使用适当的应用程序 ID 创建并下载了配置文件,并且 Xcode 功能选项卡中的 HealthKit 切换似乎看起来不错:

但是,当我运行该应用程序时,出现以下错误:

HealthKit authorization denied!
Error Domain=com.apple.healthkit Code=4 "Missing com.apple.developer.healthkit entitlement." UserInfo={NSLocalizedDescription=Missing com.apple.developer.healthkit entitlement.}
Run Code Online (Sandbox Code Playgroud)

这是一个奇怪的错误消息,因为Add the "HealthKit" entitlement to your App ID已经检查为已成功完成。

但是,一旦我收到该错误,检查的应用程序 ID 权利就会更改为:

但是在我的开发者帐户的App ID中,App ID显示HealthKit确实已启用。

它在我的配置文件中显示了相同的内容。

而且我只有一个应用程序 ID 和一个配置文件可供选择,因此我不可能将它们混淆。

xcode entitlements ios swift healthkit

6
推荐指数
1
解决办法
4842
查看次数

在构建阶段编辑 app.entitlements 文件

我的 Xcode 项目中有多个目标,每个目标都有一个关联的域,但又不同。

权利文件的屏幕截图

我希望为所有目标拥有相同的权利文件,并使用 PListBuddy 编写脚本来更改域的值。

我已经有一个可以在构建阶段启动并正确编辑文件的脚本:

case $TARGET_NAME in
  "EN6") fireBaseUrl="FOO.app.goo.gl";;
  "ES5") fireBaseUrl="BAR.app.goo.gl";;
  "SVT-C4") fireBaseUrl="FOOFOO.app.goo.gl";;
  "PC5") fireBaseUrl="BARBAR.app.goo.gl";;
  *) fireBaseUrl="FOOBAR.app.goo.gl";;
esac

# Universal links used by Firebase
associatedDomainKey="com.apple.developer.associated-domains"
/usr/libexec/PlistBuddy -c "delete ${associatedDomainKey}" app.entitlements
/usr/libexec/PlistBuddy -c "add :${associatedDomainKey} array" -c "add :${associatedDomainKey}:0 string applinks:${fireBaseUrl}" app.entitlements
Run Code Online (Sandbox Code Playgroud)

问题是我有一个“可执行文件是用无效的权利签名的”。在设备上安装应用程序时出错。

我猜这是因为编辑后的权利文件不再与配置文件中包含的权利相对应。

你知道有没有办法做我想做的事?使用 fastlane、shell 脚本或任何东西...(我有 40 个目标,所以我真的只想为所有目标获取一个权利文件)

xcode deep-linking entitlements ios plistbuddy

6
推荐指数
1
解决办法
2303
查看次数

如何使用 iOS 14 触发多播权限的本地网络对话授权

遵循 iOS 14 阻止访问本地网络的新策略,访问本地网络需要 com.apple.developer.networking.multicast 特殊权限,并且此访问应由用户在授权对话框中确认。虽然这个新功能没有被彻底记录下来,但苹果工程师在论坛上表示,这个授权对话框弹出窗口只在应用尝试发送流量时触发,导致应用只读取网络的问题,如iOS 14 如何触发本地网络对话并检查用户回答?

不幸的是,发送一些数据以触发授权对话框的建议在我们的案例中似乎不起作用,因为我们从未出现过弹出对话框。

我们的应用程序通常只接收 UDP 广播(除少数情况外不发送)。我们已经获得了 com.apple.developer.networking.multicast 权利,将其添加到我们的应用程序权利中,在我们的 Info.plist 中添加了请求的 NSLocalNetworkUsageDescription 并使用 XCode 12.0 手动签署我们的应用程序,并使用包含此权利的配置文件(在这种情况下需要手动代码签名,如https://developer.apple.com/forums/thread/656773?answerId=628537022 中所示)。从那时起,情况有所改善,因为在添加权利之前完全阻止的 UDP 数据包接收有时开始工作,但不幸的是并非总是如此(iOS 14.0.1 上的情况似乎比 iOS 14 上和 iPhone 上比 iPad 上更糟)。

最重要的是,我们从未显示授权对话框,我们的应用程序在隐私/本地网络中未显示为已授权(即使 UDP 接收有效)。我们怀疑这可能是造成这种虚假接收问题的原因。由于似乎授权对话框只在发送数据时显示,我们配置我们的应用程序将数据发送到本地网络以尝试触发对话框,使用以下所有方法:

  • TcpSocket 类(使用 CFStreamCreatePairWithSocketToHost)在 80 端口连接到 192.168.1.1 并发送几个字节(这个地址有一个设备)
  • 使用 GCDAsyncSocket 连接并将测试 TCP 数据包发送到相同的地址/端口
  • 使用 GCDAsyncUdpSocket 创建一个 UDP 套接字,启用它进行广播,然后加入 MulticastGroup 224.0.1.0 并在端口 80 上广播测试 UDP 数据包。
  • 使用 GCDAsyncUdpSocket 创建 UDP 套接字,启用它进行广播,然后在端口 80 上将测试 UDP 数据包广播到 255.255.255.255。
  • 重用 Apple 文章 ( https://developer.apple.com/news/?id=0oi77447 ) 中的示例,使用 …

networking multicast entitlements ios ios14

6
推荐指数
1
解决办法
2761
查看次数

哪些权利是特殊权利?它们如何工作?

我查看了此页面,但无法判断哪些权利是特殊的。

我找不到任何关于如何确定哪些需要向 Apple 专门请求的文档。有相关文档吗?

xcode entitlements ios app-store-connect

6
推荐指数
1
解决办法
2875
查看次数

&lt;StopAccessing&gt; 的 MacOS 内部沙箱错误

我正在构建一个允许用户编辑文件的 MacOS 应用程序。为了访问文件,我使用了一个安全范围的书签,如下所示:

do {
            self.securityScopedBookmark = try asset?.url.bookmarkData(options: .withSecurityScope, includingResourceValuesForKeys: nil, relativeTo: nil)
        } catch {
            print("failed bookmark. error info: \(error)")
        }
Run Code Online (Sandbox Code Playgroud)

当用户完成并且 NSDocument 被取消初始化时,我停止访问书签,如下所示:

   deinit {
        if let securityScopedBookmark = self.securityScopedBookmark {
            do {
                var isStale: Bool = false
                
                let url = try URL.init(resolvingBookmarkData: securityScopedBookmark, options: [.withoutUI, .withSecurityScope], relativeTo: nil, bookmarkDataIsStale: &isStale)
                url.stopAccessingSecurityScopedResource()
            } catch let error as NSError {
                print("Bookmark Access Fails: \(error.description)")
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

但是,当尝试调用 .stopAccessingSecurityScopedBookmark() 时,我收到了几个日志错误。

 [scoped] handle 0: sandbox_extension_release error [22: Invalid argument] …
Run Code Online (Sandbox Code Playgroud)

macos sandbox entitlements appstore-sandbox security-scoped-bookmarks

6
推荐指数
0
解决办法
168
查看次数