Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
iOS部署失败,授权无效-但授权有效吗?_Ios_Provisioning Profile_Ios Provisioning_Codesign - Fatal编程技术网

iOS部署失败,授权无效-但授权有效吗?

iOS部署失败,授权无效-但授权有效吗?,ios,provisioning-profile,ios-provisioning,codesign,Ios,Provisioning Profile,Ios Provisioning,Codesign,我的同事最近对我们的应用程序进行了一些更改,并启用了数据保护 然而,从那以后,我们就无法将该应用程序部署到任何真正的设备上。在应用程序验证时发生此错误: ApplicationVerificationFailed: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.YDQn6e/extracted/[appname].app

我的同事最近对我们的应用程序进行了一些更改,并启用了数据保护

然而,从那以后,我们就无法将该应用程序部署到任何真正的设备上。在应用程序验证时发生此错误:

ApplicationVerificationFailed: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.YDQn6e/extracted/[appname].app : 0xe8008016 (The executable was signed with invalid entitlements.) 
(由于保密协议的要求,我必须从任何日志中隐藏任何标识信息,因此,我将其替换为[]括号中的静态标签)

我已经使用苹果自己的指南,使用安全和代码设计工具检查了这些权利

codesign
输出以下信息:

<?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>get-task-allow</key>
    <false/>
    <key>application-identifier</key>
    <string>[teamId].[appname]</string>
    <key>com.apple.developer.team-identifier</key>
    <string>[teamId]</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>keychain-access-groups</key>
    <array>
        <string>[teamId].[appname]</string>
    </array>
</dict>
</plist>

这里到底出了什么问题?

如果不使用自动代码签名,更新iOS应用程序中的权限需要几个步骤。您需要更新应用程序的项目和用于构建应用程序的配置文件。如果两者不同步(或者更准确地说,如果您的应用程序正在尝试使用设置配置文件的允许权限不允许的权限),您将收到此错误

在更改授权时,您需要更新项目本身(如文档所示)以及资源调配配置文件中的授权。我怀疑这就是您迄今为止所做的全部工作

要更新您的资源调配配置文件中的权利,请登录Apple developer站点并转到“证书、标识符和配置文件”部分。选择左侧的应用程序ID,找到您尝试构建的应用程序的应用程序ID。单击编辑按钮并打开数据保护权限。完成此操作后,单击“完成”。应用程序ID现在已配置,但您需要重新生成配置文件以获取对应用程序ID的更改。请转到左侧的“配置文件”链接,找到应用程序ID的配置文件,单击“编辑”,然后单击底部的“生成”按钮。完成后,单击“下载”按钮以获取包含新e应用程序ID的附加项


此外,为了安全起见,我会在下载和安装新配置文件之前从Mac上删除所有旧的配置文件。这样,您可以确保它选择了正确的配置文件。您可以找到配置文件的位置。

如果您登录开发人员门户管理配置文件,是否e当前配置文件是否有效?启用数据保护可能需要重新生成配置文件并使用新的配置文件。但我希望旧配置文件仍然可用。是的,我必须重新生成配置文件,我甚至尝试创建一个全新的配置文件,该配置文件立即显示在XCode和Visu中al Studio(不确定是否相关,但这是一个Xamarin应用程序,不是本地应用程序,用C#而不是Swift/ObjC编写)。Ok:-)。我这样问是因为在你的问题中,
CreationDate
被设置为7月。是的,它是在7月创建的,但同时更新:)
<?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>AppIDName</key>
    <string>[appPublicName]</string>
    <key>ApplicationIdentifierPrefix</key>
    <array>
    <string>[teamId]</string>
    </array>
    <key>CreationDate</key>
    <date>2017-07-06T11:55:52Z</date>
    <key>Platform</key>
    <array>
        <string>iOS</string>
    </array>
    <key>DeveloperCertificates</key>
    <array>
        <data>[devCert]</data>
    </array>
    <key>Entitlements</key>
    <dict>
        <key>keychain-access-groups</key>
        <array>
            <string>[teamId].*</string>     
        </array>
        <key>get-task-allow</key>
        <false/>
        <key>application-identifier</key>
        <string>[teamId].[appname]</string>
        <key>com.apple.developer.associated-domains</key>
        <string>*</string>
        <key>com.apple.developer.team-identifier</key>
        <string>[teamId]</string>
        <key>aps-environment</key>
        <string>production</string>
    </dict>
    <key>ExpirationDate</key>
    <date>2018-04-25T13:18:41Z</date>
    <key>Name</key>
    <string>[appPublicName]</string>
    <key>ProvisionedDevices</key>
    <array>
        [provisioned devices]
        [The device I'm trying to deploy to is listed here]
    </array>
    <key>TeamIdentifier</key>
    <array>
        <string>[teamId]</string>
    </array>
    <key>TeamName</key>
    <string>[teamName]</string>
    <key>TimeToLive</key>
    <integer>293</integer>
    <key>UUID</key>
    <string>[id]</string>
    <key>Version</key>
    <integer>1</integer>
</dict>
</plist>