我有一个我已经开发了一段时间的应用程序.最近通过双击启动应用程序会显示一个对话框,显示"您无法打开应用程序RepoWatch,因为它可能已损坏或不完整."
通过打开./RepoWatch.app启动应用程序让我"无法打开应用程序,因为它的可执行文件丢失了."
我通常通过./RepoWatch.app/Contents/MacOS/RepoWatch启动应用程序只是出于习惯(工作正常),所以我不确定这种情况发生了多长时间,或者事先发生了什么变化.最可能的变化是我放入cp Info.plist ./RepoWatch.app/Contents/我的make文件以便版本Info.plist而不对.app包中的所有内容进行版本控制.
我多次查看Info.plist并且找不到任何错误.该文件使用Property List Editor打开,没有任何错误.从属性列表编辑器保存不会使文件"工作"(如果首先要责备它).
据我所知,权限看起来也很健全:
$ ls -l
./RepoWatch.app/Contents/Info.plist
-rw-rw-r--@ 1 dgrace staff 789 Feb 1 23:20 ./RepoWatch.app/Contents/Info.plist
$ ls -l
/Applications/Adium.app/Contents/Info.plist
-rw-rw-r-- 1 dgrace staff 5750 Aug 21 15:41 /Applications/Adium.app/Contents/Info.plist
Run Code Online (Sandbox Code Playgroud)
我不知道下一步该尝试什么.
以下是Info.plist的内容(尽管在很长一段时间内没有真正改变):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>RepoWatch</string>
<key>CFBundleIdentifier</key>
<string>com.doomstick.RepoWatch</string>
<key>CFBundleName</key>
<string>RepoWatch</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>LSMinimumSystemVersion</key>
<string>10.6</string>
<key>CFBundleVersion</key>
<string>Beta26</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud) 我正在管理自己的UINavigationBar.由于皮肤粗糙,我需要这样做.UINavigationController的文档警告说,当与UINavigationController一起使用时,对UINavigationBar进行外观设置存在限制.
我已经进行了大量的日志记录,从我能说的一切,推动UINavigationController中的"后退"按钮弹出两个项目而不是一个.我得到一个委托回调告诉我它正在删除逻辑项,但它实际上删除了那一个.
应该永远不会删除添加到awakeFromNib中的UINavigationController的项目.它由于某种原因被删除.
有两个相似的问题,但都没有令人满意的答案.这两个问题是:
UINavigationBar .items访问器不返回当前的UINavigationItem
- (void)awakeFromNib {
[headerView setDelegate: self];
[headerView pushNavigationItem: tableDisplay animated: NO];
}
- (void) selectedStory: (NSNotification *)not {
[headerView pushNavigationItem: base animated: NO];
NSLog(@"Selected story: %@", base);
}
- (void) baseNav {
NSLog(@"Current items: %@", [headerView items]);
BaseInnerItem *current = (BaseInnerItem *)[headerView topItem];
[self addSubview: [current view]];
}
- (BOOL)navigationBar: (UINavigationBar *)navigationBar shouldPushItem: (UINavigationItem *)item {
return YES;
}
- (BOOL)navigationBar: (UINavigationBar *)navigationBar shouldPopItem: (UINavigationItem *)item {
return YES;
}
- …Run Code Online (Sandbox Code Playgroud) 我有一个刚进入测试版的软件.日语版的Mac OS X运行得很好,但德国beta测试人员收到的消息松散地转换为"无法运行程序,因为这种类型的Mac计算机不支持该程序".
它只是英特尔和10.6,但这是beta测试人员所拥有的.他告诉我错误不应该与本地化有关(.nib只是英文版,但实际上程序中没有文字可以说,而且他说英语),但是Mac并没有给我任何更多的信息.据我所知.
我知道这不是太多的信息,但我知道如何获得.
什么可能导致这类问题?我可以让我的Beta测试人员获得更多信息吗?