在将iOS应用程序上传到App Store时,Xcode尝试匹配框架捆绑ID

Ale*_*lex 23 xcode ios cocoapods bundle-identifier swift

在开发我的第一个iOS应用程序4个月后,是时候将它提交给了App Store.我创建的应用程序iTunes Connect,填写了所有的细节,树立正确的Bundle ID两个ConnectXcode.但是,过去3天我一直在努力解决这个奇怪的问题.似乎xcode正在尝试上传Cocoapods框架,而不是我的主应用程序.

归档后,我去了Window > Organizer > Validate....我看到以下屏幕:

在此输入图像描述

错误:

在此输入图像描述

(对于googlers:找不到合适的应用程序记录.验证您的包标识符' org.cocoapods.Alamofire'是否正确).

错误消息表明它正在尝试Bundle ID根据框架的名称匹配a ,而不是我自己的bundle(例如com.organization.AppName).我无法在任何地方找到答案.我尝试在我的Podfile(具有use_frameworks!)中执行以下操作,以及我的不同conf组合,但没有成功.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|

      config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
      config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
      config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

所有的代码签名都设置为自动

问题:

  • 我正在做的步骤是否正确?
  • 为什么Xcode尝试匹配framework's bundle id而不仅仅是我的主应用程序?
  • 如何才能通过此问题最终提交我的应用程序?

编辑1:我能够解决这个问题,但后来又引发了另一个问题,所以我仍然没有解决方案.基本上,Alamofire Pod(来自Cocoapods)有一个包ID com.xxx.Alamofire.我改成了com.xxx.myAppName.有了这个,我能够将它发送到App Store,但由于以下错误,我无法从TestFlight在我的iPhone中安装该应用程序:

4/22/16, 12:50:29 AM itunesstored[124]: [ApplicationWorkspace]: Failed to install application: com.xxx.myAppName; /var/mobile/Media/Downloads/5927832272594571027/-6969961974973998640; Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=DuplicateIdentifier, ErrorDescription=The parent bundle has the same identifier (com.xxx.myAppName) as sub-bundle at /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.IVHCuO/extracted/Payload/MyApp.app/Frameworks/Alamofire.framework}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 5

经过一段时间的努力,我才能让它发挥作用.基本上,只有Alamofire提出这个问题.这是我做的:

  1. 导航器中,单击" 窗格".
  2. 目标下,您将看到您的应用正在使用的所有框架.
  3. 单击Alamofire(或导致问题的框架).
  4. 编辑Bundle Identifier.如果您的应用程序Bundle Id是com.company.appName,请写入com.company.appName.Alamofire.

我尝试com.company.appName了框架com.company.Alamofire,没有任何效果.


小智 5

尝试将应用程序提交到iTunes Connect时,我收到此确切错误:“找不到合适的应用程序记录。请验证您的捆绑包标识符'org.cocoapods.Alamofire'是正确的”。

我最终通过将Bundle OS Type代码更改为APPL来修复了它。


Geo*_*ago 5

它非常适合我。我只是找到Info.plist,右键单击“源代码”打开,然后更改<key>CFBundlePackageType</key>为字符串APPL

<key>CFBundlePackageType</key>
<string>APPL</string>
Run Code Online (Sandbox Code Playgroud)