小编val*_*eru的帖子

无法让新的AppLink在iOS或Android上运行

最新更新下面的更新#5

我正在尝试为我的iOS和Android应用程序实现AppLinks:http://applinks.org

我做了以下事情:

  1. 为我的应用设置自定义网址方案:inacho://
  2. 我的App代表中的设置: - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
  3. 将meta标签添加到我的网站http://www.nachorater.com:

<meta property="al:ios:app_store_id" content="581815579"/>
<meta property="al:ios:app_name" content="iNacho" />
<meta property="al:ios:url" content="inacho://default" />
Run Code Online (Sandbox Code Playgroud)

我已经通过输入类似inacho:// default的链接并点击它创建的链接来验证网址方案是否有效.WA-LA!它打开我的应用程序.

但是,当我尝试从Facebook或Quip点击链接到www.nachorater.com时,这两个应用程序都没有自动通知该网站设置了这些应用程序链接,它只是在浏览器中加载网站而不是尝试打开我的应用程序.

有人有这个工作吗?

更新:

我有一个问题,一些元标记不在我的模板的<head>部分,我修复它.

现在来自iOS Facebook应用程序的链接:http://www.nachorater.com添加了一个漂亮的小弹出窗口,可以让你打开iNacho应用程序中的URL,如下所示:

截图

但我的动态评论链接似乎没有用,但Ming指出的Debug应用程序显示meta标签看起来正确.

例如,http://www.nachorater.com/getReview?reviewID = 6396169718595584

使用https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.nachorater.com%2FgetReview%3FreviewID%3D6396169718595584进行调试时的元标记:

元标记

更新#2:

我发布了一个新的nacho评论链接到我的iNacho Facebook时间线,然后尝试从Facebook Mobile应用程序点击它.

它开始加载页面并弹出方便的指示器,让你在iNacho中打开应用程序,但是一旦页面加载,指示器就会消失(在我点击它之前).

更新#3:

从Facebook应用程序,我现在可以为我的评论触发一个inacho URL,但这只是在我消失之前点击iNacho中打开的小弹出窗口.如果我在Facebook的内置Web视图中完全加载页面,那么小弹出窗口仍会消失.

这是Applinks的问题吗?或Facebook应用程序的问题?还是设计,为什么?

更新#4:

我可能知道问题是什么.审核页面依次为nacho评论加载动态图像.因此,通过加载页面,它有一个img src标记,指向加载图像的动态URL.这是否被误认为某种"重定向"行为?

img标签的示例(渲染): <img width="300" src="/getReviewImage?imageID=6125868501958656"></img>

注意:还有许多其他脚本/ ajax也会动态加载(Facebook和Twitter小部件等).

这是AppLinks或Facebook Mobile应用程序中的错误吗?它不应该关心背景加载像ajax和动态图像的对象吗?

更新#5

2014年7月15日 - 最新的Facebook应用程序仍在发生这种情况.当我点击从我的iNacho Facebook页面到我的iNacho网站的链接时,它会弹出选项,在页面完成加载之前在应用程序中打开它一瞬间.然后它隐藏了它.

至于Twitter应用程序,它甚至不会给我弹出一瞬间.它似乎没有认识到链接是启用了appslink.

Quip,另一方面,我粘贴了一个nacho链接,当我第一次点击它时,它进入了内置的safari,无法在我的应用程序中打开.但是我第二次点击它,它直接打开了我的应用程序.

简介:到目前为止,似乎有些应用程序正在错误地实现AppLinks Navigation部分或其他内容.Quip似乎有效,但即使是Facebook自己的应用程序似乎也没有用.

android facebook meta-tags ios applinks

32
推荐指数
3
解决办法
2万
查看次数

"安装Apple Watch应用程序从未完成"将Watch kit应用程序部署到设备时出错

所以我得到了我的新手表(耶!).我手动将其UDID添加到开发人员门户并刷新了配置文件,我能够将存档推送到ITC进行测试,但现在我想在我的手表本身上运行调试应用程序.

我尝试将手表套件app目标设置为我的手机作为设备,它就坐在那里并运行/搅拌一段时间没有任何反应.

如果我等待足够长的时间,Xcode最终会出错

"安装Apple Watch应用程序从未完成" Xcode错误

有没有人碰到这个或知道我可以尝试的任何技巧?

objective-c ios apple-watch watchkit xcode-6.2

18
推荐指数
2
解决办法
5092
查看次数

原生iOS Facebook SSO将不会返回应用程序

好吧这看起来像是重复但我已经解决了围绕这个问题的所有问题,我似乎仍然无法让这个为我的应用程序工作.

我已经按照Facebook Developer网站上的iOS教程进行了操作,并完成了以下操作:

  1. 创建了一个Facebook应用程序来获取Facebook App ID.
  2. 我已将此App ID分配给常量,并使用它来初始化我的应用程序中的Facebook对象.
  3. 我确保我的应用程序被标记为多任务处理
  4. 我在URL下拉菜单中设置了plist中的fbAPP_ID
  5. 我已经使我的AppDelegate成为FBSessionDelegate并实现了非常简单的fbDidLogin和fbDidNotLogin委托方法.

版本:Lion上的XCode 4.3.2,iOS 5.1,Facebook iOS 4.1.1

所有这些和我仍然无法让Facebook在授权时将控制权返回给我的应用程序.它只是停留在Facebook上.

代码:(注意FB_APP_ID已更改为基本编号,可在此处查看)

AppDelegate.h:

#import <UIKit/UIKit.h>
#import "FBConnect.h"

#define FB_APP_ID @"1234567890"

@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, strong) Facebook* facebook;

@end
Run Code Online (Sandbox Code Playgroud)

AppDelegate.m:

