Xcode7 and ios9 adaptation path

Source: Internet
Author: User
Tags key string

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.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.