捆绑包标识符和推送证书…aps环境授权错误

如何解决捆绑包标识符和推送证书…aps环境授权错误

|| 我已阅读xcode从何处获取应用程序的标识符? ,来自{PRODUCT_NAME}的XCode捆绑包标识符格式,并且加载了更多但... 我正在尝试发送推送通知并消除恐惧   \“错误域= NSCocoaErrorDomain代码= 3000 \”无效的\'aps-environment \'   找到应用程序的授权字符串\“ UserInfo = 0x15b200   {NSLocalizedDescription =没有有效的\'aps-environment \'授权字符串   找到了应用}}“错误。 我可以肯定我正确地遵循了所有步骤,包括: 在提供证书之前做好推送证书 制作了\'Entitlements.plist \' 添加了get-task-allow布尔值并将其设置为true(临时发行版) 我唯一无法完全理解的是Bundle Identifier 推送证书用于
XXXXXXXXXX.com.julianbaker.pwcnewsuk
PwCNewUK-Info.plist中的Bundle标识符用于
com.julianbaker.${PRODUCT_NAME:rfc1034identifier}
如果我手动将其更改为
com.julianbaker.pwcnewsuk
由于该应用被视为PwCNewsUK,因此我收到UDID不匹配错误 当我用Google搜索这个东西时,似乎对此事有些困惑,但是看起来他们必须匹配吗? 题: Bundle Indentifer应该是什么才能与的推送证书相匹配 XXXXXXXXXX.com.julianbaker.pwcnewsuk吗? 题: 我是否需要在配置文件中添加“ aps-environment”权利,如果需要,在何处以及如何使用? (请参阅http://www.airplaysdk.com/node/3174等) 热爱iPhone的开发,但有时可能会让人望而却步!     

解决方法

当我从正在开发的应用程序的开发环境转移到生产环境时,我发现了这个问题。此过程涉及创建新的配置文件,新的应用程序ID等。我创建了应用程序ID和配置文件,但Team Agent必须配置推送通知。当我尝试使用新的配置文件继续测试时(在为推送通知配置了应用程序之后),我遇到了“找不到适用于应用程序的'aps-environment'授权字符串”的问题。然后,我想起了阅读文档中的一些警告: \“您必须以某种方式(例如,切换选项)修改门户网站的配置文件,以生成新的配置文件。如果配置文件不是“脏的”,则会为您提供配置文件没有推送权利。\“ 来源:本地和推送通知编程指南 对我来说,“配置”配置文件“脏”并重新安装它是解决问题所需的全部。根据文档,这是必需的,因为在配置应用程序用于推送通知之前已创建了配置文件。这可能会或不会有任何帮助,但这可能解释(并消除了)手动向配置文件添加任何内容的需求。     ,我遇到了相同的“找不到适用于应用程序的有效'aps-environment'授权字符串”问题,但是上述解决方案对我不起作用。 我找不到有关此错误的很好的文档,甚至找不到键“ aps-environment”。 经过一番修补后,以下是为我解决问题的方法: 使用文本编辑器打开开发配置证书\“ Appname.mobileprovision \”,查找键\“ Entitlements \”,然后将此处找到的所有值添加到“代码签名权利”设置所引用的权利文件中。 这是您可以在其中找到哪些键/值的示例:
<key>application-identifier</key>
<string>xyz.com.xyz.xyz</string>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>xyz.*</string>
</array>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>xyz.*</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>xyz.*</string>
</array>
将所有这些值添加到“权利”文件中后,我的应用程序成功构建,我终于可以恢复使用“推送通知”了。 我不确定XCode是否应该将这些值自动添加到您的权利文件中,但是肯定不是在我的项目中为我生成的。     ,设定: Mac OS X 10.8 + Xcode 4.4 我的简单解决方案: 在为您的应用程序ID设置推送通知并将其导入Xcode后,请重新发布临时配置文件。 查看您的.xcodeproj文件夹(右键单击->显示包内容),然后删除delete4ѭ文件夹。 而已 ;) 关于该问题的一些提示: 在为我的应用程序激活“推送通知”后,我突然无法再创建临时文件。尝试安装我的应用程序时,我在iPhone的控制台日志中遇到了以下错误:
Apr  1 20:56:10 unknown installd[384] <Error>: entitlement \'keychain-access-groups\' has value not permitted by a provisioning profile
Apr  1 20:56:10 unknown installd[384] <Error>: entitlement \'get-task-allow\' has value not permitted by a provisioning profile
Apr  1 20:56:10 unknown installd[384] <Error>: entitlement \'application-identifier\' has value not permitted by a provisioning profile
Apr  1 20:56:10 unknown installd[384] <Error>: 2ff66000 verify_signer_identity: Could not copy validate signature: -402620394
Apr  1 20:56:11 unknown installd[384] <Error>: 2ff66000 preflight_application_install: Could not verify executable at /var/tmp/install_staging.44jV0O/foo_extracted/Payload/PersonalTrainer-Tester-iPhone.app
Apr  1 20:56:11 unknown com.apple.itunesstored[392] <Notice>: MobileInstallationInstall: failed with -1
Apr  1 20:56:11 unknown installd[384] <Error>: 2ff66000 install_application: Could not preflight application install
Apr  1 20:56:11 unknown installd[384] <Error>: 2ff66000 handle_install: API failed
Apr  1 20:56:11 unknown installd[384] <Error>: 2ff66000 send_message: failed to send mach message of 71 bytes: 10000003
Apr  1 20:56:11 unknown installd[384] <Error>: 2ff66000 send_error: Could not send error response to client
有一些技术说明,建议使用ѭ6来检查您的应用是否已针对Apple Push Notifications正确签名。如果codesign命令的输出没有将aps环境设置为生产或开发,则有些麻烦! 据我到目前为止所知,使用临时配置文件签名的应用在
<YourAppName>.app
文件夹中始终带有
embedded.mobileprovision
,其中包含特定部分,例如:
<key>Entitlements</key>
<dict>
    <key>application-identifier</key>
    <string>ABCDEFGH.com.myappname.tester</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
        <string>ABCDEFGH.*</string>
    </array>