#import "AppDelegate.h"

@implementation AppDelegate
@synthesize window = _window;
@synthesize facebook = _facebook;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    _facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:self];
    if (![_facebook isSessionValid])
    {
        [_facebook authorize:nil];
    }
}

- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL *)url …
Run Code Online (Sandbox Code Playgroud)

xcode facebook objective-c ios

12
推荐指数
1
解决办法
8812
查看次数

将异步调用包装到同步阻塞线程中?

我正在编写一个iOS模块,它当前以异步方式发送电子邮件(使用委托).它的使用SKPSMTPMessage效果很好.我的问题是客户希望代码完全阻止线程,直到电子邮件发送(或无法发送).因此,他们基本上要求同步解决方案,当前它将尝试发送电子邮件,然后在发送电子邮件之前从该代码块返回.

因此,我没有尝试以SKPSMTPMessage同步的方式重写代码(似乎没有任何同步选项),我希望找到一些方法将异步代码块包装在自己的线程中,并可能使主线程等待它完全结束(代表和所有).

我尝试了一些使用NSOperations的不同方法,NSThread但也许我没有做正确的事情,因为每次我试图阻止主线程时,异步委托调用仍然似乎永远不会完成(他们回到主线程还是什么东西) ?).

任何信息甚至其他想法赞赏.

PS~我意识到这有点倒退了.在大多数情况下,异步似乎是要走的路,但这是一个特例,客户有理由想要它.

编辑:感谢所有的输入.正如其中一个答案所建议的那样,我最后只使用了一个等待代表返回的while循环,但是让runLoop继续如下:

while( ![messageDelegate hasFinishedOrFailed] ){
    // Allow the run loop to do some processing of the stream
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
}
Run Code Online (Sandbox Code Playgroud)

multithreading asynchronous objective-c synchronous ios

10
推荐指数
2
解决办法
1万
查看次数

iOS 6.0 Quicklook QLPreviewController错误:"无法找到已加载代理的预览项"

我的应用程序一直在使用QLPreviewController来显示所有类型的文件,在iOS 5.x中,它似乎很好.

现在,在iOS 6.0中,我收到一个错误,它显示了控制器,但有一个恒定的加载指示器,从来没有实际加载任何东西.

日志中的错误是:找不到已加载代理的预览项:<QLPreviewItemProxy:0x8dbf480> - file://localhost/Users/me/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/E6A58F8D-71F3-4C7A -B16E-4BA017E318E5 /文档/温度// Welcome.docx

其他人在iOS 6.0中遇到此问题或其他问题吗?或者有什么尝试的建议?我已经通过iPhone和iPad尝试了它,同时推动控制器并呈现它.

编辑:还注意到有问题的URL(他们说的那个是坏的)不仅以file://而是file:// localhost开头,而原始文件只是以实际路径开始(即:file:///用户).

objective-c quicklook ios qlpreviewcontroller ios6

6
推荐指数
1
解决办法
9300
查看次数

iOS Google跟踪代码管理器在启动时因'NSParseErrorException'而崩溃,原因:'上次标记:116应为124'

我们在其他3个iOS应用中运行带有Google跟踪代码管理器的谷歌分析,但出于某种原因,这个最新的应用程序在尝试打开容器时崩溃.

这是有问题的代码行(类似于GTM的指南):

        NSTimeInterval timeout = 0.1;
        [TAGContainerOpener openContainerWithId:containerName
                                     tagManager:_tagManager
                                       openType:kTAGOpenTypePreferNonDefault
                                        timeout:&timeout
                                       notifier:self];
Run Code Online (Sandbox Code Playgroud)

抛出的错误:

Terminating app due to uncaught exception 'NSParseErrorException', 
reason: 'Last tag: 116 should be 124'
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

*** First throw call stack:
(
    0   CoreFoundation                      0x0000000104dffa75 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x0000000104716bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000104dff9ad +[NSException raise:format:] + 205
    3   MyApp                             0x0000000102831ce6 -[TAGPBCodedInputStream readUnknownGroup:builder:] + 152
    4   MyApp                             0x0000000102844904 -[TAGPBUnknownFieldSet mergeFieldFrom:input:] + 283
    5   MyApp                             0x000000010283ceb1 -[TAGPBGeneratedMessage parseUnknownField:extensionRegistry:tag:] + 203
    6   MyApp                             0x000000010283cfc8 -[TAGPBGeneratedMessage …
Run Code Online (Sandbox Code Playgroud)

crash xcode google-analytics ios google-tag-manager

5
推荐指数
1
解决办法
984
查看次数

Xcode 7.3.1在MacOS Sierra Beta 5上崩溃

注意:自从Beta 1或2以来,我一直在使用Xcode7.x和MacOS Sierra.它运行得很好.我还没有碰过这台机器上的Xcode 8.

从beta 5开始,突然我无法对Xcode 7做任何事情.我启动它并打开我的工作区,一旦我将视图更改为另一个文件或项目或资产或任何东西,它就会崩溃并出现以下错误:

Process:               Xcode [869]
Path:                  /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:            com.apple.dt.Xcode
Version:               7.3.1 (10188.1)
Build Info:            IDEFrameworks-10188001000000000~3
App Item ID:           497799835
App External ID:       817226719
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Xcode [869]
User ID:               501

Date/Time:             2016-08-11 11:21:13.167 -0700
OS Version:            Mac OS X 10.12 (16A286a)
Report Version:        12
Anonymous UUID:        BC13DBAB-4D04-3E83-CF4A-4F1FFB581BCE


Time Awake Since Boot: 250 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception …
Run Code Online (Sandbox Code Playgroud)

xcode ios xcode7 macos-sierra

5
推荐指数
1
解决办法
2659
查看次数