【问题标题】:iOS - can't link with a main executable file (release)?iOS - 无法与主可执行文件(发布)链接?
【发布时间】:2020-02-18 23:30:21
【问题描述】:

我最近将 XCode 更新到 V 11.1,自从更新后,由于某种原因,当我在发布模式下运行我的应用程序时,我抛出了以下错误:

ld: 无法与主可执行文件链接 '/Users/me/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Products/Release-iphoneos/myapp.app/myapp' 对于架构 armv7 clang:错误:链接器命令失败并退出 代码 1(使用 -v 查看调用)

我完全不知道如何解决这个问题 - 如果没有它,我将无法在发布模式下运行我的应用程序(是的,我正在使用分发配置文件)。帮助将不胜感激。我浏览了其他一些答案,但似乎没有一个可以解决这个问题。

当我导航到该文件路径时,“myapp”只是一个带有圆圈和斜线的图标(这不是一个好兆头)。即使在我清理构建文件夹之后也会发生同样的事情。当我尝试在发布模式下重建时,构建失败并再次抛出上述问题。

查看完整错误:

Ld /Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Intermediates.noindex/myapp.build/Release-iphoneos/myappTests.build/Objects-normal/armv7/Binary/myappTests 正常 armv7(在项目“myapp”的目标“myappTests”中) cd /用户/管理员/桌面/myapp /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target armv7-apple-ios8.4 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk -L/Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Products/Release-iphoneos -F/Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Products/Release-iphoneos -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk/Developer/Library/Frameworks -F/Users/admin/Desktop/myapp/Pods/FirebaseAnalytics/Frameworks -F/Users/admin/Desktop/myapp/Pods/GoogleAppMeasurement/Frameworks -F/Users/admin/Desktop/myapp/Pods/GoogleMaps/Base/Frameworks -F/Users/admin/Desktop/myapp/Pods/GoogleMaps/Maps/Frameworks -F/Users/admin/Desktop/myapp/Pods/GooglePlaces/Frameworks -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS .平台/开发者/usr/lib -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -filelist /Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Intermediates.noindex/myapp.build/Release-iphoneos/myappTests.build/Objects-normal/armv7/myappTests.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -bundle_loader /Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Products/Release-iphoneos/myapp .app/myapp -Xlinker -object_path_lto -Xlinker /Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Intermediates.noindex/myapp.build/Release-iphoneos/myappTests.build/Objects-normal/armv7/myappTests_lto.o -fobjc-arc -fobjc-link-runtime -lc++ -licucore -lsqlite3 -lz -framework Accelerate -framework CFNetwork -framework CoreData -framework CoreGraphics -framework CoreImage -framework CoreLocation -framework CoreTelephony -framework CoreText -framework Foundation -framework GLKit -framework ImageIO -framework OpenGLES -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -framework UIKit -framework XCTest -lPods-myappTests -Xlinker -dependency_info -Xlinker /Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Intermediates.noindex/myapp.build/Release-iphoneos/myappTests.build/Objects-normal/armv7 /myappTests_dependency_info.dat -o /Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Intermediates.noindex/myapp.build/Release-iphoneos/myappTests.build/Objects-normal/armv7/Binary/myappTests

ld: 无法与主可执行文件链接 '/Users/admin/Library/Developer/Xcode/DerivedData/myapp-btokobigvkxtgwgcjrapocxlexno/Build/Products/Release-iphoneos/myapp.app/myapp' 对于架构 armv7 clang:错误:链接器命令失败并退出 代码 1(使用 -v 查看调用)

【问题讨论】:

  • 发布完整的链接器命令调用和错误消息(在构建选项卡中单击右侧的带线图标以展开构建命令)。
  • @trojanfoe 查看上面的完整错误消息
  • 实际上,我首先要做的是更改捆绑包 ID,看看是否可以修复它。如果是这样,请尝试将其更改回来。 :)
  • 堆栈链接答案没有为我解决(我已经选中了已接受答案的提及框) - 尝试更改捆绑 ID。没有骰子:/ @matt

标签: ios xcode


【解决方案1】:

终于在我的案例中找到了解决方法。希望这个答案对其他人有帮助。

产品 > 方案 > 编辑方案,然后点击“构建”类别 左边。

在您的 appTests 目标下,取消选中“运行”。

问题解决了。

【讨论】:

    【解决方案2】:

    你能说你在哪里找到斜线图标 - 这可能是 Xcode 试图查看错误路径的标志。您可以通过在 Project Navigator 中右键单击项目来轻松验证它,显示在 Finder 中。
    我建议将部署目标更改为 8.4。
    一个解决方案可能是去Product > Scheme > Edit Scheme,选择Build并取消选中'Run'

    【讨论】:

    • 非常投机的答案。
    • 我已经勾选了“允许测试主机应用程序 API”:/
    【解决方案3】:

    我收到了 ld: can't link with a main executable file 错误,因为我的应用目标和测试应用之间的 Build Settings 不同,主要是 iOS 部署目标。

    确保这两个相同才能使构建成功。

    【讨论】:

    • 具体是什么设置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多