</dict>
使用codesign之后,我意识到
<YourAppName>.app
中的实际二进制文件也包含一些XML,这与我的
embedded.mobileprovision
文件有很大不同:
<!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>ABCDEFGH.com.myappname.tester</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>ABCDEFGH.com.myappname.tester</string>
    </array>
</dict>
</plist>
我认为这是导致我们都遇到错误消息的原因。 (尽管此错误可能具有一些不同的根源,以及stackoverflow上的其他帖子建议)
The executable was signed with invalid entitlements.
The entitlements specified in your application\'s Code Signing Entitlements
file do not match those specified in your provisioning profile. (0xE8008016).
我的猜测是Xcode中存在一些错误,这些错误会阻止plist中的设置在您的方案中被更新,从而最终导致您的应用使用错误的配置文件进行签名。因此,通过删除xcuserdata文件夹,您将删除所有方案。因此,Xcode下次将使用正确的设置重新创建它们,您再次感到高兴。     ,基本上答案是每个人都说的一样模糊 确保您已添加\“ Entitlements.plist \”(新文件/代码签名/权利) 将\“ get-task-allow \”(布尔值关闭)添加到Entitlements.plist 将\“ aps-environment \” \“ production \”对添加到Entitlements.plist -这最后一步可能是不必要的,但这是我在工作之前所做的步骤之一 从iPhone / iPod删除旧的mobileprovision文件(在“设置” /“常规”中), 从XCode Organizer删除旧的mobileprovision文件 从iPhone / iPod删除应用 退出XCode 下载预配证书的新副本 使用文本编辑器检查证书中的“ aps-environment” /“ production”对 启动XCode 拖动到XCode Doc图标,添加新的mobileprovision文件 确保您已在目标信息中重新分配/分配了正确的证书:代码签名:代码签名身份 仔细检查“生成结果”以查看它是否使用了正确的配置文件并正确签名 冷静地重复这些步骤,直到它起作用为止,花了我大约五遍各种组合。我也从“开发”切换为“临时”,这显然不是必需的,但确实保证了新的mobileprovision文件。     ,使用XCode4并收到相同的\“找不到适用于应用程序的'aps-environment \'授权字符串\”,我必须执行以下操作: 从管理器的“库+设备”面板中删除旧的配置文件 通过开发人员门户网站启用的APN开发人员重新生成新的配置文件 确保新配置文件已添加到管理器中的“库+设备”面板中 手动从设备上删除我的应用(按住直到它抖动并按X) CMD + OPT + SHIFT + K(清洁生成文件夹)和CMD + SHIFT + K(清洁) 在项目>构建设置>代码签名下设置适当的配置文件 确保在“目标”>“摘要”下未选中“使用权利”     ,在\'Project \'-> \'Build Settings \'-> \'Code Signing \'下, 确保您选择了正确的配置文件(启用了推送的文件)。 这就是我要做的所有更改才能使其工作。     ,以上都不对我有用! 删除Xcode Organizer中的所有配置文件 删除钥匙串中的所有开发人员证书 删除iPhone设备中的所有配置文件 在iOS Provisioning Portal中,删除由Xcode自动创建的Development Provisioning Profile 通过分配正确的(证书/ AppID /设备)组合来创建新的配置文件 下载新的配置文件 将新的Provisioning Profile导入Xcode Organizer CMD +选项+ Shift + K CMD + Shift + K CMD + R 万岁:)     ,确保您通过配给配置文件以正确的方式使用该应用程序。 我的意思是,如果您已为应用程序启用了仅用于分发的推送通知,并且您试图通过使用XCode进行构建来使推送通知正常工作,则此操作将无效。 我遇到了这个问题,并为应用程序ID启用了针对开发的推送通知,然后使用开发设置配置文件,我不再遇到错误,并且正确的警报视图询问我是否要获取推送通知。     ,10.8 Xcode 4.4的解决方案是 打开the14文件 如果the15ѭ键的值为
NSFileProtectionComplete
, 删除它! 删除此键使我可以在设备上的Xcode中测试应用程序(这不会影响模拟)。     ,我有同样的问题。对我来说,解决方法是这样的: 从组织者中删除并重新加载了配置文件。 在项目设置->代码签名下选择了我命名的配置文件。它以某种方式想要使用blabla。*身份。 当您尝试运行启用APN的应用程序时,通配符配置文件([prefix]。*)将不起作用,您需要指定启用APN的配置文件。     ,几个小时后,我才知道了这一点,所以,除了朱利安(JulianB)所说的, 确保您有一个应用程序图标。您可能只有一个,但是当我们在图标版​​本之间时,我碰巧要添加推送。我尝试了各种不同的操作,最后只用了所有这些内容,因此它甚至可能不是证书或签名设置问题。 我也读取了损坏的图像文件,也可能是原因 我没有在我的entitlements.plist中添加/查看aps环境密钥 建造前清理所有目标     ,对我来说,它在将包标识符更改为随机值后起作用。确保确实出现签名错误(从组织者和设备中删除所有配置概要文件,然后执行clean17ѭ,
CMS + SHFT + K
,然后
CMD + R
),然后将分发包标识符改回适当的标识符。     ,我的解决方案是删除并再次创建开发配置文件。它被列为\“ Invalid \”-未过期,并且也续订失败(Xcode 4.3.2和iOS 5.1)     ,确保选择正确。供应配置文件。我发现我正在尝试使用Team Provisioning配置文件。(对于应用程序标识符:*)在列表的最下方,该应用程序是正确的。     ,我的问题是这个。 我创建了配置了推送通知的应用程序,并且在应用程序委托中,我使用以下命令注册了推送通知:
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
但是在发布应用程序之前,我必须在其他开发人员门户上创建新的配置文件。我在应用程序目标I设置了正确的配置中创建了新的App ID,用于开发和分发的新配置,下载了新的配置。我也改变了包标识符。 但是我遇到了这个错误。 问题是没有为推送通知配置新的AppId,而是调用了
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
正在创建错误。 配置推送通知时,错误不再显示。     ,我遇到了这个问题,场景是: 我已经设置了没有推送通知支持的应用ID。我正在使用Xcode 5.1 + iOS 7.1 后来,编辑了应用程序ID,以在开发和生产中添加推送通知。 为两者创建了APNs证书。 当您使用连接到Xcode的设备测试PN时,一切正常。当您将应用程序发布到生产环境时,就会出现此问题,您将不断获得:
\"Error Domain=NSCocoaErrorDomain Code=3000 \"no valid \'aps-environment\' entitlement string
 found for application\" UserInfo=0x15b200 {NSLocalizedDescription=no valid     
\'apsenvironment\' entitlement string found for application}\" error.
对我有用的解决方案是: 删除用于开发和分发的配置文件(Xcode和Developer门户)。 删除您的应用程序ID(开发者门户)。 使用推送通知支持开发和生产创建新的应用程序ID。 使用NEW App ID创建新的配置文件。 将它们安装在Xcode上。 测试开发和发行版本。     ,正确设置个人资料,这对我有用。希望获得帮助。     ,以我为例,经过数小时的证书修改后,解决此错误的方法很简单... 在项目配置的“ 23”选项卡中,我必须启用“ 24”标志才能生成环境文件。 macOS Sierra 10.12-Xcode 8.1     ,实际上,您的临时配置文件已从Apple开发人员站点中删除。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-