After 4 months developing my first iOS app, it's time to submit it to the App Store
. I created the app in iTunes Connect
, filled in all the details, set up the correct Bundle ID
in both Connect
and Xcode
. However, I've struggled the last 3 days trying to solve this weird problem. It seems like xcode is trying to upload Cocoapods
frameworks, not my main app.
After archiving, I went to Window > Organizer > Validate...
. I see the following screen:
The error:
(For googlers: No suitable application records were found. Verify your bundle identifier 'org.cocoapods.Alamofire
' is correct).
The error message indicates that it's trying to match a Bundle ID
according to a framework's name, not my own bundle (e.g com.organization.AppName
). I can't find answers anywhere. I tried doing the following in my Podfile
(which has use_frameworks!), as well as my different conf combinations but had no success.
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
Questions:
Xcode
trying to match a framework's bundle id
instead of just my main application?EDIT 1: I was able to get past this problem, but that caused another problem later, so I still don't have a solution. Basically, Alamofire Pod (from Cocoapods) has a bundle id com.xxx.Alamofire
. I changed it to com.xxx.myAppName
. With that, I was able to send it to the App Store, however I can't install the app in my iPhone from TestFlight due to the following error:
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}
It works perfectly for me. I just located Info.plist right-click open as "source code" and I changed <key>CFBundlePackageType</key>
to string APPL
<key>CFBundlePackageType</key>
<string>APPL</string>