我已迁移到Xcode 4,无法再将我的应用程序提交到App Store.每次我通过Xcode或Application Loader提交时,都会收到同样的错误:
"应用程序标识符权利格式不正确......"
用Google搜索指向Entitlements.plist文件,其中application-identifier键应与我的应用程序包ID匹配:例如J1234567885.com.domain.appName
事情就是这样.我的app.plist和Entitlements.plist中的包标识符是相同的!我究竟做错了什么?这是我的Entitlements.plist文件(从未改变过回头看):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>J1234567885.com.domain.appName</string>
<key>get-task-allow</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我已经更改了上面的标识符,但只是为了给你一个想法......
我不得不在 XCode 中对我的旧 iPhone 应用程序进行一些更改。
将其上传到 App Store 时,出现以下问题:
“ITMS-90078:缺少推送通知权利 - 您的应用似乎注册了 Apple 推送通知服务,但应用签名的权利不包括“aps-environment”权利。如果您的应用使用 Apple 推送通知服务,请确保您的 App ID 在 Provisioning Portal 中已启用推送通知,并在使用包含“aps-environment”权利的分发配置文件对您的应用程序进行签名后重新提交。Xcode 不会在构建时自动从配置文件复制 aps-environment 权利. 此行为是有意为之。要使用此权利,请在项目编辑器的“功能”窗格中启用推送通知,或手动将权利添加到您的权利文件中。”
我已经做到了它所说的。我重新生成了所有证书等等,但它并没有解决我的问题。
无论如何,我在我的权利文件中有它(即使我将其更新为生产也无济于事)
我的证书没问题:
我该怎么办?
非常感谢!
我正在寻找加密应用程序中的用户数据,NSFileProtection机制看起来很完美.
这个SO问题/答案线程向我指出了WWDC 2011视频保护iOS应用程序 ,它提供了通过权利在应用程序中设置数据保护的"太好了,真实"的提示(参见33分钟).
所以,我为我的iOS 5.x +应用尝试了这个,并遇到了抱怨无效权利的问题.
我已经通过iOS Provisioning Portal为特定应用程序配置了数据保护,并更新了我的应用程序配置,所以理论上我应该全部设置,但我仍然得到错误.
如果从Entitlement中删除特定的FileProtectionComplete设置,则应用程序运行时不会出现Invalid Entitlement错误.
在调查这一点时,我也看到一些人正在拒绝他们的应用程序(当他们上传二进制文件时),因为这不受支持(或不赞成?).请注意,我特别询问数据保护,而不是Passbook.
在这个阶段,我在想,也许它确实是,"真是太好了".所以,我即将放弃这个神奇的权利标志,而是使用编程方法,添加NSFileProtectionComplete作为写选项.
但是,在我这样做之前,任何人都可以确认他们只是通过使用Entitlements标志成功添加数据保护吗?谢谢.
我目前正在开发一款适用于iOS 8的应用程序,该应用程序使用iCloud Drive和CloudKit Framework.一切都是使用Xcode 6设置的.
当我尝试将我的应用程序提交到iTunesConnect时,我收到以下错误:

当我在我的iCloud权利中添加密钥时,我无法对应用程序进行代码签名,Xcode也向我发送错误.
<key>com.apple.developer.ubiquity-container-identifiers</key>
<string>de.sn0wfreeze.CloudFInder</string>
Run Code Online (Sandbox Code Playgroud)
我会得到那个错误:

