最近做了一个ShareSDK IOS的接入 (ANE) , 现在想想其实很简单 不过由于对Xcode,ANE的不熟悉也折腾了好久, 舔着脸打扰客服好几天… 呵呵

目前把我接入的一些步骤列出来 希望能帮到你.


准备工作

0· Mac机器一台,最新的AIRSDK
1·下载你需要的SDK(定制下载,勾选你自己需要的分享平台)
2·下载https://github.com/ShareSDKPlatform/ANESample


编译libShareSDKForANE.a

运行ANESample-master/iOS/ShareSDKForANE/ShareSDKForANE.xcodeproj

1·将下载的ShareSDK拖入项目中

2·去除掉当前工程中所有的引用Lib库(全都清空)

3· 更改设备为ios Device

4· Command+B 编译项目

5· 修改ShareSDKForANE.m中用不到的Import及初始化


点击Command+B再次编译项目,此时Products下面的libShareSDKForANE.a应该变为黑色(如果有错误则为红色). 点击右侧的箭头找到对应的文件 Copy出来

注意,此时的libShareSDKForANE.a应该为200多KB 如果大小相差很多 请检查之前的步骤


编译ANE

1·将生成的libShareSDKForANE.a copy到 package/iphone-ARM 目录下

2·将下载的ShareSDK copy到package/iphone-ARM目录下

3·删除iphone-x86目录

4·修改ane.sh脚本为:

你的最新AIRSDK目录/adt -package -target ane ShareSDK.ane extension.xml -swc ShareSDKExtension.swc -platform iPhone-ARM -C ./iPhone-ARM . -platformoptions platformoptions.xml

5·修改platformoptions.xml (下面的XML对应 新浪微博,Qzone,微信,Facebook,Twitter)

<platform xmlns="http://ns.adobe.com/air/extension/16.0">
    <description >ShareSDK Extension</description>
    <copyright>ShareSDK 2014 (optional)</copyright>
    <sdkVersion>7.0</sdkVersion>
    <linkerOptions>
        <option>-w</option>
        <option>-ios_version_min 5.11</option>
        <option>-framework Foundation</option>
        <option>-framework CoreTelephony</option>
        <option>-framework MessageUI</option>
        <option>-framework SystemConfiguration</option>
        <option>-framework QuartzCore</option>
        <option>-framework ImageIO</option>
        <option>-lz.1.2.5</option>
        <option>-licucore</option>
        <option>-lstdc++</option>
        <option>-lsqlite3</option>
        <option>-framework Security</option>
    </linkerOptions>
    <packagedDependencies>
        <packagedDependency>ShareSDK/Core/AGCommon.framework</packagedDependency>
        <packagedDependency>ShareSDK/Core/ShareSDKCoreService.framework</packagedDependency>
        <packagedDependency>ShareSDK/ShareSDK.framework</packagedDependency>
        <packagedDependency>ShareSDK/Connection/SinaWeiboConnection.framework</packagedDependency>
        <packagedDependency>ShareSDK/Connection/QZoneConnection.framework</packagedDependency>
        <packagedDependency>ShareSDK/Connection/WeChatConnection.framework</packagedDependency>
        <packagedDependency>ShareSDK/Connection/FacebookConnection.framework</packagedDependency>
        <packagedDependency>ShareSDK/Connection/TwitterConnection.framework</packagedDependency>
        <packagedDependency>ShareSDK/UI/ShareSDKiPadDefaultShareViewUI.framework</packagedDependency>
        <packagedDependency>ShareSDK/Extend/WeChatSDK/libWeChatSDK.a</packagedDependency>
        <packagedDependency>ShareSDK/Extend/SinaWeiboSDK/libWeiboSDK.a</packagedDependency>
        <packagedDependency>ShareSDK/Extend/QQConnectSDK/TencentOpenAPI.framework</packagedDependency>
    </packagedDependencies>
</platform>

* 几点注意 这里很关键

- <platform xmlns="http://ns.adobe.com/air/extension/16.0”> 这里改为你AIRSDK对应的最新版本号 目前我是16.0

-· <option>-ios_version_min 5.11</option> 这里改为5.11

-· http://wiki.mob.com/快速集成指南/ 中说的新浪微博SDK依赖库 为ImageIO.framework 那么option中填写的方式为<option>-framework ImageIO</option>, 同理还包括libstdc++.dylib 对应的是 <option>-lstdc++</option> 请自行发现规律

-· <packagedDependency>ShareSDK/Extend/WeChatSDK/libWeChatSDK.a</packagedDependency> 在下载的ShareSDK中会有一些点a文件,这里也需要写进去

6· 修改extension.xml

<extension xmlns="http://ns.adobe.com/air/extension/16.0">
    <id>cn.sharesdk.ane.ShareSDKExtension</id>
    <versionNumber>1</versionNumber>
    <platforms>
        <platform name="iPhone-ARM">
          <applicationDeployment>
            <nativeLibrary>libShareSDKForANE.a</nativeLibrary>
            <initializer>ShareSDKInitializer</initializer>
            <finalizer>ShareSDKFinalizer</finalizer>
          </applicationDeployment>
        </platform>
    </platforms>
