更新到Xcode 10时,iOS静态库目标无法构建.我如何构建它的方式如下:
xcodebuild -target TargetName -configuration Release clean build
Run Code Online (Sandbox Code Playgroud)
使用Xcode 9,一切都运行顺利,但是当Xcode 10用于构建时,我收到了以下错误(在清理运行顺利之后):
注意:使用新的构建系统
注意:规划构建
注意:构建构建描述构建系统信息错误:无法附加DB:错误:访问构建数据库"/Users/uerceg/random-path/build/XCBuildData/build.db":数据库已锁定可能有两个并发构建正在运行相同的文件系统位置.
**建筑失败**
**建筑失败**
以下构建命令失败:PhaseScriptExecution MultiPlatform\Build /Users/uerceg/random-path/build/Library.build/Release-iphoneos/LibraryTarget.build/Script-9DE7C9021AE68FA5001556E5.sh(1 failure)
这可能是无关的,但我注意到新的Xcode 10构建系统将重复的Copy Bundle Resource
Info.plist文件标记为错误,所以我确实确保没有重复的条目,但可能这个错误与此事实无关.
有谁知道什么可能是错的?
我试图下载几次Xcode beta版本,应该是具有iOS 13.1 beta支持的Xcode 11 beta 7。我正在从以下链接下载它:https : //download.developer.apple.com/Developer_Tools/Xcode_11_Beta_7/Xcode_11_Beta_7.xip
另外,拆包时,显然是在拆包Xcode 11 beta 7:
但是,在打开包装后(8月27日23:05左右),我看到以下内容:
当我启动Xcode时,我看到了:
任何想法可能会发生什么?
在此先感谢您提供任何答案。
当在安装了iOS 11 beta的iPhone上运行时调试Xcode 9 beta中的应用程序时,我在执行网络呼叫时开始注意到以下消息:
[] network_config_register_boringssl_log_debug_updates Failed to register for BoringSSL log debug updates
[BoringSSL] Function boringssl_context_get_peer_npn_data: line 1212 Peer's advertised NPN data is NULL or empty
Run Code Online (Sandbox Code Playgroud)
知道是什么导致了这个吗?
我已将Default-568h@2x.png添加到我的项目中并在项目设置中设置它,我还为我的视图和该视图上的元素设置了自动调整选项,该视图最初是在我的应用程序上加载的,仅限于横向,但是在运行之后我的应用程序在iOS 6.0模拟器Retina 4英寸我看到我的应用程序一直向左移动,在右侧留下黑色像素区域.
我知道除了这些东西我应该做什么才能看到我的应用程序在iOS 6.0模拟器Retina 4英寸上以"全屏"运行?
[编辑#1:AppDelegate]
我还编辑了我的AppDelegate.m,如下所示:
viewControllerMain = [[ViewControllerMain alloc] init];
//[window addSubview:viewControllerMain.view];
window.rootViewController = viewControllerMain;
Run Code Online (Sandbox Code Playgroud)
[编辑#2:编辑框]
我设法实现全屏模式,但它不能正常工作.我在观点中这样做:
CGRect frame = CGRectMake([UIScreen mainScreen].bounds.origin.x, [UIScreen mainScreen].bounds.origin.y, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width);
self.frame = frame;
Run Code Online (Sandbox Code Playgroud)
这只会让我的视图全屏显示,但我在开头提到的右边的黑色区域已经死了,在那个区域没有用户交互(我有UIButton那里没有反应).基本上,我所做的只是使我的视图以全分辨率显示,但视图中元素的功能仅限于我第一次在Retina 4英寸模拟器上启动时我的应用程序最初显示的区域.
[编辑#3:在XIB文件中更改UIView的大小]
我甚至试图在我的XIB文件中改变UIView的实际大小,将它们全部调整为Regina 4全屏,但仍然 - 同样的事情.
[编辑#4:改变窗口对象的大小]
我试图在AppDelegate.m中更改窗口对象的大小,但再次没有运气.这是AppDelegate.m的样子.
application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
mainViewController = [[MainViewController alloc] init];
window.rootViewController = mainViewController;
// Override point for customization after application launch
[window setFrame:[UIScreen mainScreen].bounds];
[window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
[编辑#5:"解决方案"]
到目前为止,我做了以下操作:在IB中我制作了具有iPhone 5分辨率大小的新UIViews,分配了相同的所有者类,它们正在处理为iPhone 5分辨率而制作的等效UIViews以及在代码中我需要加载一些这些UIViews我检查[ UIScreen …
我有以下问题:我已经UIView
在XIB
文件中创建了一个自定义类及其布局.假设我在XIB中的自定义视图的大小是150 x 50.我启用了sizeClasses
(wAny hAny)和AutoLayout
.在模拟度量我已经设置Size = Freeform
,Status Bar = None
所有other = Inferred
.
我的自定义UIView
类中的代码如下所示:
#import "CustomView.h"
@implementation CustomView
#pragma mark - Object lifecycle
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self setup];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self setup];
}
return self;
}
#pragma mark - Private & helper methods
- (void)setup { …
Run Code Online (Sandbox Code Playgroud) 我在我的简单故事板IPad项目上有UIViewController,它包含放置在整个表面(1024 x 768)上的UIScrollView.我创建了3个XIB文件,这些文件是我的应用程序在viewDidLoad中启动时加载的UIViews,并将它们添加到UIScrollView中.这3个XIB文件中的每一个只包含一个UIButton.
这是层次结构:
~UIViewController(UIViewControllerClass是这个UIViewController的类)
~~ UIScrollView(包含3个相同的UIViews)
~~~ UIView(UIViewClass是此XIB文件的文件所有者)
~~~~ UIButton
我希望我的UIViewControllerClass能够识别两者:触摸UIScrollView组件上的任何位置,如果触摸了UIScrollView,如果触摸了UIScrollView中UIView内的UIButton,则可以获得完全触摸该按钮的信息.
我在UIViewClass中创建了IBAction,用于触摸UIScrollView中UIView内的UIButton,当我在所有元素(UIViewController,UIView和UIScrollView)上设置User Interaction Enabled = YES时,会调用此方法.
但此时我的UIViewControllerClass并不知道在UIButton上的UIScrollView内发生了触摸.我做了这样的触摸识别器:
UITapGestureRecognizer *touch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTouch)];
touch.numberOfTouchesRequired = 1;
Run Code Online (Sandbox Code Playgroud)
并将其添加到UIScrollView组件.通过这种方式,我能够在UIViewControllerClass中检测UIScrollView组件上的触摸事件,但是UIView中的UIButton触摸事件处理程序不再被调用.
所以,我需要在UIViewControllerClass中有这两个信息:
我认为将触摸事件识别器附加到整个UIScrollView组件不是解决方案,因为它禁用了我在UIViewClass中编写的所有触摸事件处理程序.
我认为解决方案是,在UIScrollView中的UIView组件上进行的某些操作应该发送到UIViewControllerClass,但我没有找到一种方法来执行此操作.
如果有人能帮助我,我会非常感激.提前致谢.
[编辑#1:郑的回答]
点击手势必须将cancelsTouchesInView选项设置为NO!
对于我的上述情况,这条线解决了一切:
touch.cancelsTouchesInView = NO;
Run Code Online (Sandbox Code Playgroud)
非常感谢郑.
我已经为iOS 4.2做了应用程序,我正在使用XCode 4.3.3进行开发并使用iPhone 5.1模拟器进行测试,一切正常.最近我决定测试应用程序在iOS 6.0上运行的方式.在尝试这个时,我面临两个问题:
因此,我使用XCode 4.5打开应用程序并在iPhone 6.0 Simulator上运行它.我有启动应用程序的问题.XCode只是说:完成在iPhone 6.0模拟器上运行,停止按钮是灰色的(就像应用程序没有运行)和iPhone模拟器只显示黑屏,没有任何反应.我要CMD + Q吧.这对我来说是个巨大的问题,因为我设法在很多失败之后成功地随机运行应用程序.
最终,有时,应用程序运行没有问题,我看到模拟器正在运行我的应用程序.应用程序仅以横向模式进行.但是当模拟器运行应用程序时,它将保持纵向模式并显示为纵向模式下的横向屏幕设计的应用程序.我已将支持接口方向设置为两个横向变体,而在Application-Info.plist中也列出了这两个横向方向.
有谁知道发生了什么和可能的解决方案?
提前谢谢了.
[编辑#1:添加了所有输出控制台消息]
控制台消息(对于现在一直存在的问题1)说:
error: failed to attach to process ID 0
Run Code Online (Sandbox Code Playgroud)
[编辑#2:解决第一个问题的小进展]
好的,奇怪的事情正在发生.为了消除编辑#1中的错误,我做的第一件事是:
在XCode中转到:产品 - >编辑方案 - >运行[AppName] .app - > Debugger并将其从LLDB更改为GDB
在此之后,编辑#1的错误消失了,但是出现了新问题.现在我运行应用程序后,我在XCode中获取状态消息:附加到[AppName]并且XCode停留在该操作上.
如果有人给我一个答案,我想说我尝试了以下列表中的所有内容:
以及各种这些动作排列.简单地说,我总是看到这个问题.发生在我身上的最好的事情是在这个组合中:
只打开XCode而不打开项目 - >转到窗口 - >管理器 - > [ProjectName]并完全删除它 - >退出XCode - >打开iPhone模拟器并重置设置 - >退出iPhone模拟器 - >重启Mac …
我需要UIProgressView作为iOS 7应用程序的UITableView单元的一部分.我在单元格右侧的代码中添加了UIProgressView,如下所示:
_progressBar = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
_progressBar.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addSubview:_progressBar];
[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0.0]];
[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10.0]];
[_progressBar addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:60.0]];
[_progressBar addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:12.0]];
Run Code Online (Sandbox Code Playgroud)
但是,显示UIProgressView有点奇怪.当进度为零时,UIProgressView对象如下所示:
当我将进度值设置为0.5时,UIProgressView在左侧变为矩形,并在右侧保持圆角矩形:
当我将进度设置为0.98时,看起来像这样:
任何想法如何通过简单设置进度值来填充UIProgressView,并保持整个时间的圆角矩形(或矩形)形式?或者,如果不添加自定义图形或覆盖UIProgressView,这是不可能的?
非常感谢提前和最好的问候.
我正在为Cordova制作插件,目前我正在尝试使其支持Windows平台.我有一个用C#编写的DLL,我想在我的插件中使用那里的功能.为了做到这一点,我创建了Windows运行时组件项目,该项目围绕C#DLL"包装",并从那里我将方法暴露给Cordova中的Java Script,我可以成功调用它们.所以,之间的沟通
App <-> Plugin <-> WinRT <-> C# DLL
Run Code Online (Sandbox Code Playgroud)
工作得很好.
在某些时候(在C#DLL中的一个方法中)我试图做以下事情:
Task.Factory.StartNew(() => ProcessQueue(), TaskCreationOptions.LongRunning);
Run Code Online (Sandbox Code Playgroud)
一旦代码执行到达这一部分,我得出结论,app只是默默地跳过这部分,ProcessQueue()方法永远不会开始在后台任务中执行.首先,我认为问题可能与我在C#中启动此任务的方式有关,所以我尝试了几个替换来启动新的后台任务 - 没有运气.
然后我想我可以从后台线程调用Java Script中的插件(我不是Cordova/Java Script专家,你可以从这个假设看到),但很快意识到它不会发生.我发现作为Cordova插件的一部分对本机代码进行的调用不是在主UI线程中执行,而是在其他一些线程中执行,但仍然无法在该线程中从C#DLL创建后台任务.
然后我阅读了WinRT组件中的后台任务并试图实现它.我使用这个项目作为参考:https://github.com/Microsoft/Windows-universal-samples/tree/93bdfb92b3da76f2e49c959807fc5643bf0940c9/Samples/BackgroundTask/cs/BackgroundTask
在该项目中,他们正在从C#app触发后台任务.我不知道如何从Cordova应用程序中执行此操作(甚至可以从那里执行此操作?),因此当从Java Script代理调用WinRT组件中的一个方法时,我尝试触发它.所以基本上,我的后台任务类存在于WinRT组件中(如示例中所示),但我是从WinRT而不是从应用程序触发它.当然,另一个区别是我使用Cordova应用程序的package.windows10.appxmanifest来注册后台任务.
执行此操作后,我没有编译错误,触发任务的代码工作并执行,但后台任务的Run方法永远不会被调用.
所以,我的问题是:有谁知道我怎么能完成这件事?如何在WinRT组件或Windows Cordova插件中一般启动后台任务?
非常感谢任何答案.
干杯
更新#1
好的,我设法解决了我的原始问题,这是代码.
我使用Dummy.cs类创建了WinRT组件,这是WinJS代码的入口点,它获取了我的一些自定义对象作为参数.类看起来像这样:
using System;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Runtime.Serialization;
using Windows.Foundation.Collections;
using Windows.ApplicationModel.Background;
namespace DummyWinRT
{
public sealed class WRTDummy
{
private static ApplicationTrigger _trigger;
public async static void MethodCalledFromWinJS(MyCustomObject myObject)
{
await BackgroundExecutionManager.RequestAccessAsync();
foreach (var t in BackgroundTaskRegistration.AllTasks)
{
t.Value.Unregister(true);
}
_trigger …
Run Code Online (Sandbox Code Playgroud) windows-phone cordova cordova-plugins background-task visual-studio-cordova
简单的问题:是否有人设法使用CommonCrypto
框架而不是执行本地收据验证OpenSSL
如果是 - 是否有任何示例代码如何做到这一点?
那么,用框架替换OpenSSL
Apple 文档(https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateLocally.html)中的所有相关内容CommonCrypto
?
一些看起来像解决方案的东西OSX
存在于https://gist.github.com/sazameki/3026845但我想知道是否有类似的东西可用于iOS
.
在此先感谢您提供任何类型的答案或建议。
ios ×7
iphone ×4
ios6 ×2
objective-c ×2
autolayout ×1
commoncrypto ×1
cordova ×1
ios11 ×1
ios7 ×1
logging ×1
openssl ×1
resize ×1
uiscrollview ×1
uiview ×1
xcode ×1
xcode10 ×1
xcode11 ×1
xcode9-beta ×1
xcodebuild ×1