烦人的Facebook分享授权

开发端授权app权限

facebook要求提交应用到他们平台, 而且还限制100mb, 坑爹死了, 果断使用google drive分享给他们, 最开始不确定分享给他们什么样的程序包, 结果审核没通过
这里给大家一个官方发布包的参考, 特喵的不在提交的地方着重给个链接, 挠死你
https://developers.facebook.com/docs/ios/getting-started/advanced

需要对应app开启 publish_actions 权限才可以分享出去:
这里写图片描述
同时需要注意, 申请的话是比较麻烦, 然后设置此权限的详细信息
这里写图片描述
然后提交应用程序, 下面就是通过模拟器打包的方式打包, 一定要按照步骤来, 普通打包对方无法测试

模拟器中的测试:

要注意以下几点:

info.plist必须包含的内容, 修改info.plist用source view模式直接编辑xml文档

  • CFBundleURLTypes中必须有CFBundleURLSchemes, fb{Your Facebook App Id}需要自己手动去改, 这个地方sharesdk也告诉你添加了
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb{YourFacebookAppId}</string>
            </array>
        </dict>
    </array>
  • facebook官方要求添加的信息, 和CFBundleURLTypes并列
    <key>FacebookAppID</key>
    <string>{YourFacebookAppId}</string>
    <key>FacebookDisplayName</key>
    <string>{YourFacebookAppName}</string>
  • 修改ShareSDK针对facebook授权方式改为Web方式, 给facebook发完再改回来, 模拟器上facebook是没有预装, 但是给真机是SSO推荐:
[appInfo SSDKSetupFacebookByAppKey:@"{YourFacebookAppId}"
                                               appSecret:@"{YourFacebookAppSecret}"
                                                authType:SSDKAuthTypeWeb];
  • HTTP访问权限, 同样和CFBundleURLTypes并列
    不开启在模拟器中会出现 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)的错误
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

模拟环境程序打包:

原理就是你用模拟器生成, 缓存的文件打包给对方, 命令行这样的
虽然很长 但是需要改的只有{}的部分

ditto -ck --sequesterRsrc --keepParent `ls -1 -d -t {你模拟器缓存文件路径}/{你游戏名称}.app | head -n 1` ~/Desktop/{打包到桌面的程序名}.zip

模拟器路径查找, 找这个位置:

/Users/{用户名}/Library/Developer/Xcode/DerivedData/

关闭xcode, 并全选,清空里面所有缓存项目
打开xcode, 通过模拟器编译生成出来一个和项目有关联的文件夹

/Users/{用户名}/Library/Developer/Xcode/DerivedData/{工程名+随机字母}/Build/Products/Debug-iphonesimulator/{工程名}.app

找到之后回到上面代码编译一下提交就好了, 坑爹的facebook审核

测试自己的打包app:

  • 下载nodejs环境 for mac
  • 安装环境(node-v4.1.1.pkg)到你的系统
  • 下载测试程序 ios-sim
  • 解压缩
  • 用终端找到这个目录
  • 执行 xcrun simctl list devices 列出xcode工程下创建模拟器列表
  • 执行 sudo npm install ios-sim -g
  • ios-sim 可以直接当系统命令使用了
  • 执行 sudo ios-sim showdevicetypes 从中选择设备名称

iPhone-4s, 9.0
iPhone-5, 9.0
iPhone-5s, 9.0
iPhone-6, 9.0
iPhone-6-Plus, 9.0
iPhone-6s, 9.0
iPhone-6s-Plus, 9.0
iPad-2, 9.0
iPad-Retina, 9.0
iPad-Air, 9.0
iPad-Air-2, 9.0
Apple-Watch-38mm, watchOS 2.0
Apple-Watch-42mm, watchOS 2.0

  • 执行 sudo ios-sim --devicetypeid iPhone-6 launch {yourapp}.app
  • 默认不选择设备会直接默认iWatch模拟器执行, 会无法运行

打包测试后没问题, 就可以发给facebook了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值