菜鸟教程小白 发表于 2022-12-12 09:54:54

ios - Xcode 4.6 自动授权不起作用 - "no valid aps-environment"


                                            <p><p>我遇到了著名的错误:<br/>
<em>获取 token 失败,错误:错误域 = NSCocoaErrorDomain 代码 = 3000“找不到应用程序的有效 'aps-environment' 授权字符串” UserInfo=0x413be0 {NSLocalizedDescription=找不到应用程序的有效 'aps-environment' 授权字符串} </em></p>

<p><strong>我可以通过编辑以下文件来修复它</strong>:</p>

<pre><code>/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist
</code></pre>

<p>然后像这样手动添加 aps-environment 键:</p>

<pre><code>&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt;
&lt;!DOCTYPE plist PUBLIC &#34;-//Apple//DTD PLIST 1.0//EN&#34; &#34;http://www.apple.com/DTDs/PropertyList-1.0.dtd&#34;&gt;
&lt;plist version=&#34;1.0&#34;&gt;
&lt;dict&gt;
    &lt;key&gt;application-identifier&lt;/key&gt;
    &lt;string&gt;$(AppIdentifierPrefix)$(CFBundleIdentifier)&lt;/string&gt;
    &lt;key&gt;aps-environment&lt;/key&gt;
    &lt;string&gt;development&lt;/string&gt;
    &lt;key&gt;keychain-access-groups&lt;/key&gt;
    &lt;array&gt;
      &lt;string&gt;$(AppIdentifierPrefix)$(CFBundleIdentifier)&lt;/string&gt;
    &lt;/array&gt;
&lt;/dict&gt;
&lt;/plist&gt;
</code></pre>

<p>然后,Xcode 正在生成正确的 Xcent 文件,其中包含 aps-environment 键:</p>

<pre><code>/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent
</code></pre>

<p>在 iPhone 上运行 App 可以生成设备 token 进行推送。<br/>
这是我发现解决问题的唯一方法。<br/>
(如果遇到此错误,您可以使用此信息进行自己的故障排除)</p>

<p>现在,我在另一台笔记本电脑上运行相同的项目(与 git 同步),<br/>
使用相同的 Xcode 版本 4.6。<br/>
此问题在该笔记本电脑上<strong>不会发生</strong>。<br/>
两台机器上的项目设置/配置文件等都是 100% 相同的。<br/>
(请相信我这一点)</p>

<p>有人在 Xcode 4.6 中遇到过这样的问题吗?<br/>
我可能也应该在 Apple 的支持下开一张票。</p>

<p>只是想知道是否有其他更优雅的解决方案可用。</p>

<h2>更新:</h2>

<p>上述修复可能仅适用于开发阶段,但不适用于发布。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>覆盖默认 Entitlements.plist 的更优雅的解决方案是复制您已编辑的默认 Entitlements.plist,并将其放入您的项目中。</p>

<p>然后,为您遇到问题的任何目标build设置代码签名权利(在这种情况下,我已将其设置为调试)。</p>

<p> <img src="/image/mph9t.png" alt="http://i.stack.imgur.com/mph9t.png"/> </p>

<p>这应该使用这个 plist 文件进行调试构建(即当简单地按下运行时),您的设备将注册到 APNs 开发服务器</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Xcode 4.6 自动授权不起作用 -&#34;no valid aps-environment&#34;,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15687887/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15687887/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Xcode 4.6 自动授权不起作用 - &#34;no valid aps-environment&#34;