我正在使用C++开发iPhone应用程序的算法部分,我遇到了一个奇怪的错误.我所拥有的代码,在Linux,Mac和iPhone设备上都可以很好地编译gcc-4.2,而不是在模拟器上,这使得调试和测试变得非常困难.
试图为模拟器编译的错误消息类似于4.0.x中的已知错误,尽管由于我已明确将gcc-4.2设置为默认编译器,因此不太清楚.
为了演示该错误,我准备了以下小代码片段:
bug.cpp
#include <tr1/unordered_map>
#include <iostream>
/* a hash key for the visitedTrip table */
struct X {
int x;
X() : x(0){};
X(int x) : x(x){};
};
typedef std::tr1::unordered_map<int,X> dict;
int main()
{
dict c1;
X a(0);
X b(1);
X c(2);
c1[0] = a;
c1[1] = b;
c1[2] = c;
dict::const_iterator it;
for(it = c1.begin(); it != c1.end(); it++)
std::cout << it->first << std::endl;
return (0);
}
Run Code Online (Sandbox Code Playgroud)
然后尝试编译如下:
compile.sh
#!/bin/bash
#
# Compiling for the simulator and …Run Code Online (Sandbox Code Playgroud) 哇,最后XCode 4.2/iOS5模拟器有StoreKit支持.
在我的应用程序中,我注意到当StoreKit要求AppleID /密码时,我可以使用模拟器屏幕键盘输入该信息,但不能通过Mac键盘输入.
这是正常的还是我还有其他问题?
我在我的静态库中包含了第三方库(源代码).它只用于设备(因为它包含一些ARM程序集例程),我不希望为模拟器构建它(我只是希望我的应用程序在那里编译,所以我可以测试GUI).
我正在寻找一种方法(类似于源文件中的#if(TARGET_OS_IPHONE)),它可以从IDE本身工作(因此我可以根据我的目标架构从实际构建过程中排除文件).我发现的唯一一个选项是从目标中排除/包含文件 - 但不是针对特定的体系结构.
有没有办法为每个特定文件设置架构条件?
在我更新XCode以获得iOS 6 SDK之后,我发现iAd不再在模拟器上加载了.我暂时无法试用真正的设备,因为我还没有更新我的iPhone.
我在发行说明中没有找到任何关于它的内容.
有人遇到同样的问题并解决了吗?
我有一个将生成框架的项目.我的架构设置是:
有效架构:armv7,arm64,i386.
在iOS 8.4中,我可以毫无问题地成功构建它.但是,当我更新到iOS 9时,我收到"不支持的架构"错误.看起来不支持i386,我该如何制作可以在模拟器中使用的框架?
这是错误消息:
CompileC build/iDock.build/Debug-iphoneos/iDock.build/Objects-normal/i386/iDockControl.o iDock/iDockControl.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
cd /Users/leon/Documents/Jul-27/iDock
export LANG=en_US.US-ASCII
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Tools:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-x objective-c -arch i386 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu99 -fobjc-arc -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/var/folders/cy/52qx8n5j5qqfd4g4hsm9t1140000gn/C/com.apple.DeveloperTools/7.0-7A220/Xcode/ModuleCache/Session.modulevalidation
-fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot …Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的程序,用户可以使用用户名和密码登录.每次我试图运行它,我只是得到一个空白的白色屏幕.我尝试将背景颜色更改为深绿色,希望它也会在模拟器中更改它,但是我得到相同的白色屏幕.
在我遇到断点错误之前出现了这个问题,它首先在之前的项目中开始随机发生,这让我觉得我的xcode出了问题.
请参阅下面的截图:

我想创建一个应用程序来显示实时照片.但我没有iPhone 6S.是否有机会将实时照片放入iOS Simulator?谢谢!
当我在启用并行执行的情况下运行UI测试时,会创建一个现有模拟器的多个副本(例如iPad Air 2)来运行不同的测试套件。
在这个stackoverflow答案的运行脚本中,我注入了一个plist项“ ConnectHardwareKeyboard”,其值为false,以禁用在启动模拟器时默认启用的硬件键盘连接: 硬件->键盘->连接硬件键盘
该脚本将为现有的模拟器(iPad Air 2)正确设置值,但是当并行执行测试时,将创建iPad Air 2的多个副本,并且副本的复制者不是原始设备的副本。克隆的设备列表中没有设置任何标志,但是硬件->键盘->连接硬件键盘显示为选中状态。
这导致我的UI测试失败,因为在将test输入到textField中后尝试关闭键盘时,键盘丢失了。
我浏览了stackoverflow和Apple开发人员论坛上的许多帖子,以尝试解决此问题,但没有发现任何东西。对于其他人来说这肯定是个问题...外面有没有人遇到过同样的问题和/或找到了解决方案?
有谁知道这可能导致什么?
[<WKContentView 0x7f9c7003f400> valueForUndefinedKey:]: this class is not key value coding-compliant for the key webSelectionAssistant
Run Code Online (Sandbox Code Playgroud)
当您在WKWebView中使用文本字段打开纯HTML网页(在模拟器中)并在其中键入任何字符时,就会发生这种情况。不是我的代码,是WebKit。
这一定是Mac专用的,但是我不知道从哪里开始。