Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 没有有效的';aps环境&x27;找到应用程序的授权字符串_Objective C_Apple Push Notifications - Fatal编程技术网

Objective c 没有有效的';aps环境&x27;找到应用程序的授权字符串

Objective c 没有有效的';aps环境&x27;找到应用程序的授权字符串,objective-c,apple-push-notifications,Objective C,Apple Push Notifications,我正在尝试将我的应用程序配置为支持推送通知,但不断出现以下错误: 无法获取令牌,错误:错误域=NSCOCAERRORDOMAIN代码=3000“找不到应用程序的有效“aps环境”权限字符串”UserInfo=0x1f818fc0{NSLocalizedDescription=找不到应用程序的有效“aps环境”权限字符串} 我确实启用了我的应用程序来支持推送通知(目前仅用于开发) 在启用推送通知后,我确实创建了配置文件 我的包标识符与配置文件中显示的相同 在我的配置文件中有一个字符串:aps环境

我正在尝试将我的应用程序配置为支持推送通知,但不断出现以下错误: 无法获取令牌,错误:错误域=NSCOCAERRORDOMAIN代码=3000“找不到应用程序的有效“aps环境”权限字符串”UserInfo=0x1f818fc0{NSLocalizedDescription=找不到应用程序的有效“aps环境”权限字符串}

  • 我确实启用了我的应用程序来支持推送通知(目前仅用于开发)
  • 在启用推送通知后,我确实创建了配置文件
  • 我的包标识符与配置文件中显示的相同
  • 在我的配置文件中有一个字符串:aps环境
  • 我确保在“代码签名标识”部分下的project和target中,所有值都被选择为我的配置文件

还有什么想法吗?谢谢。

就我而言,我的资源调配配置文件中的内容:

security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision 
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>
security cms-D-i~/Downloads/spolskyDevelop.mobileprovision
...
应用程序标识符
P5GM95Q9VV.com.dca.spolsky
aps环境
发展
与实际构建的应用程序中的内容不同(您可以通过查看Xcode的“日志”选项卡找到它的构建位置)

codesign-d——权利-'/Users/drew/Library/Developer/Xcode/DerivedData/spolsky bdbtdfjeeywhqzccmpmceqvnhgtm/Build/Products/Debug iphoneos/spolsky ios.app'
应用程序标识符
Y2X6Z7Z2GR.com.dca.spolsky-ios
获取任务允许
密钥链访问组
Y2X6Z7Z2GR.com.dca.spolsky-ios
这是真的,即使代码签名标识下的“当前匹配”提示文本指示了正确的配置文件——奇怪吧?更奇怪的是,当我运行时,设备上安装了正确的配置文件,(设置->常规->配置文件),这让我相信配置文件是正确的——但当应用程序实际启动时,它又回到了通配符ID

线索是这两个命令的输出不同:

Y2X6Z7Z2GR.com.dca.spolsky ios与P5GM95Q9VV.com.dca.spolsky

当我使粗体部分匹配时,斜体部分自动更改为匹配。此外,安全性和协同设计的输出是一致的,没有更多的错误


我猜XCode在我的非通配符ID上使用了通配符样式的匹配(“spolsky”毕竟非常接近“spolsky ios”),这就解释了“当前匹配”的输出。但构建链中的某些内容对此要求更严格,因此在构建过程中会返回到实际的通配符ID。

我遇到了此错误,没有创建新的配置文件;创建了一个新的,然后必须重新启动xCode,但现在可以工作了

问题是由于当前设置配置文件不包含APNS信息,因为设置配置文件是在创建APNS证书之前创建的


因此,要解决此问题,请创建一个新的配置文件并在Xcode中选择配置文件将清除错误。

请注意,捆绑包标识符必须以区分大小写的方式匹配配置文件。我有一些像com.FirstLast.appname的东西,而它应该是com.FirstLast.appname。嗯,这让我忙了好一阵子。

产品->清洁帮我做的。希望它能为其他人做到这一点。

我在一个可能不常见的用例中遇到了这个问题。我正在使用Xcode 6和iOS 8。我正在创建一系列全新的应用程序项目,并尝试重新使用相同的bundle ID,这样就不需要再次进行所有的门户端设置。这也只是用于沙箱测试

我会发现,虽然第一个应用的设置和注册工作正常,但如果我从设备中删除了该应用,为第二个应用设置了相同的捆绑ID,然后尝试向该应用注册PNs,我会收到此错误

我的解决办法是:

  • 从设备中删除关联的配置文件
  • 从Xcode中删除关联的配置文件
  • 闭合Xcode
  • 双击我下载的
    .mobileprovision
    文件,将其安装回Xcode
  • 打开项目并部署它

  • 无论以前的状态如何,这种方法似乎都不适用,我可以使用新的应用程序/相同的捆绑包ID注册PNs。

    新的配置文件适合我。如果您正在开发中,请确保使用开发人员配置文件(不要使用临时配置文件)。在那之后一切都很好,不知道为什么旧的那台停止正常工作

    在推送通知已经在我的设备上运行之后,我遇到了同样的问题。似乎Xcode缓存了不正确的内容,因此刷新它修复了我的问题:

  • Xcode->Preferences->Accounts
  • 查看开发人员帐户的详细信息
  • 只需单击“刷新”几次配置文件。每次刷新我都能看到这些变化。保持清新,直到它们停止变化

  • 我通过启用推送通知功能修复了这个问题

    选择项目>目标>功能>打开推送通知


    如果此问题在升级到Xcode 8后突然发生,您可能会在“功能”屏幕中发现一条警告,允许您自动修复此问题:


    选择项目>目标>功能>打开推送通知

    对于在ios 10中遇到此错误的用户,您可以尝试以下步骤:

    1.清理项目。
    2.检查目标->功能->推送通知。如果关闭,则打开


    以上步骤帮助我摆脱了这个问题。希望它能对某人有所帮助。

    对这个问题没有见解吗?看起来很多人都会遇到这样的情况。。
    codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'
    <dict>
        <key>application-identifier</key>
        <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
        <key>get-task-allow</key>
        <true/>
        <key>keychain-access-groups</key>
        <array>
            <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
        </array>
    </dict>