我无法编码签名.有人可以帮我解决这个问题吗?
新生成的配置文件似乎不再与同一应用程序的旧版本兼容.新应用程序可以使用新的配置文件,但是我们不希望升级链接到旧版本后端的所有应用程序,并且不能与最新的应用程序兼容.我们确实需要尽快续订配置文件,以保持旧应用的正常运行.我们之前已经这样做了,但现在我们遇到了以下问题.
使用更新的配置文件打开应用程序时,它会在控制台日志中显示以下消息:
entitlement 'com.apple.developer.team-identifier' has value not permitted by provisioning profile 'My Profile'
Run Code Online (Sandbox Code Playgroud)
在检查配置文件时,事实证明包含团队标识符的数组现在不再是数组,而是单个元素.
以前的配置文件:
<key>com.apple.developer.team-identifier</key>
<array>
<string>SomeIdentifier</string>
</array>
Run Code Online (Sandbox Code Playgroud)
续订配置文件:
<key>com.apple.developer.team-identifier</key>
<string>SomeIdentifier</string>
Run Code Online (Sandbox Code Playgroud)
是否可以向iOS配置文件添加团队标识符?这样它将再次成为一个阵列.
在Xcode项目中,我能够在两个地方找到团队标识符.在pbxproj文件和证书中.看起来不可能在项目中为同一目标添加任何标识符,因为它是键值对样式赋值.
我还试图破解新的配置文件,只是在项目周围包装数组标签(希望它不在签名范围之外).不幸的是,当我尝试将被黑客入侵的配置文件安装到设备时,Xcode崩溃(可能不处理签名异常).
任何添加标识符或其他方式以获得更新的配置文件兼容的方法将非常感激.
我们最近在应用商店推出了iOS应用.一些代码文件引用了Passkit框架.此外,还添加了权利
com.apple.developer.pass-type-identifiers
Run Code Online (Sandbox Code Playgroud)
关键和各自的团队ID.但在内部应用程序功能中,我们已禁用Wallet.但仍然在应用程序商店的应用程序描述中支持它显示钱包.有人遇到过同样的问题吗?有没有人知道它为什么显示?是因为我们添加的权利还是因为引用Passkit.
我正在尝试与iOS10的CallKit集成,但是当我在接受电话呼叫后尝试初始化音频会话时,这个"AudioUnitInitialize"API将抛出此错误"AVAudioSessionErrorCodeMissingEntitlement".根据该文件,它只是一行说明:https: //developer.apple.com/reference/avfoundation/avaudiosessionerrorcode/avaudiosessionerrorcodemissingentitlement
我该如何更新支持权利?有没有经验?
我在我的iOS和Android应用程序中使用Milkman EasyPush ANE进行推送通知.与OneSignal后端一起使用.
一切都适用于iOS 9和Android,但没有iOS 10设备注册.我正在使用AnimateCC(与Flash CC Pro相同)和Air SDK 23构建.
如果我在iOS 10设备上调试并监听onRegFailed事件,我得到:
"找不到有效的aps-environment权利申请"
如上所述,iOS 9没有问题.
当我将IPA上传到App Store时,我收到以下消息:
缺少推送通知权利 - 您的应用程序包含Apple推送通知服务的API,但应用程序签名中缺少aps-environment权利.要解决此问题,请确保在Provisioning Portal中为推送通知启用了App ID.然后,使用包含aps-environment权利的分发配置文件为您的应用签名.这将创建正确的签名,您可以重新提交您的应用程序.有关详细信息,请参阅"本地和推送通知编程指南"中的"供应和开发".如果您的应用不使用Apple推送通知服务,则无需执行任何操作.您可以从将来的提交中删除API以停止此警告.如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息.
但是为什么它在iOS 9上运行,而不是在iOS 10上呢?
谢谢您的帮助
当我启动MacOS应用程序时,我可以在控制台上看到错误
com.myAppBundle: Unsatisfied entitlements: com.apple.security.application-groups
Disallowing: com.myAppBundle
Run Code Online (Sandbox Code Playgroud)
但是,似乎该应用程序工作正常,我确实有权利文件与这些值:
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>$(TeamIdentifierPrefix)group</string>
</array>
Run Code Online (Sandbox Code Playgroud)
那么为什么我会收到"不满意的权利"错误?
编辑:
对于iOS应用程序,除了功能选项卡之外,还需要在Apple Developer帐户中添加应用程序组.但OSX应用程序没有这样的选项
在搜索到处后,我发现有一种方法可以使用以下API在iPhone中添加eSIM
func addPlan(with: CTCellularPlanProvisioningRequest, completionHandler: (CTCellularPlanProvisioningAddPlanResult) -> Void)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么但是完成处理程序没有返回CTCellularPlanProvisioningAddPlanResult的结果 只是打印以下错误.
Domain=NSCocoaErrorDomain Code=4099 "The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo=
{NSDebugDescription=The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated.
Run Code Online (Sandbox Code Playgroud)
我想知道这个API是如何工作的,你可以在下面看到我的代码
let ctpr = CTCellularPlanProvisioningRequest()
ctpr.address = "SMDP+"
ctpr.confirmationCode = ""
ctpr.eid = ""
ctpr.iccid = ""
let ctcp = CTCellularPlanProvisioning()
ctcp.addPlan(with: ctpr) { (result) in
print(result)
}
Run Code Online (Sandbox Code Playgroud)
我正在使用CoreTelephony框架
任何帮助都会被批评
在检查其他应用程序后,我发现GigSky正在做同样的事情,有谁知道他们在做什么?
更新:
截至目前,我在下面找到了权利请求URL检查
https://developer.apple.com//contact/request/esim-access-entitlement
我要求,但苹果没有回应.
entitlements ×10
ios ×8
air ×1
app-store ×1
audio ×1
callkit ×1
certificate ×1
cloudkit ×1
code-signing ×1
enterprise ×1
icloud ×1
ios10 ×1
iphone ×1
macos ×1
onesignal ×1
passkit ×1
swift ×1
wallet ×1
xcode ×1
xcode6 ×1