Xcode7 and ios9 adaptation path
After upgrading xcode7.2 from xcode6.x, we found that we had to do a bunch of things for adaptation, otherwise the previous project could not run well.
I. Change the database
All databases with the dylib suffix must be replaced with the tbd suffix, as shown below:
Before changing the database:
After changing the database:
Ii. https Problems
Xcode7.2 uses https by default. To continue using http, add the following content to info. plist:
Iii. Bitcode Problems
During a real machine test, no error was found on the simulator. The real machine encountered a problem and the following similar problems were reported:
'/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib ** SDK. a (** ForSDK. o) 'does not contain bitcode. you must rebuild it with bitcode enabled (Xcodesetting ENABLE_BITCODE), obtain an updated library from the vendor, or disablebitcode for this target. for architecture arm64
Contains Bitcode, which is an intermediate form of code for the compiled program. Programs that contain bitcode configurations are compiled and linked to the App store. Bitcode allows Apple to re-optimize the program's binary files in the future without submitting a new version to the App store. When you submit a program to the App store, Xcode compiles the program into an intermediate representation (bitcode ). App store then compiles the botcode into a 64-bit or 32-bit program that can be executed.
In the error message above, we mentioned how to solve the problem we encountered:
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, ordisable bitcode for this target. for architecture arm64
Either support third-party libraries or disable the bitcode option of target.
In fact, in Xcode 7, when we create an iOS program, the bitcode option is set to YES by default. We can see this setting in the "Build Settings"-> "Enable Bitcode" option. However, we need to consider three platforms: iOS, Mac OS, and watchOS.
For iOS, bitcode is optional. For watchOS, bitcode is required, while Mac OS does not support bitcode.
If bitcode is enabled, the following interface also has a bitcode option when you submit the package:
Therefore, if our project needs to support bitcode, it is necessary to require that all introduced third-party libraries support bitcode.
Otherwise, disable bitcode as shown in
Iii. White List Problems
Upgrade to xcode7.2. If the project has to jump to another app, you must add the Scheme of the corresponding app in info. plist. Otherwise, you cannot call or jump
LSApplicationQueriesSchemes
Iosamap
Baidumap
Seeyaa
Wechat
Weixin
Sinaweibohd
Sinaweibo
Sinaweibosso
Weibosdk
Weibosdk2.5
Mqqapi
Mqq
MqqOpensdkSSoLogin
Mqqconnect
Mqqopensdkdataline
Mqqopensdkgrouptribeshare
Mqqopensdkfriend
Mqqopensdkapi
MqqopensdkapiV2
MqqopensdkapiV3
Mqzoneopensdk
Wtloginmqq
Wtloginmqq2
Mqqwpa
Mqzone
Mqzonev2
Mqzoneshare
Wtloginqzone
Mqzonewx
MqzoneopensdkapiV2
Mqzoneopensdkapi19
Mqzoneopensdkapi
Mqzoneopensdk
Alipay
Alipayshare
4. packaging problems
Failed to locate or generate matching signing assets
Xcode attempted to locate or generate matching signing assets and failed to do so because of the following issues.
Missing iOS Distribution signing identity for... Xcode can request one for you.
As follows:
The reason is:Apple World Wide Developer Relations Certificate AuthorityThe expiration time is July 15, February 14, 2016. Apple's answer is as follows:
Thanks for bringing this to the attention of the community and apologies for the issues you 've been having. this issue stems from having a copy of the expired WWDR Intermediate certificate in both your System and Login keychains. to resolve the issue, you shoshould first download and install the newWWDR intermediate certificate (by double-clicking on the file ). next, in the Keychain Access application, select the System keychain. make sure to select "Show Expired Certificates" in the View menu and then delete the expired version of the Apple Worldwide Developer Relations Certificate Authority Intermediate certificate (expired on February 14,201 6 ). your certificates shoshould now appear as valid in Keychain Access and be available to Xcode for submissions to the App Store.
Simply put, the root certificate that issues the developer certificate has expired. If you open the keychain at this time and check that your certificate is published as follows:
The Apple World Wide Developer Relations Certificate Authority has expired, so the issued Certificate cannot be used.
Now let's talk about the solution:
1. Open the keychain and find the expiredApple World Wide Developer Relation Certification AuthorityAnd then delete it.
Note: Under the keychain display menu, set to display expired certificates
2. Download The AppleWWDRCA. cer certificate from this link to your local device.
3. Remember to enable the system key string setting permission.
4. Install AppleWWDRCA. cer on the logon and system.
The setting is successful. Check whether your certificate is normal.