XCode使用cocoapods框架

时间:2016-02-13 10:39:08

标签: ios xcode swift ios-simulator cocoapods

当我尝试在模拟器或iPhone中执行我的应用程序时,我收到下一个错误:

App installation failed
This application or a bundle it contains has the same bundle identifier as this application or another bundle that it contains. Bundle identifiers must be unique.

enter image description here

当我查看设备的日志时,我会收到详细的错误消息:

对于iPhone:

Feb 13 10:28:36 iPhone-de-P streaming_zip_conduit[240] <Warning>:     __dispatch_source_read_socket_block_invoke:274:
Failed to install application at file:///var/mobile/Media/PublicStaging/MyApp.app/ : 
Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=DuplicateIdentifier, 
ErrorDescription=Found bundle at /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.3L3YM3/extracted/MyApp.app/Frameworks/SlideMenuControllerSwift.framework 
with the same identifier ($(PRODUCT_BUNDLE_IDENTIFIER)) as bundle at /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.3L3YM3/extracted/MyApp.app/Frameworks/Serialize.framework}

对于模拟器:

12/2/16 20:40:34,408 com.apple.CoreSimulator.CoreSimulatorService[2426]:
Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=DuplicateIdentifier, 
ErrorDescription=Found bundle at /Users/myUserName/Library/Developer/CoreSimulator/Devices/78CD18E0-B8E1-4A95-9224-2EF3ABDE5585/data/Library/Caches/com.apple.mobile.installd.staging/temp.s9Kecf/extracted/MyApp.app/Frameworks/SlideMenuControllerSwift.framework 
with the same identifier ($(PRODUCT_BUNDLE_IDENTIFIER)) as bundle at 
/Users/myUserName/Library/Developer/CoreSimulator/Devices/78CD18E0-B8E1-4A95-9224-2EF3ABDE5585/data/Library/Caches/com.apple.mobile.installd.staging/temp.s9Kecf/extracted/MyApp.app/Frameworks/Serialize.framework}

两个设备中的错误相同:2个具有相同捆绑ID的框架

通常我通过执行&#34; pod更新&#34;来解决这个错误。或者&#34; pod install&#34;在每次编译之前,但是这个解决方案不再适用了。

我的项目包含5个pod,这是我的podfile:

platform :ios, '8.0'
use_frameworks!

target 'MyApp' do
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire'
pod 'MBProgressHUD', '~> 0.9.1'
pod 'swift-serialize'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'
pod 'SlideMenuControllerSwift'
end

target 'MyApp' do

end

target 'MyApp' do

end

我没有手动设置任何pods包ID。 pod的所有配置都是在您进行&#34; pod安装时默认设置的那些&#34;

此外,为我提供问题的两个pod配置了以下捆绑包:

SlideMenu Pod: enter image description here

Serialize Pod: enter image description here

这是我的项目包配置: enter image description here

我尝试了每个发布的解决方案:重置模拟器,删除派生数据,清理产品,清理构建文件夹,删除模拟器并重新安装...

我在cocoapods论坛,GitHub和谷歌搜索过但我找不到任何关于pods框架的包ID的错误引用。

我真的不知道为什么会出现这种错误...所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:7)

最后,错误是每个pod的info.plist中的PRODUCT_BUNDLE_IDENTIFIER字段。将其更改为“org.cocoapods。$ {PRODUCT_NAME:rfc1034identifier}”解决了问题(以前是“$(PRODUCT_BUNDLE_IDENTIFIER)”)。

答案 1 :(得分:0)

对于我来说,从菜单中选择“产品”>“用Xcode清理”并再次运行即可!