我最近更新到了新的 iOS 15,在 Xcode 中构建并运行我的应用程序后,同时使用与 iOS 15 安装之前相同的开发者帐户登录,我收到以下消息:
\n\n\n无法完成操作\xe2\x80\x99。无法启动 com.xyz.xyz.xyz\n因为它的代码签名无效、权限不足或\n它的配置文件尚未受到用户的明确信任。
\n
和错误日志:
\n\n\n无法启动 \xe2\x80\x9cmy-project0name\xe2\x80\x9d 域:IDEDebugSessionErrorDomain\n代码:3 失败原因:操作无法\xe2\x80\x99 完成。无法\n启动 com.xyz.xyz.xyz,因为它具有无效的代码签名,\n用户未明确信任\n足够的权利或其配置文件。用户信息: {\nDVTRadarComponentKey = 855031;\nIDERunOperationFailingWorker = DBGLLDBLauncher;\nRawUnderlyingErrorMessage = "操作无法\\U2019t 完成。无法启动 com.xyz.xyz.xyz,因为它具有无效的\n代码签名、不充分的权利或其权限配置文件尚未\n被用户明确信任。"; }
\n
系统信息
\n\n\nmacOS 版本 11.6(内部版本 20G165)Xcode 13.0 (19234)(内部版本 13A233)\n时间戳:2021-09-21T12:36:18+02:00
\n
早些时候(在 iOS14 上),可以通过以下方式解决这个问题:
\nSettings.app -> General -> Profile -> Select Profile -> Trust\n
Run Code Online (Sandbox Code Playgroud)\n但现在(在 iOS15 上)我实际上无法在该位置找到它。我该如何解决这个问题?
\n据我所知,物理体的默认值是当它们相互碰撞时相互反弹,直到你将collisionBitMask设置为相等的数字.
但是,我有一个很大的问题,因为碰撞我认为看起来应该非常简单.
let RedBallCategory : UInt32 = 0x1 << 1
let GreenBallCategory: UInt32 = 0x1 << 2
let RedBarCategory : UInt32 = 0x1 << 3
let GreenBarCategory : UInt32 = 0x1 << 4
let WallCategory : UInt32 = 0x1 << 5
greenBall.physicsBody?.categoryBitMask = GreenBallCategory
greenBall.physicsBody?.contactTestBitMask = RedBarCategory
greenBall.physicsBody?.collisionBitMask = GreenHealthCategory
redBall.physicsBody?.categoryBitMask = RedBallCategory
redBall.physicsBody?.contactTestBitMask = GreenBarCategory
redBall.physicsBody?.collisionBitMask = RedHealthCategory
let borderBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
self.physicsBody = borderBody
self.physicsBody?.friction = 0
borderBody.contactTestBitMask = RedBallCategory | GreenBallCategory
borderBody.categoryBitMask = WallCategory
Run Code Online (Sandbox Code Playgroud)
所以这里我有2个球和我的边界.我可以得到我想要的碰撞检测,但是当我添加边框体的类别位掩码时,它允许球穿过和离开屏幕,这是我不想要的.
我也希望球能够相互反弹,但只有当我注意到球的类别之一时,他们才能反弹.否则他们会互相通过. …
EKCalendar
该类的文档为该calendarIdentifier
属性声明了这一点:
与日历完全同步将丢失此标识符.您应该有一个计划,通过缓存其他属性来处理标识符不再可读的日历.
什么时候发生"完全同步"以及哪些属性可能会发生变化calendarIdentifier
?
我正在尝试使用Firebase来处理推送通知.我安装了Firebase
pod('Firebase/Core'和'FirebaseMessaging'pods).
在我将Firebase导入项目之后
import Firebase
Run Code Online (Sandbox Code Playgroud)
我已经像这样配置了Firebase应用程序(代码是从官方文档中复制的):
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)
-> Bool {FIRApp.configure() }
Run Code Online (Sandbox Code Playgroud)
之后,我尝试使用此代码(代码从官方文档复制):
if #available(iOS 10.0, *) {
let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_,_ in })
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
// For iOS 10 data message (sent via FCM)
FIRMessaging.messaging().remoteMessageDelegate = self
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
Run Code Online (Sandbox Code Playgroud)
但是我从标题中得到了错误: …
apple-push-notifications ios firebase swift firebase-cloud-messaging
所以我现在正在尝试的是当应用程序在后台接收远程通知(或者可能从暂停状态唤醒)时播放消息.
应用程序从暂停模式唤醒后,声音根本无法播放.
当应用程序在前台时,在didReceiveRemoteNotification:
调用方法后立即播放声音.
didReceiveRemoteNotification:
当应用程序从挂起模式唤醒时调用方法时,立即播放声音的适当方法是什么?
这是一些代码(语音管理器类):
-(void)textToSpeechWithMessage:(NSString*)message andLanguageCode:(NSString*)languageCode{
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *error = nil;
DLog(@"Activating audio session");
if (![audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:&error]) {
DLog(@"Unable to set audio session category: %@", error);
}
BOOL result = [audioSession setActive:YES error:&error];
if (!result) {
DLog(@"Error activating audio session: %@", error);
}else{
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:message];
[utterance setRate:0.5f];
[utterance setVolume:0.8f];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:languageCode];
[self.synthesizer speakUtterance:utterance];
}
Run Code Online (Sandbox Code Playgroud)
}
-(void)textToSpeechWithMessage:(NSString*)message{
[self textToSpeechWithMessage:message andLanguageCode:[[NSLocale preferredLanguages] objectAtIndex:0]];
}
Run Code Online (Sandbox Code Playgroud)
后来在 …
objective-c ios avspeechsynthesizer background-mode avspeechutterance
我正在尝试在swift中创建一个SKShapeNode的子类作为SKShapeNode(circleOfRadius:radius),但是没有指定的init.
任何人有任何变通办法或有关原因的信息?我不确定这是一个bug还是故意的.我发现这个视频演示了SKSpriteNode的解决方法,但它不适用于我. https://skillsmatter.com/skillscasts/5695-how-to-subclass-a-skspritenode
总的来说,我正在尝试为SKShapeNode创建一个子类,然后我可以再次从子类中使用不同的版本来更轻松地管理我的代码.TIA
谢谢马丁我之前发现了这个例子.它可以工作,但我怎么会把它变成一个圆而不是一个矩形?
import Foundation
import SpriteKit
class Player : SKShapeNode {
override init() {
super.init()
self.name = "Player"
self.fillColor = UIColor.blackColor()
}
init(rectOfSize: CGSize) {
super.init()
var rect = CGRect(origin: CGPointZero, size: rectOfSize)
self.path = CGPathCreateWithRect(rect, nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Run Code Online (Sandbox Code Playgroud)
在主要代码中
let playerOne = Player(rectOfSize: CGSize(width: 100, height: 100))
Run Code Online (Sandbox Code Playgroud) 我尝试了一些解决方法,但仍然无法暂停现有的粒子iOS9
.我正在使用以下技术来暂停场景:
self.paused = YES;
globalPause = YES;
变量来控制update:
方法执行(因为update:
在场景暂停时仍然运行).关键是我不会暂停视图,而是暂停视野.因为这个原因,我不会暂停视图.
以下是可以重现此问题的代码iOS9
:
#import "GameScene.h"
@interface GameScene ()
@property (nonatomic, strong)SKEmitterNode *emitter;
@end
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
[self addChild:[self getSpaceDustEmitter]];
}
//No need for this method though :)
-(SKEmitterNode*)getSpaceDustEmitter{
self.emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:[[NSBundle mainBundle] pathForResource:@"spacedust" ofType:@"sks"]];
self.emitter .name = @"emitter_spacedust";
self.emitter .position = CGPointMake(CGRectGetMidX(self.frame),self.frame.size.height);
return self.emitter ;
}
@end
Run Code Online (Sandbox Code Playgroud)
因此,非常简单的例子可以工作,iOS8
而不是按预期工作iOS9
.会发生什么事情,即使一切看起来都是暂停的,也不是.如果场景未暂停,则取消暂停后的现有粒子移动到它们应该的位置.此外,看起来粒子也会继续产卵,如果暂停时间过长,这会导致明显滞后...
这是粒子编辑器的截图:
有人有一些合理的解释吗?到目前为止,我已经尝试明确暂停发射器:
emitterNode.paused = YES;
Run Code Online (Sandbox Code Playgroud)
它没有用,实际上这应该在场景暂停时自动完成(发射器被添加到场景中).这是尝试的另一件事是设置 …
有没有人知道一些开箱即用的库可能会提供相机抖动等效果SKNode
?
如果没有,是否有一种简单的方法来实现使用动作的相机抖动?
谢谢
我试图在Swift中使用碰撞位掩码和接触测试位掩码,我希望两个对象不要碰撞在一起,所以我在做:
firstNode.physicsBody?.collisionBitMask = 0b01
secondNode?.collisionBitMask = 0b10
Run Code Online (Sandbox Code Playgroud)
由于SpriteKit不上这两个数字与操作,应该没有结果是00
因为10 & 01 = 00
?
那么为什么碰撞会发生呢?
谢谢.
我试图弄清楚为什么playSoundFileNamed在接到两个连续的电话后无效.实际上它只在收到第一个电话后才有效.再现步骤是:
在此之后,播放来自touchesBegan的声音仍然有效.
当我重复上面的步骤(跳过第一步)时,touchesBegan的机制停止工作.不确定为什么会发生这种情况......以下是可以产生描述行为的代码:
@interface GameScene()
@property (nonatomic, strong) SKAction *sound;
@end
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
self.sound = [SKAction playSoundFileNamed:@"sound1.wav" waitForCompletion:NO];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
[self runAction:self.sound];
}
@end
Run Code Online (Sandbox Code Playgroud)
我知道在SO上有一些与此相关的问题,但是给出的答案与解决方法有关.我对解决方法不感兴趣,但为什么会发生这种情况呢?它与AVAudioSession有什么关系吗?(可能不是)我知道我可以使用AVAudioPlayer作为一种解决方法,但仍然不确定播放大量简单短音的效果是多少......