</extension>

仅剩下 platform iPhone-ARM, 并且修改xmlns到16.0(当前最新的AIRSDK版本号)

7· CD到对应目录 sh ane.sh

如果一切顺利 则会产生ShareSDK.ane


测试ANE

我用的是Intellij,如果你用Flash Builder请自行根据步骤目的进行设置

1· 将下载的ShareSDK中的所有bundle文件 拖入项目,确保其最终被打包

2· 修改项目对应的xml配置文件,增加需要用到的URLSchemes

3· http://wiki.mob.com/社交平台配置项说明 中定于的需要传入参数初始化ShareSDK

一切顺利的话 你的ShareSDK应该已经可以工作了 :)

Enjoy

Best
Eran

ShareSDKForANE 打包笔记的更多相关文章

  1. Linux文件压缩与打包笔记

    linux 文件压缩与打包笔记 压缩原理:通过算法去掉空位,1Bytes=8bits , 可能存储的真正有用的数据并没有占满一个字节空间 , 还有就是可能有重复的数据,通过某种算法从这些方面进行压缩处 ...

  2. Mui本地打包笔记(一)使用AndroidStudio运行项目 转载 https://blog.csdn.net/baidu_32377671/article/details/79632411

    转载 https://blog.csdn.net/baidu_32377671/article/details/79632411 使用AndroidStudio运行HBuilder本地打包的Mui项目 ...

  3. windows下react-native android打包笔记

    看了东方耀老师的视频,跟着记下了以下笔记,其实和东方耀老师的课堂笔记差不多,增加了一点细节 1. 生成一个签名密钥: 在项目目录下运行 keytool -genkey -v -keystore my- ...

  4. Android Ant打包笔记

    本文文档的下载地址(Word版):http://download.csdn.net/detail/yangwei19680827/7250711 Android Ant 打包 网上找了ant打包的资料 ...

  5. vue项目打包笔记

    我的需求是在同一个代码目录下,可以同时放入两个项目包,通过运行不同的命令,运行相应的项目页面以及打包相应的项目. 这样的话,代码管理比较方便,用于多个项目在同一时间开发,类型一样,但在功能上有所区分的 ...

  6. iview-admin打包笔记

    在程序根目录右键打开cmd,输入 npm run build 这时就会进入打包的步骤,打包好之后就会在程序根目录出现一个dist的文件夹,里面有一个index.html文件和另一个dist的文件夹. ...

  7. webpack打包笔记

    optimist是一个node库,将webpack.config.js与shell参数整合成options对象 options对象包含之后构建的重要信息,类似于webpack.config.js we ...

  8. python下py2exe打包笔记

    1.下载与python版本一致的py2exe插件包 2.安装py2exe,安装后在python目录下存在:\Lib\site-packages\py2exe\... 3.新建一个python脚本文件, ...

  9. Linux学习笔记(二)2015.4.14

    笔记2.1 Q:登陆命令  A:刚开始登陆的是安装Linux时设置的普通用户,如lin,输入su - root后,成为root用户 笔记2.2 Q:切换控制台  A:ctrl+alt+F1-F7可以切 ...

随机推荐

  1. P1965 转圈游戏

    很容易可以得到,答案应该是(x+m*10^k)%n 很显然,用O(n)一定会卡爆,所以用快速幂来算,或者找一下循环节也是可以的. #include <bits/stdc++.h> usin ...

  2. 【php学习】时间函数

    手工画了一张图,来大体概括php中对于时间的处理函数 首先时间戳是这样“1441202665”的一串数字,虽然人看起来麻烦,但是计算机却很容易识别这样的时间表示形式. 所以给计算机看的时间是时间戳,给 ...

  3. CentOS 6.5 源码安装MySQL5.6.26

    1:下载安装cmake (mysql5.5以后是通过cmake来编译的) 2:创建mysql的安装目录及数据库存放目录 #mkdir /usr/mysql                 //安装my ...

  4. 线程池ThreadPoolExecutor

    线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maxi ...

  5. IIS8中部署WCF服务出错:HTTP 错误 404.3 - Not Found

    解决方法,以管理员身份进入命令行模式,运行: "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ ...

  6. Linux进程间通信与线程间同步详解(全面详细)

    引用:http://community.csdn.net/Expert/TopicView3.asp?id=4374496linux下进程间通信的几种主要手段简介: 1. 管道(Pipe)及有名管道( ...

  7. C#中数组、ArrayList和List三者的区别

    在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. ...

  8. php文件和目录操作函数

    文件:打开和关闭:fopen(), fclose()读:readfile(), file(), file_get_contents(), fgets(), fgetss(), fgetc()写:fwr ...

  9. php 或js 常用的正则表达式

    1.    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:2.    "^\d+$" //非负整数(正整数 + 0)3.    "^[0-9 ...

  10. Virtio:针对 Linux 的 I/O 虚拟化框架

    Virtio:针对 Linux 的 I/O 虚拟化框架 --http://www.ibm.com/developerworks/cn/linux/l-virtio/#ibm-pcon 使用 KVM 和 ...