我有一个问题,无法从应用程序生成iOS App归档文件。 应用程序编译非常好,甚至可以在模拟器中正常工作。 现在我想进行一些adhoc测试,但无法生成iOS App存档文件。 当我单击产品->归档时,它会生成一个通用的xcode存档。 有人能帮帮我吗? 我应该提到,我已经为此应用程序生成了iOS App Archive。出于某种原因,它停止生成iOS Archive。 非常感谢。
检查构建设置:
/usr/local/include
。如果您正在构建静态库,则头文件必须是公共的,因此更正确的做法是将#3中的公共头文件文件夹路径更改为类似于include/$(TARGET_NAME)
这样更合理的内容。@CopperCash在下面的答案中指出了这一点。 - bcattle如果您添加了框架/库,可能会出现此问题...您需要编辑该库的Target->Build Settings并将“Skip Install”设置为“Yes”。重新存档时,XCode应该开始再次生成'iOS App Archive'而不是'generic xcode archive'。
除了将 Skip Install 设置为 Yes 之外,如果你在应用程序项目中打开了另一个 lib/framwork 项目,则必须将头文件(如果有的话)从 public 移动到 project 中 Build Phase / Copy Headers。
绝对路径
更改为产品目录
。注意:请参见下面的提示,以缩小搜索范围,找到导致此错误的库。就这样了!
提示: 要了解导致您的归档创建归档文件而不是ipa的有问题的文件,请执行以下操作:
usr/local/include
将确定您需要从Public移动到Project的罪魁祸首头文件或需要更改为产品目录的绝对路径(甚至是您忘记将跳过安装设置为是标志的文件)。但是该目录(即usr/local/include)取决于您的子库目录结构。在许多情况下..您将看到在步骤3中列出的所有文件也列在这里。如果您在此处找到它们,则可以确定问题的原因。更新提示:为了使生活更加简单,只需在Xcode的全局搜索中搜索出现在上面提示第4步中的任何文件.. 您应该立即获得所需的结果.. 例如,这是我文件夹中的内容(按照上面提示的步骤):
所以我可以看出它与 加密 和 SSL 库有关... 搜索它们:
让我意识到我忘记将跳过安装设置为是。/urs/local/include
,请尝试此建议:
在每个组件中,在
Packaging
下,将Private Headers Folder Path
和Public Headers Folder Path
设置为/usr/local/include
。如果我清除它们,就能得到一个有效的档案。
在我升级React Native应用程序至0.11.0
,Xcode 7
和CocoaPods 0.39.0.beta.4
之后,这对我有用。
Build Phases
中删除Copy Pod Resources
阶段。一旦我这样做了,项目就像预期的那样编译和归档了。0.38.2
,但仍然存在问题。您是否使用 Xcode 7? - Porter Hoskins/Library/Frameworks
有一个框架,我认为这可能与Google的cocoa pods没有建立为动态框架有关。这听起来类似于https://github.com/CocoaPods/CocoaPods/issues/3889。 - Porter Hoskins虽然我使用的是 Xcode5,但对我有帮助的是编辑 Build Scheme,尝试所有适用的上述建议在我的情况下并没有帮助。
我有两个目标,比如“App”和“App FREE”。当我尝试归档FREE版本时,我遇到了通用归档的问题,这是我在添加'normal'版本之后才添加的。在我的情况下,当我选择工具栏中的其方案并选择"编辑方案..."时,我发现生成部分有两个目标,即"App"和"App FREE"。
我取消了“App”的所有列,只留下“App FREE”的列,并点击"确定"。下次我选择“产品”>“归档”,我得到的是我的“App FREE”,而不是一个通用归档文件。:)
如果您只有一个项目,那么这个解决方案可能会很有用。
当我复制目标时,就会出现这个问题。结果是我建立了两个平行的目标。这导致了问题。通用IOS归档已经建立好了。
如果要关闭平行建筑,请执行以下操作:
更新到iOS 9和Xcode 7后,我遇到了这个问题。Josh H的解决方案对我有用:
在每个pod下,在“Packaging”下,“Private Headers Folder Path” 和 “Public Headers Folder Path”的设置为/usr/local/include。如果我清除它们,那么我就会得到一个有效的存档。
我还为我的Podfile编写了一个安装后脚本,以自动执行此操作!
post_install do |installer_representation|
installer_representation.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['PUBLIC_HEADERS_FOLDER_PATH'] = [""];
config.build_settings['PRIVATE_HEADERS_FOLDER_PATH'] = [""];
end
end
end
pod install
即可。
xcodebuild
时遇到了这个问题。解决方法是指定目标:xcodebuild -destination generic/platform=iOS
。 - db42