分享FBSDKShareLinkContent与FBSDKShareDialog在iOS 8的精品工程,但无法分享imageURL,contentTitle,contentDescriptioniOS上的9个设备.
该应用程序使用iOS 9 SDK,Xcode 7,Facebook SDK 4.7.0 构建,完成了为iOS9准备应用程序中提到的所有操作.该应用程序目前在App Store中不可用,Facebook应用程序处于开发模式.
呈现对话框的代码非常常见(Swift 2.0):
let content = FBSDKShareLinkContent()
content.contentURL = <URL to the app in the App Store>
content.imageURL = <valid image URL>
content.contentTitle = <some title>
content.contentDescription = <some descr>
let shareDialog = FBSDKShareDialog()
shareDialog.fromViewController = viewController
shareDialog.shareContent = content
shareDialog.delegate = self
if !shareDialog.canShow() {
print("cannot show native share dialog")
}
shareDialog.show()
Run Code Online (Sandbox Code Playgroud)
在iOS 9上,Facebook SDK提供了没有图像,标题和描述的原生对话框:

在显示对话框时,当在iOS 9设备上安装FB应用程序时,会出现错误,通过向Info.plist添加相应的URL解决此问题无法解决问题.它只是不再出现的日志语句. …
Fabric Crashlytics Advanced Setup中有一个包含多个环境的应用程序部分,建议为每个版本使用单独的组织.
我为每个Build配置创建了3个独立的组织:
我的运行脚本构建阶段中有条件运行Fabric框架脚本,其中包含不同的API密钥和构建密钥,我可以确认条件是正确的,但我仍然没有更新API密钥我的plist(我猜是Fabric使用的).似乎Fabric正在将我的崩溃发送到我使用Fabric应用程序登上的最后一个API密钥/组织.有什么我想念的吗?我知道我可以使用[Crashlytics initWithApiKey:@""],但从我读过的内容来看,这被认为是遗留代码.
这是我的运行脚本构建阶段:
if [ "${CONFIGURATION}" = "Distribution" ]; then
echo "Building Fabric for Distribution."
./Fabric.framework/run dist_api_key dist_build_secret
fi
if [ "${CONFIGURATION}" = "AdHoc" ]; then
echo "Building Fabric for AdHoc."
./Fabric.framework/run adhoc_api_key adhoc_build_secret
fi
if [ "${CONFIGURATION}" = "Debug" ]; then
echo "Building Fabric for Debug."
./Fabric.framework/run debug_api_key debug_build_secret
fi
Run Code Online (Sandbox Code Playgroud)
是否可以弱连接静态库(Obj-C)?
我确实希望我的自定义静态框架(MyFramework.framework)弱链接我的其他自定义静态库(libMyLibrary.a).
libMyLibrary.a背后的功能是可选的,如果没有 libMyLibrary.a被任何使用MyFramework.framework的第三方应用程序链接,则可以省略.
我在用-weak_library.我的测试应用抱怨说,静态链接无法找到在MyLibrary的符号MyClass内MyFramework S' ABCTracker.o符号:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_MyClass", referenced from:
objc-class-ref in MyFramework(ABCTracker.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
如何正确设置弱链接?
更新:
@JAL已经指出了接受的SO答案,它表明这个问题中描述的行为是一个现在应该被修复的BUG.但是没有迹象表明此修复程序何时生效.
以前的更新:
正如这个答案所暗示的那样,当Xcode import <module_name>决定导入是多余的时,Xcode会以删除线字体显示(我在下面的原始问题中假设).
但没有import <module_name>编译器失败的错误.
这种不端行为是我原来问题的主题.是错误还是我遗漏了某些东西(例如正确链接到框架等等)?
原始问题:
当我输入导入模块Xcode时,用strikethrough字体显示所需的模块名称是什么意思?
描述:
我想创建简单的GKEntity子类.所以,在新.swift文件中我添加以下内容:
class TBTEntity: GKEntity {
}
Run Code Online (Sandbox Code Playgroud)
我知道它GKEntity本身就是GameplayKit框架的一部分.所以,我必须导入框架,否则,我看到错误.
使用未声明类型'GKEntity'
用户体验视角下的Strikethrough字体表明我喜欢"你不需要这个"或"模块不可用",但实际上这似乎都不是真的.
Xcode 7.3(7D175)
将嵌入式框架与其他框架链接,并且required code signature missing在设备上构建和运行时不要将其他框架与您的应用程序相关联.
建立:
我的设置非常简单(Swift 2.3和Xcode Xcode 8.0; Build版本8S162m):
xcodebuildTOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 carthage build --platform iOS问题:
一切似乎工作正常,直到我在设备上构建和运行应用程序.该应用程序已启动,并且该过程因以下Xcode错误而中止:
dyld: Library not loaded: @rpath/Other.framework/Other
Referenced from: /private/var/containers/Bundle/Application/DCF0331F-FF23-43CF-AE79-B3857D5A6EE3/MyApp.app/Frameworks/My.framework/My
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/DCF0331F-FF23-43CF-AE79-B3857D5A6EE3/MyApp.app/Frameworks/My.framework/Frameworks/Other.framework/Other: required code signature missing for '/private/var/containers/Bundle/Application/DCF0331F-FF23-43CF-AE79-B3857D5A6EE3/MyApp.app/Frameworks/My.framework/Frameworks/Other.framework/Other'
Run Code Online (Sandbox Code Playgroud)
我检查了Other.framework的签名,看起来对我来说很好.此外,
解决方案(解决方法)
将MyApp与Other.framework链接.可怕......这感觉很糟糕.
将完全相同的二进制 …
我在Apple Dev论坛上问过这个问题,但仍然没有得到答案.
我们100%iOS 8设备崩溃:
+[UIPasteboard _accessibilityUseQuickSpeakPasteBoard]: unrecognized selector sent to class
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪是:
Thread : Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x2889ec1f __exceptionPreprocess + 126
1 libobjc.A.dylib 0x36049c8b objc_exception_throw + 38
2 CoreFoundation 0x288a3f55 __CFExceptionProem
3 CoreFoundation 0x288a1def ___forwarding___ + 354
4 CoreFoundation 0x287d3df8 _CF_forwarding_prep_0 + 24
5 UIAccessibility 0x331fc157 +[UIPasteboard_QSExtras pasteboardWithName:create:] + 30
6 MyApp 0x002eb507 -[TJEventOptimizer .cxx_destruct]
7 MyApp 0x002eb28b -[TJEventOptimizer .cxx_destruct]
8 MyApp 0x002f0c2b -[TJEventOptimizer .cxx_destruct]
9 MyApp 0x002eeedb -[TJEventOptimizer .cxx_destruct]
10 Foundation 0x295adb5b __NSThread__main__ + 1118
11 libsystem_pthread.dylib …Run Code Online (Sandbox Code Playgroud) TLTR:
问题: SKScene子类的init(fileNamed:)返回nil
原因:该.sks文件不以第二初始化调用时存在.该问题以某种方式与ODR实现和/或行为有关.
描述:
用游戏构建的游戏SpriteKit.我的SKScene子类的init(fileNamed:)返回nil.我想了解"为什么?" 如何?" 调试此问题.
我初始化SKScene子类的代码:
/// the hierarchy: SKScene -> TBTBaseScene -> TBTLevelScene
let sceneType: TBTBaseScene.Type = TBTLevelScene.self
let fileName = "Level1"
let scene = sceneType.init(fileNamed: fileName)
Run Code Online (Sandbox Code Playgroud)
几点注意事项:
Level1.sks.也许没关系,因为该应用程序使用ODR并Level1.sks标记为"Level1"标记,即使它位于初始安装标记中let sceneType:...line时,我可以通过各自的子类和fileNames轻松创建其他游戏场景,但expression TBTLevelScene(fileName:"Level1")返回nil.Level1.sks主捆绑中是否存在,但是对于所有场景,ALWAYS下面的代码都说"FILE NOT AVAILABLE",所以这种方法似乎是错误的.在C字符串"% n",用空格之间'%'和'n'字符(如在“保存现在38%”的字符串)被视为"%n",这被认为是因为最新的OS版本中的漏洞,并导致中止程序。
(请参阅 UPD 1 和 UPD 2)
我正在调查我的应用程序中的登录问题。该应用程序从服务器接收一些字符串,我们使用类似于NSLog. 我们称该函数的格式为:
MyLog(@"%@", message);
Run Code Online (Sandbox Code Playgroud)
在一种情况下,消息包含文本“现在节省 38%”。此时应用程序崩溃。
在调查时,我能够查明问题所在。完整代码如下。
#define FOO(FORMAT, ...) (\
{\
char *str;\
str = [[NSString stringWithFormat:FORMAT, ##VA_ARGS] UTF8String];\
str;\
}\
)\
#import "MyClass.h"
@implementation MyClass
- (instancetype)init
{
self = [super init];
if (self) {
char *foo = FOO(@"%@", @"Save 38% now");
printf(foo);
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
在任何地方实例化类,
MyClass *my = [[MyClass alloc] …Run Code Online (Sandbox Code Playgroud) ios ×7
xcode ×4
objective-c ×3
swift ×2
swift2 ×2
c ×1
char ×1
crashlytics ×1
facebook ×1
freebsd ×1
ios8 ×1
ios9 ×1
iphone ×1
linker ×1
sprite-kit ×1
stdio ×1
xcode7 ×1
xcodebuild ×1