【问题标题】:CorePlot: how to run on device? (works OK on simulator)CorePlot:如何在设备上运行? (在模拟器上工作正常)
【发布时间】:2023-03-13 20:55:01
【问题描述】:

我的应用使用 CorePlot 并在模拟器上运行良好
(它从以下位置访问 libCorePlot-CocoaTouch.a:
/Users/myName/core-plot/build/Debug-iphonesimulator )。

要在设备上运行,xcode 需要 libCorePlot-CocoaTouch.a 在:
/Users/myName/core-plot/build/Debug-iphoneos
但是那个文件丢失了,所以 xcode 给出了错误:
'/Users/Giovanni/core-plot/build/Debug-iphoneos/libCorePlot-CocoaTouch.a: 没有这样的文件或目录'

我尝试通过以下方式生成一个: CorePlot-CocoaTouch.proj > 将 Xcode 设置为在“设备”上构建 >“构建并运行” 但“构建并运行”显示为灰色。
复制模拟器版本显然不行。

有什么想法吗?

【问题讨论】:

    标签: iphone iphone-sdk-3.0 ios4 ios-simulator core-plot


    【解决方案1】:

    考虑将 CorePlot-CocoaTouch.xcodeproj 添加为子项目,然后添加 libCorePlot-CocoaTouch 作为依赖项。

    【讨论】:

    • 谢谢,但 CorePlot-CocoaTouch.xcodeproj 已经是应用程序的子项目,而 libCorePlot-CocoaTouch 已经是依赖项(在 Targets>MyApp>getInfo>LinkedLibraries 中)。这就是它在模拟器中工作的原因。错误消息表明问题是 /Users/myName/core-plot/build/Debug-iphoneos 中缺少文件。 (但此文件存在于 /Debug-iphonesimulator 中,因此可以在模拟器中使用)。
    • 如果你核对构建目录并重建,它会输出什么文件?我猜它会输出一些名为 libCorePlot-CocoaTouch.a 的东西,但会将其粘贴在错误的目录中。总的来说,我发现子项目通常会出错(如果你使用 xcodebuild 构建,它无法设置正确的 SDK)。
    • 不,即使在 nuking myApp/build 并执行 myApp>BuildAndRun 之后,该文件也不会构建(在 myApp/build 中)。我猜它不会构建,因为它是作为依赖项链接的。该文件仅在 /Users/myName/core-plot/build/Debug-iphonesimulator 中找到(旧日期为 11 月 7 日,因此如果在模拟器中运行也不会构建)。
    • 解决方案:问题是 CorePlot-CocoaTouch.xcodeproj 也必须添加为 Targets>MyApp>getInfo>DIRECT 依赖项(除了作为子项目和 libCorePlot-CocoaTouch 被添加为 Targets>MyApp >getInfo>LinkedLibraries)。谢谢。
    【解决方案2】:

    尝试打开 Core Plot 项目本身并首先构建框架。您应该构建(而不是“构建并运行”)CorePlot-CocoaTouch 目标。对 SDK {simulator, device} 和配置 {debug, release} 的每个组合执行此操作(总共四个构建)。这将创建您需要的 .a 文件。

    Core Plot 构建完成后,返回您的项目并构建它。它现在应该可以正确链接和运行了。

    【讨论】:

      【解决方案3】:

      如果你不想使用CorePlot-CocoaTouch.xcodeproj导入方法,请查看我的答案(不需要导入整个项目,只需导入CorePlotHeader文件夹和libCorePlot-CocoaTouch.a库文件)@ 987654321@

      最终,您可能需要通过右键单击 Products 文件夹中的 MyApp.app 文件并将新的 CorePlot_1.4 .a 文件复制并粘贴到 Debug-iphoneos 文件夹中来删除旧库...清理,构建,它应该在 iOS 7 设备上运行。

      【讨论】:

        【解决方案4】:

        解决方案:问题是 CorePlot-CocoaTouch.xcodeproj 还必须添加为 Targets>MyApp>getInfo>DIRECT 依赖项(除了作为子项目和 libCorePlot-CocoaTouch 被添加为 Targets>MyApp>getInfo>LinkedLibraries) .谢谢

        【讨论】:

          猜你喜欢
          • 2019-05-07
          • 2023-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-14
          相关资源
          最近更新 更多