【问题标题】:xcode is creating generic xcode archive instead of iOS App Archivexcode 正在创建通用 xcode 存档而不是 iOS App Archive
【发布时间】:2013-12-20 13:56:27
【问题描述】:

我是 iPhone 开发的初学者,我尝试使用我的个人资料和有效证书创建 ipa,但 xcode 正在创建通用 xcode 存档文件而不是 iOS 应用存档,因为在我的代码中有两个 .xcodeproj在那里。

stack overflow answer 之一我按照以下步骤操作:

  1. 对于主要项目目标来说,跳过安装是 NO
  2. 框架(子项目)目标的跳过安装是 YES
  3. 子项目需要在 Project not Public 中有 Copy Headers
  4. Deployment 下的安装目录有效(例如 /Applications)

但我仍然没有得到解决方案。

【问题讨论】:

  • 你想建立一个ipa吗?
  • 请添加您获得这些步骤的帖子的 URL。
  • kp412所指的SO题URL为:stackoverflow.com/questions/10715211/…
  • “子项目需要在 Project not Public 中有 Copy Headers” - 它对我有用!谢谢

标签: ios xcode


【解决方案1】:

如果您在 Project>Targets>Build Phases>target dependencies 中有任何 .xcodeproj 文件,请将其从那里删除,然后构建您的 ipa。 这个对我有用。 干杯

【讨论】:

  • 感谢 somasekhar,通过从目标依赖项中删除本地 xcodeproject,我可以创建 ipa。 :)
  • 这对我不起作用。我不能只删除 Apple Watch 目标,因为这是必需的。
  • 我在构建设置中找不到目标依赖项@somasekhar
  • 为我工作。谢谢:)
  • 我在目标依赖项下有静态库而不是 xcodeproj 文件。我仍然面临这个问题,还有什么需要检查的吗?
【解决方案2】:

在 XCode 5 中,如果您在管理方案中有多个目标和错误的复选标记,则会发生相同的错误。然后 Xcode 将 2 个二进制文件放入 1 个通用存档中。这不会影响签入的文件,例如混蛋!

【讨论】:

  • 然后呢?知道确切的解决方法是什么吗,totoro-san?
  • 打开“管理方案”并取消选中相应的东西;-)
  • 我依稀记得是在Edit a Scheme,然后是Build,然后是Build,并且有一个标题为Archive 的列带有复选标记。这允许您将多个目标归档为一个。这个设计让我想起了微软。
  • 谢谢,我很怀疑,但似乎还不足以解决我的问题。我试图建立 facebook 的 AsyncDisplayKit,但我改用 cocoapods。
【解决方案3】:

我同意@cat 的回复。

我错误地在管理方案下有两个构建目标,这对我来说是个问题。 sip 已经没有了。

如果 Skip 已设置为 no,选中此步骤可以帮助您进行更多调试。

