1

您好,我正在尝试解决我失败的 .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:

据我了解,错误消息是标准的 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您可以通过转到/iOS来查看 react-native cli 生成了哪些 iOS 文件,希望有人可以让我更接近其中一个缺少配置。

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

4

1 回答 1

3

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

bitrise Xcode Archive 步骤有两个单独的选项:

根据您的构建日志 ( https://app.bitrise.io/build/d66af72575da8e81 ),您只设置团队 ID,而不是强制团队 ID 选项。如果你同时设置这应该工作。

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

为此,您只需打开 Xcode 项目或工作区文件(在您的开源 repo 中,它将是 xcode 项目文件https://github.com/rpuls/dashboardwrapper/tree/master/ios/dashboardwrapper.xcodeproj),并在 Xcode .app 您在项目设置中设置团队,如下所示:

在此处输入图像描述

一旦你这样做了,你应该在 Xcode 中运行一个存档,以确保项目中没有其他配置问题,如果成功,只需退出 Xcode.app 并将项目文件更改提交+推送到 repo。

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

于 2019-04-03T08:49:17.850 回答