Source: http://www.myexception.cn/operating-system/1451490.html
Development of QQ-connected iOS version of the history of bitterness
Development of the QQ connected iOS version of the ANE extension bitterness history:
1, the installation of Mac system is very painful, found several versions are not installed, while the basic operation of the Mac and Xcode basic operation is not familiar.
2 . Create an ANE project with Xcode (using the Xcode-template-ane-master template), introduce a third-party object-cframework, and generate. A files for the Ane file to be generated under Windows.
found that Windows downgraded with a third-party SDK compiled after the Ane,air call is boxed (for two reasons, one is that the OBJECT-C project code has an error, However, the. A library file can be generated normally, and the second is a reference to the third-party framework, but the Platform.xml is not configured to be packaged into the ANE and the third-party SDK is not read.
Workaround: First exclude reference to third-party class library problems, and then troubleshoot the code (have to comment on the suspected place in the compilation. A, generate ANE repack)
After troubleshooting the error, the compilation is not stuck, but still packed the times wrong:
An error occurred while packaging the application: undefined symbols for architecture armv7: ' _qqsdkextfinalizer ', Referenced from: _g_com_adobe_air_fre_fmap in EXTENSIONGLUE.O (maybe to meant: _qqsdkextfinalizer_name) " _qqsdkextinitializer ", referenced from: _g_com_adobe_air_fre_ Fmap in EXTENSIONGLUE.O (maybe you meant: _qqsdkextinitializer_name) "_objc_class_$_cttelephonynetworkinfo", referenced from: objc-class-ref in Tencentopenapi (MTA4QCHELPER.O) ld:symbol (s) isn't found for architecture armv7 compilation |
|
3 . Resolve the above error by configuring Platform.xml (add a referenced third-party class library to the Linkeroptions attribute).
Windows RePack build Ane,air project Run Package error:
The reason is that ADT reads the third-party class library when it is packaged and cannot read it. You need to configure the Apple IOS SDK in the native extension of FB (because IOSSDK does not have Windows edition, so you need to put the FB project on your Mac and go to the 4th)
Note <linkerOptions> tags require AIR 3.3 or later
4 . Install FB on Mac, configure the Air project, configure the Apple IOS SDK in the native extension:
/applications/xcode2.app/contents/developer/platforms/iphoneos.platform/developer/sdks/iphoneos6.1.sdk/
And put the third-party class library tencentopenapi.framework into the above path system/library/frameworks/, import the relevant required iOS class library in Xcode
To run the prompt again
Ld:librarynot found For-libiconv
compilationfailed while Executing:ld64
The reason is that linkeroptions iOS class library name is wrong, name-libiconv to write-liconv (must remove IB two characters)
After the configuration is complete, re-package the Ane,air project in Windows OK, the calling third-party program is working properly. The Platformoptions.xml configuration is as follows:
5, because do not want to put the project on the Mac to compile, so need to find a way on the ANE, the third party framework package into the ANE (this requires the ANE packaging process must be done on the Mac)
Configure the third-party class library with the Packageddependencies node attribute in the Platformoptions.xml
To package ane prompt with the command line error: Missing dependency tencentopenapi.frameworkfor Platform Iphone-arm
Platformoptions.xml The Packageddependencies node property is configured---Reference to a third-party class library, you need to put the class library in a packaged folder
Note <packagedDependencies> tags require AIR 3.5 or later.
Then use ADT to package ane, error: Unable to build a valid certificate chain for the signer.
It is possible that a. p12 file is not supported on a Mac that uses Windows to generate.
There is a way to say on the internet how to regenerate using Firefox on your Mac. P12 (http://forums.adobe.com/message/1975832#1975832) does not fully understand how to operate, Or do you honestly use your Mac to generate. p12 files for ane generation and IPA publishing.
This makes the ANE file generated for the third-party framework available to air projects on widows, and does not require development projects on Macs to be introduced into the iOS SDK.
6, for QQ Interconnect SDK write ane, send message cannot callback, because object-c part to rewrite Handleopenurl method, and Air app automatically created window cannot override this method.
Workaround: A s listens on the Invokeevent.invoke event, receives the event and then calls the Object-c method via the ANE, which then calls the SDK's Handleopenurl method.
NativeApplication.nativeApplication.addEventListener (Invokeevent.invoke, oninvoke);p rivate function Oninvoke ( event:invokeevent): Void{if (Capabilities.manufacturer.indexOf ("ios")! =-1)//Only in IOS use this way {if (event.arguments! = nul L && event.arguments.length > 0) {var url:string = event.arguments[0] as string;if (URL! = null && URL. IndexOf ("tencent") = = 0) {contex.call ("Handleopenurl", URL);}}}}
7,QQ connected login successfully after the client to the OpenID, Access_token passed to the server access open Platform API prompt 100030 error: The user does not authorize the API
At first, I thought it was OpenID and Access_token error, the actual reason is authorize passed the parameter problem, did not fill in the API's permission string, can add or pass @ "all". The string for each permission is the fun of which CGI is called: the Https://graph.qq.com/user/get_app_friends permission string is: Get_app_friends.
8, other episodes , the beginning of the installation of Flash builder4.7, configure the latest air3.9, project compilation error: Tip: "Files found in the source path must have an externally visible definition." If a definition in a file should be externally visible, put the definition in a package. ”
"AIR application ID" Net.flash8.game.guess.debug "does not match the pattern specified in configuration profile" Net.flash8.game.guess ". Either change the application ID or use a configuration profile that matches the existing ID. ”
Did not find the reason, and then installed flashbuilder4.6, configure the latest air3.9, after normal.
How to upgrade Airsdk under Mac: (Same as upgrade method under Windows, fb4.7 in Mac is more complex)
Http://www.vimer.cn/2013/07/mac flash-builder-4-64-7-Upgrade the version of-AIRSDK to the 3-8 method. html
Xcode error Unsupported compiler ' GCC 4.2 ' selected for architecture ' i386 '
Workaround find compiler for c/c++/objective-c this option in buildingsetting LLVM GCC 4.2 is OK
Xcode error occurred:
Undefined symbolsfor Architecture ARMv7:
"_objc_class_$_xxx", referenced from:
Objc-class-ref inxxx
Ld:symbol (s) notfound for architecture i386
Clang:error:linker command failed with exit code 1 (use-v to see invocation)
If the real machine debugging is undefined symbols for architecture i386 error!
This error is usually caused by project.pbxproj this file, especially in the case of co-development of many people, the SVN submission of the specification may cause project.pbxproj error, resulting in the file reference is not in the Project.pbxproj file.
The Xcode project import file will look up according to Project.pbxproj and will have the above error if it finds no references to the file.
Solution Click on the project, in the main interface click Buildphases, according to the message "XXX" to determine the missing files, generally if the lack of custom files, XXX will be missing the class name, then in Complie sources to add the file. If the class library is missing, the class library is added to the link Binary with libraries.
Xcode sometimes does not compile. A files, but still prompts buildsuccess, most of which are code errors, re-create a project, copy the code over. (Only on Xcode 4.6, behind the decisive installation of the latest xcode5.0)
Command line package ANE hint error: Namespace of platformoptions.xml should match extension Namespace.
Platformoptions.xml inside the air version number configuration must be consistent with the extension.xml, at the same time, the package ane to use the Air SDK version must be greater than or equal to the revision number.
Encountered these problems, and resolved, finally the QQ interconnection of the ISO version of the ANE development completed, and call. During the middle of the block, but also study the other people write a QQ connected to the ANE see can be directly to use, eventually found not support, also have to develop their own.
Induction steps:
1, configure the development environment (MAC, Xcode, familiar with their usage)
2. Create Xcode project (we recommend using Xcode-template-ane-master), export. A library file
3. Create as Commonanelib project, write ane command and package
4. Configure-app.xml permissions (very important)
5, air Project Engineering call
Refer to the relevant website:
To build a native library:
http://help.adobe.com/zh_CN/air/extensions/WSf268776665d7970d-2e74ffb4130044f3619-7fff.html# Wsdb11516da818ea8d49ce0fe713341ed67cf-7ffe
Application Startup and Exit options
Http://help.adobe.com/zh_CN/AIR/1.1/devappsflex/WS5b3ccc516d4fbf351e63e3d118676a5d46-8000.html
Build native extensions for iOS and Android – Part III: Build iOS libraries
Http://www.adobe.com/cn/devnet/air/articles/building-ane-ios-android-pt3.html
Ios5support for air/using external SDKs to package apps:
http://blogs.adobe.com/rajorshi/2011/11/16/ios5-support-for-airusing-external-sdks-to-package-apps/
Integrate Facebook http://zengrong.net/post/1831.htm with ane
The ane-times error with Adobe Air packaging to the external SDK
Http://www.flashj.cn/wp/error-when-adt-package-ipa-with-ane-includes-ios-external-sdk.html
The path of the pit daddy of IOS ane (a) http://rolfzhang.com/articles/1108.html
Ane-facebook:https://github.com/freshplanet/ane-facebook
Anelist-master:https://github.com/zmliu/anelist