【讨论】:

    【解决方案4】:

    在我的情况下,建议的解决方案都没有工作,因为项目文件很好。我只需要删除 Derived Data 文件夹中的所有内容,然后一切恢复正常。您可以从 Preferences > Locations 中找到它。

    我认为这是由于新的 Xcode 6。我之前使用的是测试版。

    【讨论】:

    • 在我的情况下,问题从清理派生数据开始))
    • 根据我的经验,这意味着它首先被破坏了。
    【解决方案5】:

    在我的情况下,问题是嵌入式静态库之一的“跳过安装”设置为“否”。 也有用的链接:https://developer.apple.com/library/mac/technotes/tn2215/_index.html

    【讨论】:

    • 非常好的建议。是的,这份文件是必读的!
    • 谢谢你,我的也是。我正在为我的 mac 应用程序嵌入一个启动器,并认为我知道所有步骤并且没有再看教程。
    • 当我有一个 Cocoa 应用程序,其中也有一个独立的可执行项目时,这救了我。必须在可执行文件上设置Skip Install: Yes,否则 Xcode 将无法正确构建存档。非常感谢您
    • 那是我的问题。我的子项目目标之一是“skip install = NO”。将其更改为 YES 解决了问题。
    • 请记住,您可以从一个子项目链接多个静态库。确保每个子项目的所有目标都将“跳过安装”设置为“否”。
    【解决方案6】:

    我也有这个问题。我在这里尝试了所有解决方案。

    (这是一个 xcode-workspace 中的项目)

    终于解决了......我清理了Derived data文件夹中的所有内容,关闭工作区,然后关闭Xcode,打开单个目标项目

    然后,我做存档,它会生成一个 iOS 应用存档。

    我希望我能帮助别人。

    【讨论】:

    • 单目标项目是什么意思?
    【解决方案7】:

    我的情况是我在项目中有 2 个目标,一旦我将其中一个目标设置为 Skip Install = "YES",问题就解决了

    【讨论】:

    • 对我来说这就是计划。转到管理方案,选择您要构建的方案,单击编辑并选择左侧选项卡“构建”。在那里,我有了我所有的目标......在只留下一个有效的目标之后。
    • 那是我的问题。我的子项目目标之一是“skip install = NO”。将其更改为 YES 解决了问题。
    【解决方案8】:

    我不得不做的事情:

    1. 转到产品 -> 方案 -> 管理: 在这里确保只选择一个方案,那就是你当前的方案

    2. 转到产品 -> 方案 -> 编辑: 有这样的选项:确保只选择一个存档。

    【讨论】:

    • 添加了这个答案,以便将其包含在上面给出的清单中。在 Xcode 中解决此类问题真的很痛苦。
    【解决方案9】:

    我在使用 Cocoapods 0.38.1 时遇到了问题,在升级了一些项目后,它为我生成了 xCode Generic Archive... 在完成所有步骤之后,再次创建 ipa 的唯一方法是将 cocoapods 下载到 0.37.1 并执行以下操作此链接上的步骤:http://9elements.com/io/index.php/cocoapods-best-practices/

    希望对你有帮助!

    【讨论】:

    • 这也是我的原因。我更新到0.38.2,问题解决了!
    • 0.38.2 可以正常工作,但 0.39.b4 也会生成通用存档
    • 0.38.2 没有与我合作,当更新到 0.39.0 时它可以工作
    【解决方案10】:

    我的情况不是“跳过安装”,也不是 cocoapods 问题。 看来我最终没有使用的第 3 方框架之一是造成这种情况的原因。解决方案只是将其删除。

    为了跟踪这个问题,我右键单击 Xcode 管理器中的通用存档文件并选择“在查找器中显示”-> 右键单击​​存档文件-> 选择显示包内容-> 产品-> 应用程序,然后在此文件夹中您可以看到除了 {project-name}.app 文件之外还有哪些其他文件。在我的情况下,有一个文件带有我没有使用的框架的前缀,这导致它从项目的工作区中删除。

    【讨论】:

    • 对我来说,关键是查看包内容并在 Products 目录中查看随机标题的另一条路径。这向我展示了哪个 3rd 方库负责。
    【解决方案11】:

    这些都不适合我,在我的情况下是 cocoapods,必须卸载所有并安装发布版本

    sudo gem uninstall cocoapods
    sudo gem uninstall cocoapods-core
    sudo gem uninstall cocoapods-downloader
    sudo gem install cocoapods
    

    【讨论】:

      【解决方案12】:

      我遇到的问题是CocoaPods version 0.38.2.,将CocoaPods升级到更高版本(0.39.0.beta.4)后一切正常。

      $gem install cocoapods --pre
      

      然后:

      $pod update
      

      【讨论】:

      • 谢谢!这个错误再次让我,升级了 OS X 并且不得不重新安装旧版本的 CocoaPods。 rant 在这一点上 Cocoapods 花费的时间比它节省的时间要多。下载我拥有的 4 个 pod 的源代码并手动添加并偶尔更新它有多难?可可豆荚的各种错误将其变成了浪费时间/咆哮
      • 安装库并不难(通常包括项目所需的类,就可以了),缺点是在升级之前您可能会在库中出现错误。跨度>
      【解决方案13】:

      我的问题是在安装 pod 后开始的,在更新 cocoapods(从 0.38 到 0.39)并再次运行 pod install 后问题就消失了。

      【讨论】:

        【解决方案14】:

        我知道回复晚了,但是我通过以下步骤得到了解决方案:

        1. 转到项目导航器
        2. 选择目标
        3. 转到构建阶段
        4. 检查目标依赖并将其删除
        5. 清理和构建代码
        6. 尝试存档,这次您将获得 iOS 应用存档。

        KP 祝你好运与欢呼:)

        【讨论】:

        • 为我工作。谢谢:)
        【解决方案15】:

        其中一种情况是您必须在构建阶段/标题中将标题(如果有)从公共移动到项目。

        https://developer.apple.com/library/content/technotes/tn2215/_index.html#//apple_ref/doc/uid/DTS40011221-CH1-PROJ

        【讨论】:

        • 让我开心!沙波!
        • 这样做之后,我开始收到很多编译错误,例如找不到头文件,然后我手动添加了头文件搜索路径并解决了编译错误,但现在出现了很多链接错误,例如 clang: error: no such文件或目录:'/Users/user1/Library/Developer/Xcode/DerivedData/myapp-evvogrznnrakrpdflrddqvxxhzuh/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/BuildProductsPath/Release-iphoneos/libRCTFBSDK.a'
        【解决方案16】:

        确保您在“项目设置”>“常规”下设置了“构建”字段。

        【讨论】:

        • 什么意思?
        【解决方案17】:

        这对我有帮助(2018 年)

        • gem install cocoapods --pre
        • pod 1.5.0.beta.1 update查看
        • shared 在方案设置中。

        【讨论】:

          【解决方案18】:

          在尝试了所有其他建议(检查构建是否为单目标、清除 Derived Data 文件夹、关闭并重新打开 Xcode 等)后,我发现每次重新启动系统都能解决此问题。我还发现重启解决了过去 Xcode 的其他一些奇怪问题,例如它提示找不到某些系统框架头文件。

          我在上面发现的唯一一个允许我在不重新启动的情况下构建正确存档的建议是关闭 Xcode 工作区并从工作区打开单个 Xcode 项目,然后为该项目构建存档。然而,重启是我发现恢复 Xcode 的正常行为以能够从多项目工作区中构建正确存档的唯一选择。

          我发现重启可以解决运行 OS X 10.11.6 和 Xcode 8.2.1 的系统上的 Xcode 问题 - 希望重启也能解决新系统上的问题,并帮助其他可能正在处理这个奇怪问题的人。

          【讨论】:

            【解决方案19】:

            原来我的方案中有两个应用目标。我在构建时看到,产品文件夹最终包含两个应用程序。同一个捆绑包中有两个版本的应用程序。遵循@Got99Errors 的检查包内容的建议。我从构建方案中删除了第二个目标,问题得到了解决。

            【讨论】:

              【解决方案20】:

              在我的情况下,问题是在一个计划中。我有两个目标标记为“存档”。这发生在我复制我的一个目标时。

              Scheme -> Build -> Targets 中,我只是删除了我不想要的这个,在该存档位于“iOS 应用程序”而不是“其他项目”部分之后。

              【讨论】:

                【解决方案21】:

                我使用的是 cocoa-pods,当你去管理方案时,Container 被设置为 xcodeproj 而不是 xcworkspace。当设置为 xcworkspace 它工作。

                【讨论】:

                  【解决方案22】:

                  在 XCode 11 中,就我而言,以上都不是。我有一些 HTML 文件是我的目标(“目标成员”)的一部分,一旦我删除它们,我就能够生成正确的存档。

                  基本上,只要确保您没有将错误的文件放入目标中即可。

                  希望对你有帮助!

                  【讨论】:

                    【解决方案23】:

                    上述答案均不适合我,一旦我关注Apple's Tech notes,我开始收到很多链接错误和未找到标头错误。

                    我尝试解决这些错误,但没有适合我的解决方案,尝试使用标题搜索路径、库搜索路径等。

                    最后,如果这些解决方案都不起作用,请按照以下步骤将您的应用提交到应用商店

                    使用 XCode 11.x.x

                    1. 基本上,在执行 Clean Build Folder 和 Build 之后,您会在以下位置找到 .app 文件:~/Library/Developer/Xcode/DerivedData//Build/Products/Release-iphoneos/

                    2. 在桌面上创建一个名为 Payload 的新文件夹(此名称区分大小写)

                    3. 复制您的 .app 文件并将副本粘贴到此 Payload 文件夹中。

                    4. 右键单击文件夹并选择“压缩负载”

                    5. 保存时,不要使用 .zip 扩展名保存,而是使用 .ipa 扩展名保存。

                    6. 现在这是您应用的 .ipa 文件,您可以通过 Xcode Transporter App 上传此文件

                    如果您仍在使用旧版本的 Xcode 10.x.x 然后按照上面给出的相同步骤,但只需更改最后一步,而不是传输器应用程序,使用应用程序加载器应用程序

                    有关此问题的更多详细信息,请查看post

                    【讨论】:

                      【解决方案24】:

                      对我来说,Xcode 正在创建一个generic Xcode archive,因为我的Info.plist 中缺少UISupportedInterfaceOrientations 字段。添加后,应用存档已正确创建

                      【讨论】:

                        【解决方案25】:

                        我终于解决了这种问题。我认为这个问题出现在不同的场景中。

                        我得到了通用 Xcode 存档类型。之后,生成带有分发内容的存档构建。

                        实际上,就我而言,子项目头文件路径的问题,我相信归档时它们的路径丢失了。

                        我已经尝试过,删除了子项目引用并再次添加。我已经正确设置了标题搜索路径,已识别,路径在子项目下指向不同的文件夹位置。添加后,它指向确切的文件夹。

                        之后我尝试存档并使用分发应用选项生成存档构建。终于可以获取 iPa 文件并推送到 iTunes Connect :)。

                        这可能对某人有帮助。

                        谢谢

                        【讨论】:

                          【解决方案26】:

                          就我而言,没有一个解决方案有效,因为我的根本原因不同。我正在使用 SPM 并在我的 Swift 包中有一个 .xcdatamodel。删除它解决了这个问题。

                          【讨论】:

                            【解决方案27】:

                            删除/移动 Xcode 开发者目录

                            在通过并尝试了几乎所有在 stackoverflow 上提供的解决方案之后,包括完全重新安装 Xcode 和 cocoapods,为我解决这个问题的是完全删除 ~/Library/Developer 目录并让 Xcode 在我下次构建时重新创建并填充它/打开了我的项目。

                            1. 打开 Finder 并选择菜单 Go >“Go to Folder”并输入“~/Library”
                            2. 删除或移动(存档以防万一)“开发者”目录
                            3. 完全关闭 Xcode 并重新打开项目
                            4. 在 Xcode 产品中 > 存档
                            5. 这现在创建了正确的 iOS 应用存档,我能够分发应用并将其上传到 Testflight

                            【讨论】:

                              【解决方案28】:

                              就我而言,问题在于我的应用名称以点符号开头。 MacOS 会处理以“.”开头的文件和文件夹。隐藏,所以 Xcode 看不到存档中有一个实际的应用程序。

                              我在 Unity 中开发我的游戏,并且在 Unity 2020.1.17 之前一直运行良好。显然,发生了一些变化,新版本的 Unity 开始产生这个问题。

                              【讨论】:

                                【解决方案29】:

                                我使用的是 Unity,我的情况是 Edit -> Project Settings... -> Player -> iOS -> Other Settings -> Target SDK 被设置为 Simulator SDK。更改为 Device SDK 正确创建了应用存档。我希望它也可以帮助其他正在努力的人。

                                【讨论】:

                                  猜你喜欢
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 2014-05-23
                                  • 2012-02-03
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 2012-08-25
                                  • 1970-01-01
                                  相关资源
                                  最近更新 更多