Xcode 8 构建仅针对模拟器失败
Xcode 8 build fail only for simulator
从昨天开始我无法在 iOS 10 模拟器上使用 Xcode 8.1 构建和 运行 我的项目 奇怪的是构建和 运行 工作正常对于真实设备。问题是:
.../Xcode/DerivedData/Tripla_Doppia-fllujkpnletlmwcswbkopyphtkqd/Build/Products/Debug-iphonesimulator/Appirater.bundle: bundle format unrecognized, invalid, or unsuitable
Command /usr/bin/codesign failed with exit code 1
我尝试清理项目并清理 Derived Data 的文件夹,但没有任何改变。我正在使用 CocoaPods 来管理库,包括 Appirater pod。 Build 和 运行 直到上周都运行良好。有什么建议吗?
这是link截图:
正如 Francesco 所说,这个问题可能是由 CocoaPods 引起的。
CocoaPods 和任何 pods 引用不存在的资源路径可能会导致问题。
比如 pods 引用不存在的资源路径,
s.resource_bundles = {
'aPod' => ['Pod/Assets/*.png']
}
讨论帖 here 似乎有帮助。
通过提到的 thread Ronak Chaniyara,我为那些暂时不想更新 CocoaPods 的人找到了答案。
如果您查看 Pods 项目文件,在目标下,您会注意到所有资源包都没有 Info.plist 文件集。
使用 CocoaPods generic Info.plist 设置它们,它会在模拟器上 运行。然而,这不是永久性的,因为它将在下一个 pod install
重置
如果您使用的是 CocoaPods(尤其是旧版本),您会注意到 pods 项目文件中的所有资源包目标都没有 info.plist.
使用 CocoaPods generic Info.plist 设置它们,它会 运行。
然而,这不是永久的解决方案。它将在下一个 pod install
重置
https://forums.developer.apple.com/thread/66538
编辑:
如果你的项目中还没有一个通用的 plist 文件
在 Pods Target Support Files/Pods-<App Name>/
中创建一个新文件 Info.plist
并粘贴这个
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleIdentifier</key>
<string>org.cocoapods.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
我尝试更新 cocoapods 1.1.1,删除 DerivedData,以及几乎所有提到的其他内容。我仍然有同样的问题。我刚刚升级到 Xcode 8.2 测试版。现在一切都像我升级到 Xcode 8.1.
之前一样
我遇到了这个问题的一个变体,当我为模拟器构建时似乎无法识别 pod(为真实设备构建时没有问题)。就我而言,解决方案是从我的 Podfile 中删除 pod,执行 pod install
,然后重新添加 pod 并执行另一个 pod install
。这解决了问题。
就我而言,问题是由于仅在 Pods 目标 中为活动架构构建而引起的。
设置为否,以支持 pods 构建的所有设备。
从昨天开始我无法在 iOS 10 模拟器上使用 Xcode 8.1 构建和 运行 我的项目 奇怪的是构建和 运行 工作正常对于真实设备。问题是:
.../Xcode/DerivedData/Tripla_Doppia-fllujkpnletlmwcswbkopyphtkqd/Build/Products/Debug-iphonesimulator/Appirater.bundle: bundle format unrecognized, invalid, or unsuitable Command /usr/bin/codesign failed with exit code 1
我尝试清理项目并清理 Derived Data 的文件夹,但没有任何改变。我正在使用 CocoaPods 来管理库,包括 Appirater pod。 Build 和 运行 直到上周都运行良好。有什么建议吗?
这是link截图:
正如 Francesco 所说,这个问题可能是由 CocoaPods 引起的。
CocoaPods 和任何 pods 引用不存在的资源路径可能会导致问题。
比如 pods 引用不存在的资源路径,
s.resource_bundles = {
'aPod' => ['Pod/Assets/*.png']
}
讨论帖 here 似乎有帮助。
通过提到的 thread Ronak Chaniyara,我为那些暂时不想更新 CocoaPods 的人找到了答案。
如果您查看 Pods 项目文件,在目标下,您会注意到所有资源包都没有 Info.plist 文件集。
使用 CocoaPods generic Info.plist 设置它们,它会在模拟器上 运行。然而,这不是永久性的,因为它将在下一个 pod install
如果您使用的是 CocoaPods(尤其是旧版本),您会注意到 pods 项目文件中的所有资源包目标都没有 info.plist.
使用 CocoaPods generic Info.plist 设置它们,它会 运行。
然而,这不是永久的解决方案。它将在下一个 pod install
https://forums.developer.apple.com/thread/66538
编辑:
如果你的项目中还没有一个通用的 plist 文件
在 Pods Target Support Files/Pods-<App Name>/
中创建一个新文件 Info.plist
并粘贴这个
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleIdentifier</key>
<string>org.cocoapods.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
我尝试更新 cocoapods 1.1.1,删除 DerivedData,以及几乎所有提到的其他内容。我仍然有同样的问题。我刚刚升级到 Xcode 8.2 测试版。现在一切都像我升级到 Xcode 8.1.
之前一样我遇到了这个问题的一个变体,当我为模拟器构建时似乎无法识别 pod(为真实设备构建时没有问题)。就我而言,解决方案是从我的 Podfile 中删除 pod,执行 pod install
,然后重新添加 pod 并执行另一个 pod install
。这解决了问题。
就我而言,问题是由于仅在 Pods 目标 中为活动架构构建而引起的。 设置为否,以支持 pods 构建的所有设备。