Xcode存档构建失败。签名需要开发团队

时间:2019-04-01 14:59:58

标签: ios xcode react-native bitrise

您好,我正在尝试对失败的.ipa版本进行故障排除。我不是没有Mac OS系统,所以我没有本地可用的xcode,也没有任何“项目编辑器”。我的构建在bitrise cloudbuild服务器上处理。该项目由react-native cli react-native init dashboardwrapper生成(可以在底部找到github链接)

我得到的以下错误是:error: Signing for "dashboardwrapper" requires a development team. Select a development team in the project editor. (in target 'dashboardwrapper') 在bitrise日志中,它看起来确实已经正确设置了团队ID:

ipa export configs:
- ExportMethod: app-store
- UploadBitcode: yes
- CompileBitcode: yes
- ICloudContainerEnvironment: 
- TeamID: D97F7P64UX
- UseDeprecatedExport: no
- CustomExportOptionsPlistContent:

据我所知,错误msg是标准的Xcode构建错误(不是特定于位上升的错误)。我可以看到有些人通过取消选中并重新检查Xcode编辑器中的某些设置来解决了这一问题。由于我在Windows上,因此没有此编辑器,但是也许可以在没有Xcode UI的情况下手动配置它?

我确实有一个名为project.pbxproj的文件,其中包含类似于构建配置的文件。我发现的一件事是:

/* Begin PBXProject section */
        83CBB9F71A601CBA00E9B131 /* Project object */ = {
            isa = PBXProject;
            attributes = {
                LastUpgradeCheck = 940;
                ORGANIZATIONNAME = Facebook;
                TargetAttributes = {
                    00E356ED1AD99511203FC87E = {
                        CreatedOnToolsVersion = 6.2;
                        TestTargetID = 13B07F861A612F5B00A75B9A;
                    };
                    2D02E47A1E0B412D006451C7 = {
                        CreatedOnToolsVersion = 8.2.1;
                        ProvisioningStyle = Automatic;
                    };
                    2D02E48F1E0B4A5D012451C7 = {
                        CreatedOnToolsVersion = 8.2.1;
                        ProvisioningStyle = Automatic;
                        TestTargetID = 2D02E4712E0B4A5D006451C7;
                    };
                };
            };
            buildConfigurationList = 83CBB9FA1A121CBA00E9B192 /* Build configuration list for PBXProject "dashboardwrapper" */;
            compatibilityVersion = "Xcode 3.2";
            developmentRegion = English;
            hasScannedForEncodings = 0;
            knownRegions = (
                en,
                Base,
            );
            mainGroup = 83CBB9F61A601CBA00E9B112;
            productRefGroup = 83CBBA001A601CBA00E9B122 /* Products */;
            projectDirPath = "";
            projectReferences = (
                {
                    ProductGroup = 146834001AC3E56700842450 /* Products */;
                    ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
                }, ... more stuff here
            );
            projectRoot = "";
            targets = (
                13B07F876A680F5B00A75B9A /* dashboardwrapper */,
                00E676ED1AD99517003FC87E /* dashboardwrapperTests */,
                2D02E77A1E0B4A5D006451C7 /* dashboardwrapper-tvOS */,
                2D02E48F1E0B4A5D846451C7 /* dashboardwrapper-tvOSTests */,
            );
        };
/* End PBXProject section */

我不确定100%是否需要在此处进行配置,但确实如此,而且我不确定最终该如何工作才能正常工作。

更新:我在公共github仓库中创建了一个相同的项目,就在这里:https://github.com/rpuls/dashboardwrapper,您可以通过以下方式查看react-native cli生成了哪些iOS文件: strong> / iOS ,希望有人能让我更接近其中缺少配置的地方。

我相信我也设法公开了bitrise构建管道:https://app.bitrise.io/app/0147b9ccaf0fedf6#/builds这里提供了完整的构建日志

1 个答案:

答案 0 :(得分:1)

因此,当您执行Xcode存档+导出时,事实证明Xcode具有两个不同的Team ID选项(bitrise Xcode Archive步骤执行的操作是先执行存档,然后对其进行导出以生成IPA,与您所做的相同) Xcode.app,首先您要做一个存档,它将打开管理器,然后从中进行导出以生成.ipa)。

bitrise Xcode存档步骤具有两个单独的选项:

根据您的构建日志(https://app.bitrise.io/build/d66af72575da8e81),您只能设置Team ID,而不能设置Force Team ID选项。如果两者都设置,则应该起作用。

这表示,通常最好在Xcode项目中直接设置Team(ID)(如果将其存储在存储库中),这样,与Xcode项目一起使用的任何工具都可以在没有任何特殊参数的情况下使用。

为此,您只需打开Xcode项目或工作区文件(在您的开放源代码仓库中,它就是xcode项目文件https://github.com/rpuls/dashboardwrapper/tree/master/ios/dashboardwrapper.xcodeproj),然后在Xcode.app中,将Team设置为如下项目设置:< / p>

enter image description here

执行完此操作后,应在Xcode中运行存档,以确保项目中没有其他配置问题,如果成功,则只需退出Xcode.app并提交并将项目文件更改推入存储库中即可。

使用此设置后,所有工具均应开箱即用,例如https://github.com/bitrise-io/codesigndoc会在bitrise.io UI上提示,我们建议使用该工具为该项目(基于Xcode项目)自动收集所有必需的代码签名文件。