当前位置:  开发笔记 > IOS > 正文

Xcode中的多个目标:"无法启动模拟应用程序:未知错误."

如何解决《Xcode中的多个目标:"无法启动模拟应用程序:未知错误."》经验,为你挑选了1个好方法。

我正在尝试在Xcode中构建多个目标,以简化创建应用程序的"精简版"和"专业版"的过程.从理论上讲,这很好,我可以传递定义,GCC_PREPROCESSOR_DEFINITIONS以便在我的代码中使用.但是,由于尝试在模拟器中启动第二个目标时出错,我实际上遇到了问题:Failed to launch simulated application: Unknown error.

这是我用来创建额外目标的简单过程:

    将#ifdef MYAPP_PRO添加到源文件以根据应用程序的pro/lite版本修改行为(并验证应用程序是否按预期工作)

    从菜单中选择Project> New Target...,然后选择"Cocoa Touch Application"(名为MyAppPro")

    编辑新的目标设置; 添加GCC_PREPROCESSOR_DEFINITIONS用户定义的设置并将值设置为"MYAPP_PRO"(无引号)

    将活动目标设置为"MyAppPro"; 建立和运行.

    Failed to launch simulated application: Unknown error.

    将所有设置从Info.plist复制到MyAppPro-Info.plist,然后重试

    Failed to launch simulated application: Unknown error.

构建完成得很好,但我无法在模拟器中运行.

编辑.xcodeproj目录中的project.pbxproj,我注意到两个目标定义的构建设置之间存在一些关键差异.我尝试手动编辑文件,但一定做错了,因为我之后无法在Xcode中加载它.

原始目标的"调试"构建设置:

        buildSettings = {
            ALWAYS_SEARCH_USER_PATHS = YES;
            ARCHS = "$(ARCHS_STANDARD_32_BIT)";
            "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
            GCC_C_LANGUAGE_STANDARD = c99;
            GCC_WARN_ABOUT_RETURN_TYPE = YES;
            GCC_WARN_UNUSED_VARIABLE = YES;
            ONLY_ACTIVE_ARCH = YES;
            PREBINDING = NO;
            SDKROOT = iphoneos2.2.1;
        };

新的MyAppPro目标的"Debug"构建设置:

        buildSettings = {
            ALWAYS_SEARCH_USER_PATHS = NO;
            CODE_SIGN_IDENTITY = "iPhone Developer";
            COPY_PHASE_STRIP = NO;
            GCC_DYNAMIC_NO_PIC = NO;
            GCC_OPTIMIZATION_LEVEL = 0;
            GCC_PRECOMPILE_PREFIX_HEADER = YES;
            GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/UIKit.framework/Headers/UIKit.h";
            INFOPLIST_FILE = "MyAppPro-Info.plist";
            INSTALL_PATH = "$(HOME)/Applications";
            OTHER_LDFLAGS = (
                "-framework",
                Foundation,
                "-framework",
                UIKit,
            );
            PREBINDING = NO;
            PRODUCT_NAME = MyAppPro;
            SDKROOT = iphoneos2.2.1;
        };

cdespinosa.. 5

您没有说明您是否真的将源文件添加到目标.新目标(与新项目不同)没有源文件模板; 你必须自己添加它们.所以模拟器可能会告诉你"你已经成功建造,但没有什么可以运行的."



1> cdespinosa..:

您没有说明您是否真的将源文件添加到目标.新目标(与新项目不同)没有源文件模板; 你必须自己添加它们.所以模拟器可能会告诉你"你已经成功建造,但没有什么可以运行的."


你是对的.我不确定如何将源文件添加到目标,但复制现有目标并调整名称/设置工作完美.谢谢!
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有