我得到了大量的崩溃报告给了Crashlytics.这只发生在iOS 12上,我不知道如何重现这一点.也许用户在WKWebView上并尝试从提示中输入密码31 SafariServices 0x21d216740 __107+[_SFAutomaticPasswordInputViewController inputViewControllerWithAutoFillContext:passwordRules:completion:]_block_invoke.29 + 104
如果有人有类似的崩溃或想法,我们非常感谢.
更新:此问题正在跟踪:https://github.com/firebase/firebase-ios-sdk/issues/2283感谢Igor
Crashed: com.apple.main-thread
0 libsystem_kernel.dylib 0x207743df8 __abort_with_payload + 8
1 libsystem_kernel.dylib 0x20773d838 abort_with_payload_wrapper_internal + 100
2 libsystem_kernel.dylib 0x20773d7d4 abort_with_payload_wrapper_internal + 34
3 libobjc.A.dylib 0x206d7d4b4 _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 112
4 libobjc.A.dylib 0x206d7d40c __objc_error + 42
5 libobjc.A.dylib 0x206d94af0 weak_entry_insert(weak_table_t*, weak_entry_t*) + 314
6 libobjc.A.dylib 0x206d95a60 objc_initWeak + 360
7 UIKitCore 0x23457508c -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 1628
8 UIKitCore 0x234fcaff8 -[UIView(Internal) …Run Code Online (Sandbox Code Playgroud) 我想从CloudKit获取最后X分钟的公共/私人条目.
我尝试了这个效果,但失败了:
let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate())
let predicate = NSPredicate(format: "creationDate > %@", date)
Run Code Online (Sandbox Code Playgroud)
但这会得到我的数据,但我不确定我是在查询所有内容还是只是某种上限:
let predicate = NSPredicate(value: true)
Run Code Online (Sandbox Code Playgroud)
我希望能够在一定的时间内查询.如果不在客户端进行创建排序逻辑,这可能吗?
这是完整的代码块:
func fetchPublicData(completion: ((records:[AnyObject]) -> Void)!)
{
let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate())
let predicate = NSPredicate(format: "creationDate > %@", date)
let query = CKQuery(recordType: "MyDataRecordType", predicate: predicate)
let container = CKContainer.defaultContainer()
let publicDb = container.publicCloudDatabase
publicDb.performQuery(query, inZoneWithID: nil,
{
(results, error) in
if error != nil
{
self.handleError(error)
}
else …Run Code Online (Sandbox Code Playgroud) 我想在构建成功/失败时发送电子邮件以及一些有用的 Git 信息,例如提交 SHA、先前成功的 SHA、提交消息等。我能够以旧的 UI 方式执行此操作,但现在我已经创建了声明性管道和现在我收到GIT_BRANCH is not supported in this context了收到的电子邮件。我正在使用 Jenkins 版本。2.89.3. 我的脚本:
pipeline {
agent {
...
}
stages {
stage('Checkout') {
steps {
sh 'printenv'
checkout scm: [$class: 'GitSCM', branches: [[[name: '*/development']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [url: 'https://github.com/myrepo/']]]
sh 'git submodule foreach --recursive \'git submodule sync\''
sh 'git submodule update --init --recursive'
}
}
stage('Build') {
steps {
...
}
}
}
post {
success {
sh 'printenv'
emailext body: …Run Code Online (Sandbox Code Playgroud) 我只在 Xcode > Window > Organizer > Crashes 选项卡中看到此崩溃,而在 Firebase Crashlytics 中没有看到。到目前为止,它似乎只发生在 iOS 13 上,并且是应用程序中最常见的 5 次崩溃之一。
我正在尝试使用CloudKit订阅推送通知.我收到这个错误:
<CKError 0x170c5b1e0: "Unknown Item" (11/2003); server message = "could not find required field fieldID="25""
Run Code Online (Sandbox Code Playgroud)
从这段代码:
let subscription = CKSubscription(recordType: "PlayerData", predicate: NSPredicate(format: "TRUEPREDICATE"), options: CKSubscriptionOptions.FiresOnRecordCreation)
let notificationInfo = CKNotificationInfo()
notificationInfo.shouldBadge = false
subscription.notificationInfo = notificationInfo
PublicDb.saveSubscription(subscription, completionHandler: { (returnedSubscription: CKSubscription!, error: NSError!) in
println("\(error)")
})
Run Code Online (Sandbox Code Playgroud)
但我没有一个名为"fieldID"的字段,也没有在我的整个项目中对它有任何引用.我不知道25来自哪里.如果我更改记录类型和/或NSPredicate,它仍然会发生.
我也试过设置这个,但没有
notificationInfo.shouldSendContentAvailable = true
Run Code Online (Sandbox Code Playgroud)
这曾经适合我,但现在我不能让它工作了.好像我的数据库在某个地方被破坏了.我尝试删除记录类型并重新创建但没有运气.
我已经使用以下方法设置了一个环境变量:
echo "::set-env name=PROJECT_TO_TEST::$(sh scripts/test.sh)"
Run Code Online (Sandbox Code Playgroud)
test.sh 只是回应“SomeString, MoreString”
我确实看到通过执行以下操作正确设置了 PROJECT_TO_TEST 变量:
echo "env.PROJECT_TO_TEST = ${{ env.PROJECT_TO_TEST }}"
Run Code Online (Sandbox Code Playgroud)
输出“env.PROJECT_TO_TEST = SomeString, MoreString”
在接下来的一个步骤中,我正在执行 if 检查以查看 PROJECT_TO_TEST 变量包含一些像这样的字符串:
- name: Conditionally Run
if: contains('${{ env.PROJECT_TO_TEST }}', 'SomeString')
run: |
echo "SomeString did exist and should run"
- name: Conditionally Run
if: contains('${{ env.PROJECT_TO_TEST }}', 'ShouldNotRun')
run: |
echo "ShouldNotRun"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,应该只打印“SomeString 确实存在并且应该运行”,但也会打印“ShouldNotRun”。
完整代码在这里:https : //github.com/gomfucius/github-actions/blob/master/.github/workflows/pullrequest.yml
说明问题的工作流程:https : //github.com/gomfucius/github-actions/runs/590320131
我在创建使用 NSSecureCoding 及其子类的类时遇到问题。
class ClassA: NSObject, NSSecureCoding {
public static var supportsSecureCoding: Bool { return true }
}
class ClassB: ClassA {
public static var supportsSecureCoding: Bool { return true } // "Cannot override static var"
}
Run Code Online (Sandbox Code Playgroud)
我应该这样称呼,因为 NSObject.h 中的文档说,
此属性必须在所有允许安全编码的类上返回 YES。采用 NSSecureCoding 并覆盖 initWithCoder: 的类的子类也必须覆盖此方法并返回 YES。// 编写解码数据的方法时应参考安全编码指南。
目标-C:
@property (class, readonly) BOOL supportsSecureCoding;
Run Code Online (Sandbox Code Playgroud)
迅速:
public static var supportsSecureCoding: Bool { get }
Run Code Online (Sandbox Code Playgroud)
我正在使用 Xcode 10.0,在 Swift 4.0 和 Swift 4.2 上都尝试过。人们如何解决这个问题?任何帮助表示赞赏。
更新:使用 时public class var supportsSecureCoding,它会编译,但在使用Optimize for …
不使用代码,我基本上试图在这张图片中实现"期望的结果":

我希望约束"你好!" 标签在屏幕高度较短时缩小其长度.正如您在"实际结果"中看到的那样,底部的按钮不在屏幕上.我希望图像视图具有固定的宽度和高度.
我知道我可以为约束创建IBOutlets,并通过像这样的帖子建议的代码来做(自动布局 - 使视图的高度相对于半视图高度),但我试图尽量避免使用代码.
附带问题:如果在IB中无法做到这一点,那么在代码中执行此操作的最佳方法是什么?
谢谢您的帮助!
ios ×4
swift ×3
cloudkit ×2
objective-c ×2
autolayout ×1
ios12 ×1
jenkins ×1
shrink ×1
xcode ×1